Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Exp_ColorZerolagMomentum_X2 - эксперт для MetaTrader 5

Просмотров:
1539
Рейтинг:
(12)
Опубликован:
2016.11.22 16:01
Обновлен:
2023.03.16 17:30
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Трендовая торговая система Exp_ColorZerolagMomentum_X2 построена на основе сигналов двух индикаторов ColorZerolagMomentum. По первому индикатору определяется направление медленного тренда по положению основной и сигнальной линий, а по второму индикатору — момент совершения сделки, когда происходит пересечение или касание линий. Сигнал на совершение сделки формируется в момент закрытия бара в случае соблюдения двух условий:
  1. Сигналы быстрого и медленного трендов совпадают;
  2. Произошла смена направления быстрого тренда.

Входные параметры эксперта:

//+-------------------------------------------------+
//| Входные параметры индикатора эксперта           |
//+-------------------------------------------------+
input string Trade="Управление торговлей";    //+============== УПРАВЛЕНИЕ ТОРГОВЛЕЙ ==============+  
input double MM=0.1;               //Доля финансовых ресурсов от депозита в сделке
input MarginMode MMMode=LOT;      //способ определения размера лота
input uint    StopLoss_=1000;      //стоплосс в пунктах
input uint    TakeProfit_=2000;    //тейкпрофит в пунктах
input string MustTrade="Разрешения торговли";    //+============== РАЗРЕШЕНИЯ ТОРГОВЛИ ==============+  
input int    Deviation_=10;       //макс. отклонение цены в пунктах
input bool   BuyPosOpen=true;     //Разрешение для входа в лонг
input bool   SellPosOpen=true;    //Разрешение для входа в шорт
//+-------------------------------------------------+
//| Входные параметры индикатора фильтра            |
//+-------------------------------------------------+
input string Filter="ПАРАМЕТРЫ МЕДЛЕННОГО ТРЕНДА";    //+============== ПАРАМЕТРЫ ТРЕНДА ==============+  
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6;  //1 Период графика для тренда
input uint    smoothing=15;
input ENUM_APPLIED_PRICE IPC=PRICE_CLOSE;//Ценовая константа
//----
input double Factor1=0.05;
input uint    Momentum_period1=8;
//----
input double Factor2=0.10;
input uint    Momentum_period2=21;
//----
input double Factor3=0.16;
input uint    Momentum_period3=34;
//----
input double Factor4=0.26;
input int    Momentum_period4=55;
//----
input double Factor5=0.43;
input uint    Momentum_period5=89;
input uint SignalBar=1; //номер бара для получения сигнала входа
input bool   BuyPosClose=true;     //Разрешение для выхода из лонгов по тренду
input bool   SellPosClose=true;    //Разрешение для выхода из шортов по тренду
//+-------------------------------------------------+
//| Входные параметры индикатора входа              |
//+-------------------------------------------------+
input string Input="ПАРАМЕТРЫ ВХОДА";       //+=============== ПАРАМЕТРЫ ВХОДА ===============+  
input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;  //2 Период графика для входа
input uint    smoothing_=15;
input ENUM_APPLIED_PRICE IPC_=PRICE_CLOSE;//Ценовая константа
//----
input double Factor1_=0.05;
input uint    Momentum_period1_=8;
//----
input double Factor2_=0.10;
input uint    Momentum_period2_=21;
//----
input double Factor3_=0.16;
input uint    Momentum_period3_=34;
//----
input double Factor4_=0.26;
input int    Momentum_period4_=55;
//----
input double Factor5_=0.43;
input uint    Momentum_period5_=89;
input uint SignalBar_=1;//номер бара для получения сигнала входа
input bool   BuyPosClose_=false;     //Разрешение для выхода из лонгов по сигналу
input bool   SellPosClose_=false;    //Разрешение для выхода из шортов по сигналу
//+-------------------------------------------------+

Строковые переменные с текстом в коде входных параметров предназначены только для лучшего визуального отображения окна входных параметров эксперта.

