English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Разработка торговой системы на основе индикатора CCI

Разработка торговой системы на основе индикатора CCI

MetaTrader 5Трейдинг | 20 июня 2022, 10:32
2 050 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Введение

Это новая статья из нашей серии, в которой мы учимся создавать торговые системы на основе простых стратегий с использованием наиболее популярных технических индикаторов. На этот раз мы обсудим индикатор Индекс товарного канала (Commodity Channel Index, CCI). Как и всегда, я постараюсь объяснить основы с тем, чтобы помочь понять идею и способы использования. В конечном счете эти объяснения могут дать вам понимание и новые идеи, которые вы сможете использовать в своей торговле.

В этой статье мы разработаем торговую систему на основе индикатора CCI. О чем будем говорить:

Начнем с подробного рассмотрения самого индикатора Commodity Channel Index (CCI): что он измеряет и как рассчитывается. Именно когда мы понимаем самые основы того, что мы делаем, получается эффективнее использовать инструменты и находить новые идеи. Об этом мы поговорим в разделе "Определение CCI". Затем мы поработаем над простой стратегией, которую можно использовать с CCI в различных рыночных условиях — об этом речь пойдет в разделе "Стратегия CCI". Затем мы узнаем, как мы спроектировать торговую систему на основе этой стратегии, начав с подробного плана, который позволит четко представить, что же в итоге должна делать программа. Ну и в завершении научимся проектировать то, что мы запланировали, по разработанной схеме торговой системы.

В этой статье мы будем использовать торговую платформу MetaTrader 5 и языковой редактор MetaQuotes Language Editor. Если у вас еще не установлена платформа MetaTrader 5, ее можно скачать по ссылке: https://www.metatrader5.com/en/download

После установки вы увидите такое окно терминала MetaTrader 5:

Терминал MetaTrader 5

Далее нужно открыть редактор MetaQuotes Language, нажав F4 при открытом терминале или через команду MetaQuotes Language Editor в меню Сервис в терминале:

 Открываем редактор MQL

Или нажмите кнопку IDE на панели инструментов MetaTrader 5:

Кнопка IDE в MetaTrader 5

Здесь я должен упомянуть о пользе программирования в трейдинге, так как именно оно помогает быть дисциплинированными. Дисциплина является важным фактором для успешной торговли, в то время как эмоции могут быть вредны: решения надо принимать в соответствии с планом, но зачастую нам трудно принять правильное действие или решение из-за страха, жадности или других эмоций.

Именно программирование позволяет запрограммировать определенный торговый план в соответствии с нашими условиями и придерживаться его. Программа будет делать то, что нужно, по определенным нами правилам, без эмоций, которые могут повлиять на результат. Все это и есть дисциплина. В нашем случае мы используем MQL5 — этот язык позволяет программировать торговые стратегии и планы таким образом, чтобы потом их можно было автоматически исполнять в торговом терминале. Программа может быть от самой простой для очень сложной, в зависимости от торгового плана.

Примечание. Все содержание настоящей статьи предназначено только для целей обучения и не предназначена для других целей. Все, что вы применяете на практике на основе этой статьи, вы делаете исключительно на свой страх и риск, автор не гарантирует никаких результатов.

Теперь давайте приступим к изучению этой темы, еще одного блока знаний, который поможет нам стать лучше.


Определение CCI

В этой части мы более подробно узнаем об индикаторе Commodity Channel Index (CCI): что он измеряет, как рассчитывается и как им пользоваться. 

Индикатор CCI (Индекс товарного канала) измеряет текущий уровень цены по отношению к среднему уровню цены в течение заданного периода времени. Когда Ламберт создавал этот индикатор, его изначальной целью было измерить циклические движения товаров. Однако индикатор может измерять и другие финансовые инструменты. CCI можно использовать для определения силы тренда и разворотов благодаря его природе импульсного индикатора.

Согласно расчетам CCI и его измерениям: высокое значение CCI означает, что цены намного выше среднего, и наоборот, когда CCI низкий, это означает, что цены намного ниже среднего.

Как рассчитывается индикатор CCI:

  • Находим типичную цену (Typical Price, TP):

TP = (High + Low + Close)/3

  • Находим простую скользящую среднюю типичной цены (SMA от TP):

SMA от TP = Сумма TP/n

  • Находим среднее отклонение:

Среднее отклонение = сумма Abs(TP-SMA)/n

  • Рассчитываем CCI:

CCI =  (TP-SMA от TP)/(0.015*Среднее отклонение)

Посмотрим пример такого расчета:

Допустим, у нас есть такие цены за 14 дней:

День Максимум Минимум Закрытие
1 100 90 110
2 130 100 120
3 140 110 130
4 130 100 120
5 120 95 110
6 140 120 130
7 160 130 150
8 170 150 160
9 155 130 140
10 140 120 130
11 160 140 150
12   180 160 170
13   190 170 190
14   200 180 210

На основе этих данных рассчитаем CCI:

  • Сначала рассчитаем типичную цену (TP):

TP = (High + Low + Close)/3

После расчета типичной цены имеем такую таблицу:

Пример CCI1

  • Затем нужно рассчитать простую скользящую среднюю (SMA) рассчитанной цены TP:

SMA от TP = Сумма TP/n

Получаем следующий результат:

Пример CCI2

  • Затем рассчитываем разницу между TP и SMA в абсолютных значениях, чтобы найти среднее отклонение:

Abs (TP-SMA)

Получилось вот так:

Пример CCI3

  • Далее считаем среднее отклонение:

Среднее отклонение = сумма Abs(TP-SMA)/n

Пример CCI4

  • И сейчас можем рассчитать сам индикатор CCI:
CCI =  (TP-SMA of TP)/(0.015*Mean Deviation)

CCI = (196.67-141.19)/(0.015*22.86)

CCI = 55.48/0.3429

CCI = 161.80

Но на самом деле ничего не нужно рассчитывать вручную, ведь есть готовый индикатор, который идет в стандартной поставке платформы MetaTrader 5. Начать использовать индикатор можно мгновенно — нужно просто выбрать индикатор CCI в платформе, как показано на следующем рисунке:

Добавляем CCI на график

После выбора CCI появится следующее окно:

 Окно CCI

В окне индикатора показаны его параметры:

  • 1 - период индикатора
  • 2 - тип цены, используемый в расчете индикатора, в нашем случае мы выберем типичную цену — Typical price.
  • 3 - стиль индикатора: цвет, вид и толщина линии.

Настраиваем нужные параметры, нажимаем Ok, и индикатор запускается на графике:

Индикатор CCI на графике

CCI — осциллятор, который колеблется между значениями 100 и -100


Стратегия CCI

В этой части мы поговорим о двух простых стратегиях, которые можно использовать с CCI. Одна из стратегий связана с использованием в соответствии с рыночным трендом (восходящий, нисходящий и боковой). Вторая — на основе пересечения индикатора CCI с нулем и с уровнями 100 и -100. Тем не менее существует множество других стратегий на основе индикатора CCI. Какую бы стратегию вы ни выбрали, прежде чем использовать в реальной торговле, обязательно тестируйте ее на демо-счете, чтобы понять, подходит она вам или нет.

Итак, стратегии будут такие.

