trendtrading_ea_v1.1.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trendtrading_ea_v1.1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с использованием нескольких скользящих средних, осциллятора Awesome, параболического SAR и индикатора ADX с линиями Plus/Minus DI.
Советник формирует сигналы на открытие и закрытие позиций на основе комбинированных условий указанных индикаторов. Для управления рисками предусмотрены стоп-лосс, тейк-профит и трейлинг-стоп, а также проверка свободного маржинального баланса перед открытием сделки.
Реализован режим обработки каждого тика или завершённого бара, что позволяет гибко настраивать частоту проверки условий. При наступлении торговых событий советник способен отправлять уведомления по электронной почте. Все ордера идентифицируются с помощью магического числа.
Настройки программы
| Настройка | Описание |
|---|---|
| SignalMail | Уведомления по email — Переключатель, включающий или отключающий отправку email-уведомлений при открытии и закрытии позиций. |
| Choose_EachTickMode | Режим обработки тиков — Текстовый параметр, задающий режим обработки: режим обработки каждого тика или режим обработки завершённого бара. |
| EachTickMode | Обработка каждого тика — Переключатель, определяющий, обрабатываются ли сигналы при каждом новом тике или только при формировании нового бара. |
| Lots | Объём сделки — Объём торговой позиции в лотах. |
| Slippage | Проскальзывание — Допустимое проскальзывание цены при исполнении ордеров, в пунктах. |
| UseStopLoss | Использовать стоп-лосс — Переключатель, включающий или отключающий использование стоп-лосса. |
| StopLoss | Стоп-лосс — Расстояние до уровня стоп-лосса от цены открытия, в пунктах. |
| UseTakeProfit | Использовать тейк-профит — Переключатель, включающий или отключающий использование тейк-профита. |
| TakeProfit | Тейк-профит — Расстояние до уровня тейк-профита от цены открытия, в пунктах. |
| UseTrailingStop | Использовать трейлинг-стоп — Переключатель, включающий или отключающий использование трейлинг-стопа. |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа от текущей цены, в пунктах. |
| MagicNumber | Магическое число — Числовой идентификатор, присваиваемый ордерам для их распознавания и фильзации. |
Поиск по коду файла
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
extern bool SignalMail = False;
extern string Choose_EachTickMode= "True=Each Tick, False=Complete Bar";
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 3;
extern bool UseStopLoss = False;
extern int StopLoss = 200;
extern bool UseTakeProfit = False;
extern int TakeProfit = 200;
extern bool UseTrailingStop = False;
extern int TrailingStop = 100;
extern int MagicNumber = 26784599;
int BarCount;
int Current;
bool TickCheck = False;
int init() {
// код доступен только после оплаты
}
int deinit() {
return(0);
}
int start() {
// код доступен только после оплаты
}
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
double MA0_0 = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, Current + 0);
double MA0_1 = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double MA1_0 = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 0);
double MA1_1 = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double MA1_5 = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 5);
double MA1_6 = iMA(NULL, 0, 30, 0, MODE_SMA, PRICE_CLOSE, Current + 6);
double MA2_0 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 0);
double MA2_1 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double MA2_2 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, Current + 2);
double MA3_0 = iMA(NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, Current + 0);
double AO_0 = iAO(NULL, 0, Current + 0);
double AO_1 = iAO(NULL, 0, Current + 1);
double SAR_0 =iSAR(NULL, 0, 0.01, 0.1, Current + 0);
double SAR_1 =iSAR(NULL, 0, 0.01, 0.1, Current + 1);
double ADX_Plus_DI_0 =iADX(NULL, 0, 14, PRICE_CLOSE, MODE_PLUSDI, Current + 0);
double ADX_Minus_DI_0=iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MINUSDI, Current + 0);
double ADX_Plus_DI_1 =iADX(NULL, 0, 14, PRICE_CLOSE, MODE_PLUSDI, Current + 1);
double ADX_Minus_DI_1=iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MINUSDI, Current + 1);
double MA_Buy = MA1_0 > MA2_0 && MA2_0 > MA3_0 && MA1_0 > MA1_5 && MA1_1 > MA1_6 && MA2_0 > MA2_1 && MA2_1 > MA2_2 && Close[0] > MA3_0 && Close[0] > MA2_0 && MA0_0 > MA1_0 && MA0_1 > MA1_1 && SAR_0 > MA3_0;
double AO_Buy = AO_0 > 0.0 && AO_1 > 0.0;
double SAR_Buy = SAR_0 < Low[0] && SAR_1 < Low[1];
double ADX_Buy = ADX_Plus_DI_0 > ADX_Minus_DI_0 && ADX_Plus_DI_1 > ADX_Minus_DI_1;
double MA_Sell = MA1_0 < MA2_0 && MA2_0 < MA3_0 && MA1_0 < MA1_5 && MA1_1 < MA1_6 && MA2_0 < MA2_1 && MA2_1 < MA2_2 && Close[0] < MA3_0 && Close[0] < MA2_0 && MA0_0 < MA1_0 && MA0_1 < MA1_1 && SAR_0 < MA3_0;
double AO_Sell = AO_0 < 0.0 && AO_1 < 0.0;
double SAR_Sell = SAR_0 > High[0] && SAR_1 > High[1];
double ADX_Sell = ADX_Plus_DI_0 < ADX_Minus_DI_0 && ADX_Plus_DI_1 < ADX_Minus_DI_1;
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
if (MA1_0 < MA2_0 || MA0_0 < MA2_0 || Bid < MA3_0) Order = SIGNAL_CLOSEBUY;
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
Показано первые 50% кода (символов: 5672)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.