Индикаторы ColorZerolagMomentum_HTF в эксперте предназначены только для более удобной визуализации трендов в тестере стратегий, и в других режимах работы они не работают.

Для корректной компиляции советника необходимо наличие откомпилированных файлов индикаторов  ColorZerolagMomentum.ex5 и ColorZerolagMomentum_HTF.ex5  в папке <каталог_данных_терминала>\MQL5\Indicators.

После компиляции файл эксперта Exp_ColorZerolagMomentum.ex5 содержит индикаторы ColorZerolagMomentum.ex5 и  ColorZerolagMomentum_HTF.ex5 в себе как ресурсы, и поэтому дальнейшей необходимости их наличия в папке терминала для работы откомпилированного эксперта нет! Для этого в код эксперта добавлен соответствующий код для включения этих индикаторов в исполняемый файл эксперта.

На глобальном уровне добавлены исполняемые файлы индикаторов как ресурсы

//---- Включение индикаторов в код эксперта как ресурсов
#resource "\\Indicators\\ColorZerolagMomentum.ex5"
#resource "\\Indicators\\ColorZerolagMomentum_HTF.ex5"

В блоке функции OnInit() изменены строковые пути к используемым как ресурсы индикаторам

//---- получение хендла индикатора ColorZerolagMomentum
   InpInd_Handle=iCustom(Symbol(),TimeFrame,"::Indicators\\ColorZerolagMomentum",
                         smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
   if(InpInd_Handle==INVALID_HANDLE)
     {
      Print(" Не удалось получить хендл индикатора ColorZerolagMomentum");
      return(INIT_FAILED);
     }

//---- получение хендла индикатора ColorZerolagMomentum _
   InpInd_Handle_=iCustom(Symbol(),TimeFrame_,"::Indicators\\ColorZerolagMomentum",
                          smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
   if(InpInd_Handle_==INVALID_HANDLE)
     {
      Print(" Не удалось получить хендл индикатора ColorZerolagMomentum _");
      return(INIT_FAILED);
     }

   if(MQLInfoInteger(MQL_VISUAL_MODE))
     {
      //---- получение хендла индикатора ColorZerolagMomentum_HTF
      int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\ColorZerolagMomentum_HTF",TimeFrame,
                             smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Не удалось получить хендл индикатора ColorZerolagMomentum_HTF");
         return(INIT_FAILED);
        }
      //---- получение хендла индикатора ColorZerolagMomentum_HTF
      Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\ColorZerolagMomentum_HTF",TimeFrame_,
                         smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Не удалось получить хендл индикатора ColorZerolagMomentum_HTF _");
         return(INIT_FAILED);
        }

     }

Таким образом, откомпилированный исполняемый файл эксперта можно использовать на других торговых терминалах без индикаторов самостоятельно.

Следует учесть, что файл библиотеки TradeAlgorithms.mqh предназначен для использования экспертов у брокеров, предлагающих ненулевой спред и возможность установки Stop Loss и Take Profit одновременно с открытием позиции. Другие варианты этой библиотеки можно скачать по ссылке Trade Algorithms.

При тестах, приведенных ниже, использовались входные параметры эксперта по умолчанию. Stop Loss и Take Profit в тестах не использовались.

Рис. 1. Примеры сделок на графике

Рис. 1. Примеры сделок на графике

Результаты тестирования за 2015 год на GBPJPY, медленный тренд на H6, вход по быстрому тренду по M30:

Рис. 2. График результатов тестирования

Рис. 2. График результатов тестирования

Fractal_DeMarker Fractal_DeMarker

Фрактальный осциллятор Демарка.

Fractal_Keltner_HTF Fractal_Keltner_HTF

Индикатор Fractal_Keltner с возможностью изменения таймфрейма индикатора во входных параметрах.

Exp_Zonal_Trading Exp_Zonal_Trading

Советник использует в своей работе индикаторы AO и AC, предложенные Биллом Уильямсом.

Fractal_Moving_Average Fractal_Moving_Average

Фрактальная скользящая средняя с индикацией своего последнего значения ценовой меткой и возможностью менять алгоритм усреднения.