Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

CCI Color Levels - индикатор для MetaTrader 5

Просмотров:
3911
Рейтинг:
(23)
Опубликован:
2018.01.09 12:01
Обновлен:
2021.09.07 05:24
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Индикатор имеет такой вид:

CCI Color Levels

Для достижения такого визуального вида были использованы три вида построений:

CCI Color Levels Draw


Входные параметры индикатора

  • Averaging period - период усреднения индикатора;
  • Level UP - значение уровня UP;
  • Level DOWN - значение уровня DOWN.

При этом уровни "UP" и "DOWN" будут сразу отображаться в подокне индикатора:

CCI Color Levels Inputs


Как получать данные индикатора в советнике

Так как стиль построения DRAW_HISTOGRAM2 строится на двух индикаторных буферах, в окне "Data Window" мы будем видеть два значения "Level UP" и два значения "Level DOWN":

Test CCI Color Levels.png

Эти значения соответствуют индикаторных буферам от "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.

Arbitrage Synthetic Arbitrage Synthetic

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

SignalCCI BuyOrSell SignalCCI BuyOrSell

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

Reduce_risks Reduce_risks

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

eaBreakeven eaBreakeven

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