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

Mohamed Abdelmaaboud | 7 декабря, 2022

Введение

Представляю вашему вниманию новую статью из серии, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов. В этой части мы поговорим об индикаторе Alligator — узнаем, что он из себя представляет, что измеряет, как его рассчитать, как интерпретировать показатели и как его использовать. Затем мы создадим торговую систему на основе простых стратегий, чтобы посмотреть на работу индикатора в деле. Работу над индикатором снова разобьем на несколько тем:

  1. Определение индикатора Alligator
  2. Стратегии по индикатору Alligator
  3. Схемы стратегий по индикатору Alligator
  4. Торговые система по Alligator
  5. Заключение

Всем читателям я рекомендую самостоятельно повторять все, о чем мы здесь говорим, писать самим все коды — именно практика позволит развить навыки и лучше понять тему. В этой статье будем использовать MetaTrader 5 и встроенный редактор MetaEditor для написания кода на MQL5. Если вы не знаете, как загрузить или использовать MetaTrader 5 и MQL5, почитайте раздел "Как написать MQL5-код в редакторе MetaEditor" в одной из предыдущих статьей — там все подробно описано.

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

Определение индикатора Alligator

Alligator — трендовый технический индикатор, который разработал Билл Вильямс. Индикатор основан на идее о том, что тренд существует не на всем протяжении жизни финансового инструмента, а всего 15-30 % времени, а большую же часть времени, от 85% до 70%, цена инструмента движется в боковом направлении. Получается, что у нас иногда растущий тренд, иногда падающий, но в большинстве своем движение просто флэтовое. О трендах мы уж не раз говорили в предыдущих статья. Например, можете прочитать подробное описание тренда, типа, способы его определения из более ранней статьи — это будет особенно полезно в текущем контексте. Индикатор использует числа Фибоначчи в расчетах и представляет собой комбинацию из трех сглаженных скользящих средних SМMA с периодами 5, 8 и 13. Три сглаженных средних образуют собой составные части индикатора Alligator:

Линии индикатора рассчитываются по следующим формулам:

Челюсть аллигатора = SMMA (средняя цена, 13, 8)

Зубы аллигатора = SMA (средняя цена, 8, 5)

Губы аллигатора = SMMA (средняя цена, 5, 3)

Средняя цена = (максимум + минимум)/2

где:

SMMA — сглаженная скользящая средняя

Median price — медианная цена инструмента

High — цена максимума

Low — цена минимума

Это был расчет линий индикатора. Однако фактически нам не нужно рассчитывать индикатор вручную, поскольку уже есть готовый к использованию индикатор в торговом терминале MetaTrader 5, и все, что нужно сделать, это выбрать его из списка.

Открываем терминал MetaTrader 5, выбираем меню "Вставка" --> Индикаторы --> Bill Williams --> Alligator.

 Запуск встроенного индикатора Alligator на графике

После этого откроется окно с параметрами индикатора:

 Параметры стандартного индикатора Alligator

1 - период для расчета линии челюсти

2 - смещение челюстей по горизонтали

3 - период расчета линии зубов Аллигатора

4 - смещение зубов по горизонтали

5 - период для расчета линии губ

6 - смещение губ Аллигатора по горизонтали

7 - метод сглаживания

8 - цена, используемая для расчетов.

В следующем окне можно настроить стиль индикатора:

 Окно с параметрами индикатора Alligator

1 - цвет линии челюстей

2 - тип линии челюстей

3 - толщина линии челюстей

4 - цвет линии зубов

5 - тип линии зубов

6 - толщина линии зубов

7 - цвет линии губ

8 - тип линии губ

9 - толщина линии губ

Выбираем подходящие параметры индикатора, нажимаем кнопку OK, и индикатор запустится на графике, как показано ниже:

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

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

1 - линия губ Аллигатора

2 - линия зубов Аллигатора

3 - линия челюсти Аллигатора

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

Стратегии по индикатору Alligator

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

Стратегия первая: идентификатор тренда Alligator

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

Губы > Зубы, Губы > Челюсти и Зубы > Челюстей --> Бычий сигнал

Губы < Зубы, Губы < Челюсти и Зубы < Челюстей --> Медвежий сигнал

Стратегия вторая: сигнальная система Аллигатора

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

Губы > Зубы, Губы > Челюсти --> Покупка

Губы < Зубы, Губы < Челюсти --> Продажа

Стратегия третья: продвинутая сигнальная система Аллигатора

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

