Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4206
- Рейтинг:
- Опубликован:
- 2018.01.09 12:01
- Обновлен:
- 2021.09.07 05:24
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Индикатор имеет такой вид:
Для достижения такого визуального вида были использованы три вида построений:
- DRAW_HISTOGRAM2 ("Level UP");
- DRAW_LINE ("CCI");
- DRAW_HISTOGRAM2 ("Level DOWN").
Входные параметры индикатора
- Averaging period - период усреднения индикатора;
- Level UP - значение уровня UP;
- Level DOWN - значение уровня DOWN.
При этом уровни "UP" и "DOWN" будут сразу отображаться в подокне индикатора:
Как получать данные индикатора в советнике
Так как стиль построения DRAW_HISTOGRAM2 строится на двух индикаторных буферах, в окне "Data Window" мы будем видеть два значения "Level UP" и два значения "Level DOWN":
Эти значения соответствуют индикаторных буферам от "0" до "4" включительно.
В советнике создаём хендл индикатора при помощи iCustom:
//--- input parameters input int Inp_CCI_ma_period = 14; // Averaging period input double Inp_CCI_LevelUP = 90; // Level UP input double Inp_CCI_LevelDOWN =-90; // Level DOWN //--- int handle_iCustom; // variable for storing the handle of the iCustom indicator //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create handle of the indicator iCCI handle_iCustom=iCustom(Symbol(),Period(),"CCI Color Levels",Inp_CCI_ma_period,Inp_CCI_LevelUP,Inp_CCI_LevelDOWN); //--- if the handle is not created if(handle_iCustom==INVALID_HANDLE) { //--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iCCI indicator for the symbol %s/%s, error code %d", Symbol(), EnumToString(Period()), GetLastError()); //--- the indicator is stopped early return(INIT_FAILED); } //--- return(INIT_SUCCEEDED); }
Здесь предполагается, что индикатор CCI Color Levels находится в папке [data folder]\MQL5\Indicators\.
Само получение значений индикатора (ценность представляют только буферы №№ 0, 2 и 4):
//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double level_up = iCustomGet(handle_iCustom,0,0); // buffer #0 -> BufferUpHigh double cci = iCustomGet(handle_iCustom,2,0); // buffer #2 -> BufferCCI double level_down = iCustomGet(handle_iCustom,4,0); // buffer #4 -> BufferDownLow string text="Lelev UP #0: "+DoubleToString(level_up,2)+"\n"+ "CCI #0: "+DoubleToString(cci,2)+"\n"+ "Lelev DOWN #0: "+DoubleToString(level_down,2); Comment(text); }
На рисунке выше снят скриншот, когда мышка установлена на бар с индексом "0", при этом видно окно "Data Windows" с данными индикатора, а на графике выведена информация из советника по индикаторным буферам №№ 0, 2 и 4.

Робот для арбитража между парой EURGBP и ее синтетическим курсом (треугольный арбитраж).

Модуль торговых сигналов на базе модуля сигналов индикатора iCCI (Commodity Channel Index, CCI).

MQL5-версия советника из статьи "Как снизить риски трейдера" (https://www.mql5.com/ru/articles/4233).

Советник, который переносит стоп лосс позиции в безубыток.