Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1745
- Рейтинг:
- Опубликован:
- 2017.02.03 11:32
- Обновлен:
- 2023.03.16 17:25
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Торговая система, построенная на изменениях направления взвешенного осциллятора WeightOscillator. Продаем, если осциллятор поменял направление движения с растущего на падающее, покупаем при изменении направления на растущее. Сигнал на совершение сделки формируется в момент закрытия бара.
Индикатор WeightOscillator_HTF в эксперте предназначен только для более удобной визуализации трендов в тестере стратегий, и в других режимах он не работает.
Для корректной компиляции советника необходимо наличие откомпилированных файлов индикаторов WeightOscillator.ex5 и WeightOscillator_HTF.ex5 в папке <каталог_данных_терминала>\MQL5\Indicators.
После компиляции файл эксперта Exp_WeightOscillator.ex5 содержит индикаторы WeightOscillator.ex5 и WeightOscillator_HTF.ex5 в себе как ресурсы, и поэтому дальнейшей необходимости их наличия в папке терминала для работы откомпилированного эксперта нет! Для этого в код эксперта добавлен соответствующий код для включения этих индикаторов в исполняемый файл эксперта.
На глобальном уровне добавлены исполняемые файлы индикаторов как ресурсы:
//---- Включение индикаторов в код эксперта как ресурсов #resource "\\Indicators\\WeightOscillator.ex5" #resource "\\Indicators\\WeightOscillator_HTF.ex5"
В блоке функции OnInit() изменены строковые пути к используемым как ресурсы индикаторам:
//---- получение хендла индикатора WeightOscillator InpInd_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\WeightOscillator",RSIWeight,RSIPeriod,RSIPrice,MFIWeight,MFIPeriod,MFIVolumeType, WPRWeight,WPRPeriod,DeMarkerWeight,DeMarkerPeriod,bMA_Method,bLength,bPhase,HighLevel,LowLevel); if(InpInd_Handle==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора WeightOscillator"); return(INIT_FAILED); } //---- получение хендла индикатора WeightOscillator_HTF для визуализации в тестере стратегий if(MQLInfoInteger(MQL_VISUAL_MODE)) { //---- получение хендла индикатора WeightOscillator_HTF int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\WeightOscillator_HTF",InpInd_Timeframe, RSIWeight,RSIPeriod,RSIPrice,MFIWeight,MFIPeriod,MFIVolumeType, WPRWeight,WPRPeriod,DeMarkerWeight,DeMarkerPeriod,bMA_Method,bLength,bPhase,HighLevel,LowLevel); if(Ind_Handle==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора WeightOscillator_HTF"); return(INIT_FAILED); } }
Таким образом, откомпилированный исполняемый файл эксперта можно использовать на других торговых терминалах без индикаторов самостоятельно.
Следует учесть, что файл библиотеки TradeAlgorithms.mqh предназначен для использования экспертов у брокеров, предлагающих ненулевой спред и возможность установки Stop Loss и Take Profit одновременно с открытием позиции. Другие варианты этой библиотеки можно скачать по ссылке Trade Algorithms.
В тестах, приведенных ниже, использовались входные параметры эксперта по умолчанию. Stop Loss и Take Profit в тестах не использовались.
Рис. 1. Примеры сделок на графике
Результаты тестирования за 2015 год на EURAUD H6:
Рис. 2. График результатов тестирования

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

Индикатор ZigZag, построенный с использованием алгоритма индикатора NRTR_extr

Торговая система с использованием индикатора IBS_RSI_CCI_v4

Индикатор Ichimoku с алертом.