Губы < Зубы, Губы < Челюсти и Цена закрытия > Зубы --> Покупка

Губы > Зубы, Губы > Челюсти и Цена закрытия < Зубы --> Продажа

Схемы стратегий по индикатору Alligator

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

Стратегия первая: идентификатор тренда Alligator

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

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

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

Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:

Схема стратегии Alligator Trend Identifier

Стратегия вторая: сигнальная система Аллигатора

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

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

В противоположном случае, если линия губ ниже линии зубов, а линия губ ниже челюстей, торговая система должна возвращать сигнал на продажу в виде комментария на графике, а также значения индикатора:

Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:

Схема стратегии Alligator signals

Стратегия третья: продвинутая сигнальная система Аллигатора

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

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

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

Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:

Схема стратегии Alligator Signals System Enhancement

Торговые система по Alligator

В этой части создадим торговые системы по каждой из рассмотренных стратегий. Системы будут запускаться в MetaTrader 5 и автоматически генерировать сигналы. Для начала напишем базовую торговую систему для генерации сигнала со значениями компонентов Аллигатора. Рассмотрим по шагам, как написать код такой стратегии:

Создаем массивы для каждого из компонентов Аллигатора (Губы, Зубы, Челюсти).

   double jawsArray[];
   double teethArray[];
   double lipsArray[]; 

Устанавливаем сортировку данных в массивах с помощью функции ArraySetAsSeries. Параметры функции:

   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);

Определяем Alligator с помощью функции iAlligator. Параметры функции:

int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);

Определяем данные и сохранение результатов с помощью функции CopyBuffer Параметры функции:

   CopyBuffer(alligatorDef,0,0,3,jawsArray);
   CopyBuffer(alligatorDef,1,0,3,teethArray);
   CopyBuffer(alligatorDef,2,0,3,lipsArray);

Получаем значения трех компонентов.

   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);

Выводим комментарий с полученными значениями компонентов индикатора.

   Comment("jawsValue = ",jawsValue,"\n",
   "teethValue = ",teethValue,"\n",
   "lipsValue = ",lipsValue);

Полный код такой торговой системы выглядит так:

//+------------------------------------------------------------------+
//|                                      Simple Alligator 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 jawsArray[];
   double teethArray[];
   double lipsArray[];   
   //Сортировка данных
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
   //определяем Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);      
   // определяем данные и сохраняем результат
   CopyBuffer(alligatorDef,0,0,3,jawsArray);
   CopyBuffer(alligatorDef,1,0,3,teethArray);
   CopyBuffer(alligatorDef,2,0,3,lipsArray);
   //Получаем значения текущих данных
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
   //вывод комментария на графике
   Comment("jawsValue = ",jawsValue,"\n",
   "teethValue = ",teethValue,"\n",
   "lipsValue = ",lipsValue);
  }
//+------------------------------------------------------------------+

После этого компилируем код советника, и он появляется в окне Навигатора в терминале MetaTrader 5:

Советник Simple Alligator System в навигаторе

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

Окно советника Simple Alligator System

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

Советник Simple Alligator System на графике

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

 Сигнал советника Simple Alligator System

На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:

Значение Jaws = n

Значение Teeth = n

Значение Lips = n

Стратегия первая: идентификатор тренда Alligator

Создадим торговую систему на основе этой стратегии. Полный код такой системы показан ниже:

