Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2452
- Рейтинг:
- Опубликован:
- 2016.12.06 17:13
- Обновлен:
- 2023.03.16 17:30
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Осциллятор, представляющий взвешенную сглаженную сумму четырёх индикаторов: Fractal_RSI, Fractal_MFI, Fractal_WPR и Fractal_DeMarker.
Для корректной компиляции индикатора Fractal_WeightOscillator необходимо наличие откомпилированных файлов индикаторов Fractal_RSI.mq5, Fractal_MFI.mq5, Fractal_WPR.mq5 и Fractal_DeMarker.mq5 в папке <каталог_данных_терминала>\MQL5\Indicators.
После компиляции файл индикатора Fractal_WeightOscillator.ex5 содержит эти индикаторы в себе как ресурсы, и поэтому дальнейшей необходимости их наличия в папке терминала для работы откомпилированного итогового индикатора нет! Для этого в код индикатора добавлен соответствующий код для включения индикаторов в исполняемый файл.
На глобальном уровне добавлены исполняемые файлы индикаторов как ресурсы
#resource "\\Indicators\\Fractal_RSI.ex5"
#resource "\\Indicators\\Fractal_MFI.ex5"
#resource "\\Indicators\\Fractal_WPR.ex5"
#resource "\\Indicators\\Fractal_DeMarker.ex5"
В блоке функции OnInit() изменёны строковые пути к используемым как ресурсы индикаторам
RSI_Handle=iCustom(NULL,0,"::Indicators\\Fractal_RSI",e_period,normal_speed,RSIPrice);
if(RSI_Handle==INVALID_HANDLE)
{
Print(" Не удалось получить хендл индикатора Fractal_RSI");
return(INIT_FAILED);
}
//---- получение хендла индикатора Fractal_MFI
MFI_Handle=iCustom(NULL,0,"::Indicators\\Fractal_MFI",e_period,normal_speed,MFIPrice,MFIVolumeType);
if(MFI_Handle==INVALID_HANDLE)
{
Print(" Не удалось получить хендл индикатора Fractal_MFI");
return(INIT_FAILED);
}
//---- получение хендла индикатора Fractal_WPR
WPR_Handle=iCustom(NULL,0,"::Indicators\\Fractal_WPR",e_period,normal_speed);
if(WPR_Handle==INVALID_HANDLE)
{
Print(" Не удалось получить хендл индикатора Fractal_WPR");
return(INIT_FAILED);
}
//---- получение хендла индикатора Fractal_DeMarker
DeMarker_Handle=iCustom(NULL,0,"::Indicators\\Fractal_DeMarker",e_period,normal_speed);
if(DeMarker_Handle==INVALID_HANDLE)
{
Print(" Не удалось получить хендл индикатора Fractal_DeMarker");
return(INIT_FAILED);
}
Таким образом, откомпилированный исполняемый файл индикатора Fractal_WeightOscillator можно использовать на других торговых терминалах без исходного индикатора самостоятельно.
Индикатор использует классы библиотеки SmoothAlgorithms.mqh (нужно скопировать в <каталог_данных_терминала>\MQL5\Include), подробное описание работы с которыми было опубликовано в статье "Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов".
Порядок компиляции файлов:
- Fractal_RSI.mq5, Fractal_MFI.mq5, Fractal_WPR.mq5 и Fractal_DeMarker.mq5
- Fractal_WeightOscillator.mq5
Рис.1. Индикатор Fractal_WeightOscillator

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

Самый простой советник по фрактальному MFI.

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

Советник по мотивам Ilan 1.6. Используются индикаторы iCCI(CCI, Commodity Channel Index), iRSI(RSI, Relative Strength Index).