Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1618
- Рейтинг:
- Опубликован:
- 2016.11.22 16:01
- Обновлен:
- 2023.03.16 17:30
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
- Сигналы быстрого и медленного трендов совпадают;
- Произошла смена направления быстрого тренда.
Входные параметры эксперта:
//| Входные параметры индикатора эксперта |
//+-------------------------------------------------+
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() изменены строковые пути к используемым как ресурсы индикаторам
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. Примеры сделок на графике
Результаты тестирования за 2015 год на GBPJPY, медленный тренд на H6, вход по быстрому тренду по M30:
Рис. 2. График результатов тестирования

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

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

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

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