//+------------------------------------------------------------------+
//|                                   Alligator Trend Identifier.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()
  {
//создаем три массива для компонентов Alligator
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
//Сортировка данных
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
//определяем Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
// определяем данные и сохраняем результат
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//Получаем значения текущих данных
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//условия стратегии
   if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue)
     {
      Comment("Bullish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue)
     {
      Comment("Bearish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Отличия в этом коде.

Условия стратегии для генерации бычьего сигнала:

   if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue)
     {
      Comment("Bullish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

В случае медвежьего сигнала:

   if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue)
     {
      Comment("Bearish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

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

Советника Alligator Trend Identifier на графике

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

Пример бычьего сигнала:

Alligator Trend Identifier - бычий сигнал

На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:

Три линии расположены ниже цены, так что сформировался бычий сигнал.

В случае медвежьего сигнала:

 Alligator Trend Identifier - медвежий сигнал

На графике выше в левом верхнем углу графика отобразился комментарий с медвежьим сигналом и следующими значениями:

Три линии расположены выше цены, так что сформировался медвежий сигнал.

Стратегия вторая: сигнальная система Аллигатора

Полный код торговой системы, работающей по этой стратегии, выглядит так:

//+------------------------------------------------------------------+
//|                                    Alligator Signals 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()
  {
//создаем три массива для компонентов Alligator
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
//Сортировка данных
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
//определяем Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
// определяем данные и сохраняем результат
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//Получаем значения текущих данных
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//условия стратегии
   if(lipsValue>teethValue && lipsValue>jawsValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue<teethValue && lipsValue<jawsValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Отличия в этом коде.

Условия этой стратегии.

В случае сигнала на покупку:

   if(lipsValue>teethValue && lipsValue>jawsValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

В случае сигнала на продажу:

   if(lipsValue<teethValue && lipsValue<jawsValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

Компилируем код, находим получившийся файл советника в Навигаторе в терминале и запускаем советник на графике торгового символа:

Советник Alligator Signals System на графике

В правом верхнем углу на графике выше есть индикация того, что советник работает. Советник запущен и может генерировать сигнал на покупку и продажу. Тестовые примеры показаны ниже.

В случае сигнала на покупку:

Советник Alligator Signals System - сигнал на покупку

 

Как мы видим, сформировался нужный сигнал со следующими значениями:

Три линии расположены ниже цены, так что сформировался сигнал на покупку.

В случае сигнала на продажу:

 Советник Alligator Signals System - сигнал на продажу

У нас есть сигнал со следующими значениями:

Три линии расположены выше цены, так что сформировался сигнал на продажу.

Стратегия третья: продвинутая сигнальная система Аллигатора

Полный код торговой системы, работающей по этой стратегии, выглядит так:

//+------------------------------------------------------------------+
//|                         Alligator Signals System Enhancement.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()
  {
//создаем три массива для компонентов Alligator
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
   MqlRates pArray[];
//Сортировка данных
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
   int Data=CopyRates(_Symbol,_Period,0,1,pArray);
//определяем Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
// определяем данные и сохраняем результат
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//Получаем значения текущих данных
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//условия стратегии
   if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Отличия в этом коде.

Создаем дополнительный массив для цен с помощью функции MqlRates, которая хранит информацию о ценах, объемах и спреде.

MqlRates pArray[];

Получаем исторические данные MqlRates с помощью функции CopyRates. Параметры функции:

int Data=CopyRates(_Symbol,_Period,0,1,pArray);

Условия стратегии.

В случае сигнала на покупку:

   if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }

В случае сигнала на продажу:

   if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }

После компиляции кода и запуска программы советник начнет работать на графике. Он будет генерировать сигналы на покупку и продажу:

 Советник Alligator Signals System Enhancement на графике

Значок в правом верхнем углу графика показывает, что индикатор запущен и может генерировать сигналы. Примеры таких сигналов показаны ниже.

В случае сигнала на покупку:

 Советник Alligator Signals System Enhancement - сигнал на покупку

На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:

Поскольку три линии расположены выше цен, а цена закрытия оказалась выше линии зубов Аллигатора.

В случае сигнала на продажу:

 Советник Alligator Signals System Enhancement - сигнал на продажу

На графике выше в левом верхнем углу графика есть комментарий:

Здесь три линии расположены ниже цен, а цена закрытия оказалась ниже линии зубов Аллигатора.

Заключение

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

Мы разработали пошаговые схемы для каждой рассмотренной стратегии, которые помогают при написании кода торговых систем. Также мы написали советники на MQL5 по каждой стратегии, получили программы, которые могут работать в торговой платформе MetaTrader 5, увидели примеры сгенерированных сигналов по этим стратегиям. Еще раз повторюсь, что очень важно тщательно тестировать все новые знания, прежде чем применять из на реальном счете, чтобы убедиться, что это подходит вашему стилю и пониманию торговли. Ведь то, что подходит другим, не обязательно окажется подходящим для вас. Кроме того, не забывайте, что основная цель стратегий - образовательная.

Я надеюсь, вы самостоятельно писали свой код и повторяли все, о чем мы говорили в этой статье. Такой подход позволяет эффективнее развивать навыки программирования, а кроме того, может подсказать новые идеи. Если вам понравилась эта статья, если вы считаете ее полезной, почитайте мои предыдущие статьи из этой же серии, в которой мы учимся разрабатывать торговые системы на основе популярных технических индикаторов. Мы ранее изучали индикаторы Stochastic, RSI, Bollinger Bands, Moving Averages, Envelopes, MACD, ADX и другие.