Первая стратегия: CCI с трендом

    • Во время восходящего тренда:

      Восходящий тренд — это направление рынка, при котором цены образуют более высокие минимумы и более высокие максимумы, а на рынок оказывают влияние покупатели. В таких условиях можно использовать CCI для генерации сигнала на покупку: когда линия CCI пробивает уровень 100. То есть, CCI > 100. Для фиксации прибыли нужно использовать какой-нибудь другой эффективный инструмент, например Price Action.

      CCI > 100 = покупка

      Если выбрали Price Action, тейк-профитом может служить закрытие ниже предыдущего минимума.
        • Во время нисходящего тренда:

          Нисходящий тренд — это тенденция, противоположная восходящему тренду: цены образуют более низкие минимумы и более низкие максимумы, а на рынок оказывают влияние продавцы, которые двигают его вниз. На таком рынке сигналы от CCI будут такими: сигнал на продажу формируется, когда линия CCI пробивает уровень -100 вниз. Ценовое действие можно использовать для фиксации прибыли.

          CCI < -100 = короткая продажа

          По Price Action тейк-профит будет при закрытии выше предыдущего максимума.
            • Во время бокового движения:

              Боковое движение обозначает баланс между покупателями и продавцами, никто из них явно не превалирует. Это любое движение, которое нельзя отнести ни к восходящему, ни к нисходящему тренду.

              Индикатор CCI также подходит для получения сигналов во время бокового движения. Когда линия CCI пробивает уровень -100 вниз, это сигнал на покупку, а когда пробивает 100 вверх, это будет тейк-профит. Когда линия CCI пробивает уровень 100 вверх, это сигнал короткой сделки, а когда пробивает -100 вниз, это будет тейк-профит.

              CCI < -100 = buy
              CCI > 100 = take profit
              CCI > 100 = short

              CCI < -100 = take profit

                Вторая стратегия: пересечение нуля

                  В этой статье рассмотрим еще один способ использования CCI: можно входить в рынок при пересечении с нулевым уровнем и фиксировать прибыль при пересечении уровней 100 и -100 в зависимости от типа позиции (покупка или продажа).

                    • Сигнал на покупку:

                      Анализируем CCI относительно уровня нуля. Когда значение CCI поднимется выше нуля, это будет сигнал на покупку, и мы можем зафиксировать прибыль, когда значение CCI превысит 100.

                      CCI > 0 = Buy
                      CCI > 100 = take profit 

                        • Короткий сигнал:

                          Анализируем CCI относительно уровня нуля. Когда значение CCI опустится ниже нуля, это будет сигнал на открытие сделки на продажу, и мы можем зафиксировать прибыль, когда значение CCI пробьет -100.

                          CCI < 0 = Buy
                          CCI < 100 = take profit 

                          Схема торговой системы по CCI

                          Мы подошли к самой интересной части этой статьи — будем программировать все эти стратегии для автоматизации сигналов.

                          Нужно написать код для каждой из упомянутых стратегий, чтобы компьютер знал, чего мы от него ждем. Начнем шаг за шагом с разработки плана.

                            Первая стратегия: CCI с трендом
                              • Во время восходящего тренда:

                                Программа должна проверять значение CCI на каждом тике и выполнять определенные действия в зависимости от значения CCI.

                                Если CCI выше нуля — сигнал на покупку, иначе — ничего не делать.

                                Схема восходящего тренда CCI

                                  • Во время нисходящего тренда:

                                    Проверяем значение CCI на каждом тике и выполняем определенные действия в зависимости от его значения.

                                    Если значение CCI ниже -100, показываем короткий сигнал, если нет, ничего не делаем.

                                    Схема CCI для нисходящего тренда

                                      • Во время бокового движения:

                                        Во время бокового движения программа должна проверять значение CCI на каждом тике и выполнять определенные действия в зависимости от значения CCI.

                                        Если значение CCI ниже -100, даем сигнал на покупку, тейк-профит. Если CCI не ниже -100, проверяем, находится ли CCI выше -100 и ниже 100, ничего не делаем (ждем). Если же там тоже нет CCI, проверяем, находится ли CCI выше 100, даем сигнал на тейк-профит.

                                        Схема CCI для бокового тренда

                                          Вторая стратегия: пересечение нуля
                                            • Сигнал на покупку:

                                              На каждом тике проверяем значение CCI и нулевой уровень. Когда значение CCI становится выше нуля, генерируем сигнал на покупку на графике, а когда значение CCI становится выше 100, показываем сигнал тейк-профита.

                                              Стратегия CCI с пересечением нуля - схема на покупку

                                                • Короткий сигнал:
                                                  Когда значение CCI становится ниже нуля, генерируем сигнал на открытие короткой сделки на графике, а когда значение CCI становится ниже -100, показываем сигнал тейк-профита.

                                                  Стратегия CCI с пересечением нуля - схема на продажу

                                                  Торговая система по CCI

                                                  Теперь нужно написать код для каждой из упомянутых стратегий, чтобы компьютер знал, чего мы от него ждем.

                                                  Для начала напишем программу, которая показывает значения CCI на графике. Программирование состоит из следующих шагов:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Отображение значений CCI на графике.

                                                  Код внизу показывает все эти шаги для создания программы, которая позволяет компьютеру автоматически отображать значения CCI на графике:

                                                  //+------------------------------------------------------------------+
                                                  //|                                            Simple CCI System.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //Значения CCI на графике
                                                     Comment ("CCI Value = ",CCIValue);
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  

                                                  После написания и компиляции программа появится в Навигаторе (Simple CCI System). Выбираем ее и запускаем в платформе:

                                                  Обновленный навигатор CCI

                                                  Программу (Simple CCI System) можно открыть двойным щелчком или перетаскиванием на графике. После этого откроется следующее окно:

                                                  Окно Simple CCI System

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Simple CCI запустится на графике, на котором будут отображаться значения CCI:

                                                  Simple CCI System на графике 

                                                  Посмотрим теперь, как написать код этих двух стратегий:

                                                  • Первая стратегия: CCI с трендом
                                                    • Во время восходящего тренда:

                                                  CCI > 100 = покупка


                                                  Для этого выполним следующие шаги:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Установка условий для сигнала по CCI во время растущего тренда.

                                                  Вот код этих шагов:

                                                  //+------------------------------------------------------------------+
                                                  //|                                         Uptrend CCI Strategy.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //Сигналы CCI для восходящего тренда
                                                     if(CCIValue> 100)
                                                     Comment ("UPTREND CCI - BUY SIGNAL ");
                                                     
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  
                                                  

                                                  После компиляции программа Uptrend CCI Strategy появится в навигаторе:

                                                  Uptrend strategy CCI в навигаторе

                                                  Запускаем CCI Uptrend Strategy, дважды кликнув или перетащив на график. После этого откроется окно редактора:

                                                  Окно восходящей стратегии по CCI

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Uptrend CCI Strategy запустится на графике:

                                                  Стратегия Uptrend CCI на графике

                                                  Сигналы Uptrend CCI будут отображаться по этой стратегии:

                                                  Стратегия Uptrend CCI - сигнал на покупку

                                                  • Во время нисходящего тренда:

                                                  CCI < -100 = короткая продажа

                                                  Следующие шаги:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Установка условий для сигнала по CCI во время падающего тренда.

                                                  Ниже приведен код программы, которую можно запустить в торговой платформе:

                                                  //+------------------------------------------------------------------+
                                                  //|                                       Downtrend CCI Strategy.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //сигналы CCI
                                                     if(CCIValue< -100)
                                                     Comment ("DOWNTREND CCI - SHORT SIGNAL ");
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  
                                                  

                                                  Находим Downtrend CCI Strategy в навигаторе:

                                                  Стратегия Downtrend CCI в навигаторе

                                                  Открываем программу Downtrend CCI Strategy двойным кликом или перетаскиваем на график. Откроется следующее окно:

                                                  Окно стратегии Downtrend CCI

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Downtrend CCI Strategy запустится на графике:

                                                  Стратегия Downtrend CCI на графике

                                                  Сигналы Downtrend CCI Strategy будут отображаться на графике в соответствии с этой стратегией:

                                                  Стратегия CCI на нисходящем тренде - короткий сигнал

                                                  • Во время бокового движения:
                                                    • Для сигналов на покупку:

                                                  CCI < -100 = покупка

                                                  CCI > 100 = тейк-профит

                                                  Этапы:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Установка условий для сигнала по CCI во время бокового тренда.

                                                  Код этих шагов:

                                                  //+------------------------------------------------------------------+
                                                  //|                                  Sideways CCI Strategy - Buy.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //сигналы CCI
                                                     if(CCIValue< -100)
                                                     Comment ("SIDEWAYS CCI - BUY SIGNAL ");
                                                     
                                                     if(CCIValue> 100)
                                                     Comment ("SIDEWAYS CCI - TAKE PROFIT");
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  

                                                  Находим программу Sideways CCI Strategy - Buy в навигаторе:

                                                   Стратегия Sideways Buy по CCI в навигаторе

                                                  Затем откройте файл двойным кликом или перетащите его на график. Откроется следующее окно:


                                                  Окно стратегии CCI Sideways - Buy

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Sideways CCI Strategy запустится на графике:

                                                  Стратегия CCI Sideways - Buy на графике

                                                  На графике будут появляться сигналы согласно запрограммированной стратегии Sideways CCI Strategy - Buy:

                                                  Боковая стратегия CCI - покупка

                                                  Сигнал тейк-профита: CCI > 100 = тейк-профит. Например:

                                                  Sideways CCI - Buy - TP

                                                    • Для коротких сигналов:

                                                  CCI > 100 = сделка на продажу

                                                  CCI < -100 = тейк-профит

                                                  Следующие шаги нужно запрограммировать:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Установка условий для сигнала на короткую продажу по CCI во время бокового тренда.

                                                  Код далее показывает все эти шаги для создания программы по стратегии Sideways CCI Strategy - Short:

                                                  //+------------------------------------------------------------------+
                                                  //|                                Sideways CCI Strategy - Short.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //сигналы CCI
                                                     if(CCIValue> 100)
                                                     Comment ("SIDEWAYS CCI - SHORT SIGNAL ");
                                                     
                                                     if(CCIValue< -100)
                                                     Comment ("SIDEWAYS CCI - TAKE PROFIT");
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  

                                                  Находим программу Sideways CCI Strategy - Short в навигаторе:

                                                  Стратегия Sideways Short по CCI в навигаторе

                                                  Открываем программу Sideways CCI Strategy - Short двойным кликом или перетаскиваем на график. Откроется следующее окно:

                                                  Окно стратегии CCI Sideways - Short

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Sideways CCI Strategy - Short запустится на графике:

                                                  Стратегия CCI Sideways - Short на графике

                                                  На графике будут появляться сигналы согласно запрограммированной стратегии Sideways CCI Strategy - Short:

                                                  Боковая стратегия CCI - короткие сделки

                                                  Тейк-профит можно установить при CCI < -100 = take profit:

                                                  Sideways CCI - Short - TP

                                                  • Вторая стратегия: пересечение нуля
                                                    • Сигнал на покупку:

                                                  CCI > 0 = покупка
                                                  CCI > 100 = тейк-профит 

                                                  Следующие шаги нужно запрограммировать:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Условие настройки для значения CCI и пересечения нулевого уровня.

                                                  Этапы создания программы Zero crossover CCI Strategy - Buy:

                                                  //+------------------------------------------------------------------+
                                                  //|                            Zero crossover CCI Strategy - Buy.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                    
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //сигналы CCI
                                                     if(CCIValue > 0)
                                                     Comment ("Zero crossover CCI - BUY SIGNAL ");
                                                     
                                                     if(CCIValue > 100)
                                                     Comment ("Zero crossover CCI - TAKE PROFIT");
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  
                                                  

                                                  Находим в навигаторе Zero crossover CCI Strategy - Buy:

                                                  Стратегия Zero crossover buy CCI в навигаторе

                                                  Запускаем программу, дважды щелкнув или перетащив ее на график. Откроется следующее окно:

                                                  Окно стратегии Zero crossover по CCI - Buy


                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Zero crossover CCI Strategy запустится на графике:

                                                  Стратегия CCI с пересечением нуля на графике

                                                  На графике будут появляться сигналы согласно запрограммированной стратегии CCI с пересечением нуля, покупка:

                                                  Стратегия CCI с пересечением нуля - покупка

                                                  Сигнал на тейк-профит — когда  CCI > 100 = take profit, на рисунке ниже показан пример:

                                                  Стратегия CCI с пересечением нуля на графике - тейк-профит

                                                    • Короткий сигнал:

                                                  CCI < 0 = Buy
                                                  CCI < -100 = take profit 

                                                  Следующие шаги нужно запрограммировать:

                                                  1. Создание массива цен.
                                                  2. Сортировка ценового массива от текущих данных.
                                                  3. Определение свойств CCI.
                                                  4. Сортировка результатов.
                                                  5. Получение значения текущих данных.
                                                  6. Условие настройки для значения CCI и пересечения нулевого уровня.

                                                  Этапы создания программы Zero crossover CCI Strategy - Short:

                                                  //+------------------------------------------------------------------+
                                                  //|                          Zero crossover CCI Strategy - Short.mq5 |
                                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                                  //|                                             https://www.mql5.com |
                                                  //+------------------------------------------------------------------+
                                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                                  #property link      "https://www.mql5.com"
                                                  #property version   "1.00"
                                                  //+------------------------------------------------------------------+
                                                  void OnTick()
                                                    {
                                                     //Создаем массив цен
                                                     double ArrayOfPrices[];
                                                     
                                                     //Сортировка ценового массива от текущих данных
                                                     ArraySetAsSeries(ArrayOfPrices,true);
                                                     
                                                     //Определяем параметры CCI
                                                     int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
                                                     
                                                     //Сортируем результат
                                                     CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
                                                     
                                                     //Получаем значения текущих данных
                                                     double CCIValue = (ArrayOfPrices[0]);
                                                     
                                                     //сигналы CCI
                                                     if(CCIValue < 0)
                                                     Comment ("Zero crossover CCI - SHORT SIGNAL ");
                                                     
                                                     if(CCIValue < -100)
                                                     Comment ("Zero crossover CCI - TAKE PROFIT");
                                                    }
                                                  //+------------------------------------------------------------------+
                                                  
                                                  

                                                  Находим в навигаторе Zero crossover CCI Strategy - Short:

                                                  Стратегия Zero crossover short CCI в навигаторе

                                                  Открываем программу Zero crossover CCI Strategy - Short двойным кликом или перетаскиваем на график. Откроется следующее окно:

                                                  Окно стратегии Zero crossover по CCI - Short

                                                  Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа Zero crossover CCI Strategy - Short запустится на графике:

                                                  Стратегия CCI с пересечением нуля на графике

                                                  На графике будут появляться сигналы согласно запрограммированной стратегии CCI с пересечением нуля, короткая сделка:

                                                  Стратегия CCI с пересечением нуля - Short

                                                  Сигнал тейк-профита:  CCI < -100 = тейк-профит. Пример показан на рисунке ниже:

                                                  Стратегия CCI с пересечением нуля на графике - тейк-профит

                                                  Заключение

                                                  Индикатор CCI (Commodities Channel Index) - еще один инструмент для торговли, который может улучшить результаты тестирования. Конечно, все стратегии требуют тщательного тестирования и оптимизации. Данную статью можно считать введением в новый инструмент. Используйте эту информацию, чтобы понять, подходит ли данный индикатор для ваших торговых целей. 

                                                  Из этой статьи мы узнали, что такое индикатор CCI, что он означает, что измеряет и как его можно рассчитать. Также мы разобрали примеры расчета, которые должны помочь лучше понять самую суть индикатора и, возможно, найти новые торговые идеи.

                                                  Далее мы рассмотрели несколько простых стратегий с использованием индикатора CCI для разных рыночных условий (растущий тренд, падающий и боковой), а также стратегию по пересечению нуля. Как видите, есть множество разных стратегий на основе CCI. Изучите их, найдите самый подходящие для вашего стиля торговли — ведь теперь у вас есть для этого вся информация.

                                                  Также в этой статье мы построили схемы стратегий, которые незаменимы при написании торговой системы по CCI. На основе этих схем мы написали код на MQL5. В итоге мы получили программу, которую можно запустить в торговой платформе MetaTrader 5, где она автоматически формирует сигналы на графике.

                                                  Еще раз повторюсь: необходимо тестировать любую новую стратегию, прежде чем использовать ее на своем реальном счете. Надеюсь, эта статья поможет сделать вашу торговлю чуточку лучше, подскажет новые идеи. Желаю всем вам прибыльной торговли!










                                                  Перевод с английского произведен MetaQuotes Ltd.
                                                  Оригинальная статья: https://www.mql5.com/en/articles/10592

                                                  Биржевая сеточная торговля лимитными ордерами на полном автомате на Московской бирже MOEX Биржевая сеточная торговля лимитными ордерами на полном автомате на Московской бирже MOEX
                                                  Разработка торгового советника на языке торговых стратегий MQL5 для MetaTrader 5 Московской биржи MOEX. Советник будет торговать по сеточной стратегии на терминале MetaTrader 5 на рынках Московской биржи MOEX, которая также включает в себя закрытие позиции по стоп-лоссу или тейк-профиту, удаление отложенных ордеров при наступлении определенных рыночных условий.
                                                  Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов
                                                  Метамодели в машинном обучении: Автоматическое создание торговых систем практически без участия человека — Модель сама принимает решение как торговать и когда торговать.
                                                  DoEasy. Элементы управления (Часть 9): Реорганизация методов WinForms-объектов, элементы управления "RadioButton" и "Button" DoEasy. Элементы управления (Часть 9): Реорганизация методов WinForms-объектов, элементы управления "RadioButton" и "Button"
                                                  В статье наведём порядок в наименованиях методов классов WinForms-объектов и создадим WinForms-объекты Button и RadioButton.
                                                  Эксперименты с нейросетями (Часть 1): Вспоминая геометрию Эксперименты с нейросетями (Часть 1): Вспоминая геометрию
                                                  Нейросети наше все. Проверяем на практике, так ли это. Экспериментируем и используем нестандартные подходы. Пишем прибыльную торговую систему. Простое объяснение.