MetaTrader 5 / Советники

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

2419
(19)

Реальный автор:  Хлыстов Владимир

Самый простой советник по взвешенному осциллятору Fractal_WeightOscillator. Продаем при пересечении сверху вниз уровня перекупленности осциллятора, покупаем при пересечении снизу вверх уровня перепроданности осциллятора. Сигнал на совершение сделки формируется в момент закрытия бара, если произошло пересечение уровня.

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

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

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

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

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

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

//---- получение хендла индикатора Fractal_WeightOscillator
   InpInd_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\Fractal_WeightOscillator",
                         e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType,
                         WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
   if(InpInd_Handle==INVALID_HANDLE)
     {
      Print(" Не удалось получить хендл индикатора Fractal_WeightOscillator");
      return(INIT_FAILED);
     }

//---- получение хендла индикатора Fractal_WeightOscillator_HTF для визуализации в тестере стратегий  
   if(MQLInfoInteger(MQL_VISUAL_MODE))
     {
      //---- получение хендла индикатора Fractal_WeightOscillator_HTF
      int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\Fractal_WeightOscillator_HTF",InpInd_Timeframe,
                             e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType,
                             WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Не удалось получить хендл индикатора Fractal_WeightOscillator_HTF");
         return(INIT_FAILED);
        }
     }

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

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

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

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

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

Результаты тестирования за 2015 год на GBPUSD H6:

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

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