
Разработка торговой системы на основе индикатора Alligator
Введение
Представляю вашему вниманию новую статью из серии, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов. В этой части мы поговорим об индикаторе Alligator — узнаем, что он из себя представляет, что измеряет, как его рассчитать, как интерпретировать показатели и как его использовать. Затем мы создадим торговую систему на основе простых стратегий, чтобы посмотреть на работу индикатора в деле. Работу над индикатором снова разобьем на несколько тем:
- Определение индикатора Alligator
- Стратегии по индикатору Alligator
- Схемы стратегий по индикатору Alligator
- Торговые система по Alligator
- Заключение
Всем читателям я рекомендую самостоятельно повторять все, о чем мы здесь говорим, писать самим все коды — именно практика позволит развить навыки и лучше понять тему. В этой статье будем использовать 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.
После этого откроется окно с параметрами индикатора:
1 - период для расчета линии челюсти
2 - смещение челюстей по горизонтали
3 - период расчета линии зубов Аллигатора
4 - смещение зубов по горизонтали
5 - период для расчета линии губ
6 - смещение губ Аллигатора по горизонтали
7 - метод сглаживания
8 - цена, используемая для расчетов.
В следующем окне можно настроить стиль индикатора:
1 - цвет линии челюстей
2 - тип линии челюстей
3 - толщина линии челюстей
4 - цвет линии зубов
5 - тип линии зубов
6 - толщина линии зубов
7 - цвет линии губ
8 - тип линии губ
9 - толщина линии губ
Выбираем подходящие параметры индикатора, нажимаем кнопку OK, и индикатор запустится на графике, как показано ниже:
На скриншоте выше видно, что индикатор запустился, а на графике отображаются три линии:
1 - линия губ Аллигатора
2 - линия зубов Аллигатора
3 - линия челюсти Аллигатора
Показатели индикатора можно читать, анализирую положение линий относительно цены. Если цена выше линий губ, зубов и челюстей Аллигатора, то можно говорить о восходящем тренде. Если цена находится ниже этих линий, можно сказать, что тренд нисходящий. Если же цена движется между этими тремя линиями, то можно сказать, что перед нами боковой тренд.
Стратегии по индикатору Alligator
Существует много различных способов использования индикатора Аллигатор в торговле. В статье мы рассмотрим несколько простых стратегий, просто чтобы посмотреть, как можно использовать индикатор. Основная цель — изучение индикатора, поэтому стратегии не предназначены для использования на реальном счете без должного тестирования. Кроме того, может понадобиться оптимизация таких стратегий, которая позволит найти наиболее подходящий для вас вариант использования.
Эта стратегия будет генерировать сигналы о бычьем или медвежьем тренде на основе определенных заложенных условий. Если значение губ выше двух значений — значения зубов и челюстей, и при этом значение зубов выше челюстей, это будет бычий сигнал. И наоборот, если значение губ ниже двух значений — значения зубов и челюстей, и при этом значение зубов ниже челюстей, это будет медвежий сигнал.
Губы > Зубы, Губы > Челюсти и Зубы > Челюстей --> Бычий сигнал
Губы < Зубы, Губы < Челюсти и Зубы < Челюстей --> Медвежий сигнал
В рамках этой стратегии мы будем получать сигналы на покупку и продажу на основе пересечения линий губ, зубов и челюстей. Если значение губ выше значения зубов и челюстей, это будет сигналом на покупку. В противном случае, если значение губ ниже значения зубов и челюстей, это будет сигналом на продажу.
Губы > Зубы, Губы > Челюсти --> Покупка
Губы < Зубы, Губы < Челюсти --> Продажа
В рамках этой стратегии мы будем получать сигналы на покупку и продажу на основе пересечения линий губ, зубов и челюстей, а также пересечения цены закрытия и значения зубов. Если линия губ ниже зубов и челюстей, а цена закрытия выше линии зубов, это будет сигналом на покупку. В противном случае, если линия губ выше зубов и челюстей, а цена закрытия ниже линии зубов, это будет сигналом на продажу.
Губы < Зубы, Губы < Челюсти и Цена закрытия > Зубы --> Покупка
Губы > Зубы, Губы > Челюсти и Цена закрытия < Зубы --> Продажа
Схемы стратегий по индикатору Alligator
На основе этих стратегий можно написать торговые системы, но перед этим мы создадим пошаговые схемы, которые будут очень полезны при разработке этих стратегий.
По этой стратегии мы создадим торговую систему, которую можно использовать для генерации сигналов бычьего или медвежьего тренда. Для этого система будет проверять следующие значения.
- Значение Jaws
- Значение Teeth
- Значение Lips
Торговая система будет определять положение этих линий относительно друг друга и генерировать соответствующий сигнал. Если линия губ выше линии зубов, губы выше челюстей, и линия зубов выше челюстей, торговая система должна возвращать сигнал в виде комментария на графике, а также значения индикатора:
- Бычий сигнал
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
В противоположном случае, если линия губ ниже линии зубов, губы ниже челюстей, и при этом линия зубов ниже челюстей, торговая система должна возвращать медвежий сигнал в виде комментария на графике, а также значения индикатора:
- Медвежий сигнал
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:
По этой стратегии мы создадим торговую систему, которую можно использовать для генерации сигналов на покупку или продажу. Для этого система будет постоянно проверять следующие значения и определять их положение относительно друг друга.
- Значение губ
- Значение зубов
- Значение челюстей
Если линия губ выше линии зубов, а линия губ выше челюстей, торговая система должна возвращать сигнал на покупку в виде комментария на графике, а также значения индикатора:
- Покупка
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
В противоположном случае, если линия губ ниже линии зубов, а линия губ ниже челюстей, торговая система должна возвращать сигнал на продажу в виде комментария на графике, а также значения индикатора:
- Продажа
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:
По этой стратегии мы создадим торговую систему, которую можно использовать для генерации сигналов на покупку или продажу. Для этого система будет постоянно проверять следующие значения и определять их положение относительно друг друга.
- Значение губ
- Значение зубов
- Значение челюстей
- Цена закрытия
Если линия губ ниже линии зубов, линия губ ниже челюстей, а цена закрытия поднимается выше линии зубов, торговая система должна возвращать сигнал в виде комментария на графике, а также значения индикатора:
- Покупка
- Значение Lips = n
- Значение Teeth = n
- Цена закрытия: n
- Значение Jaws = n
Если линия губ выше линии зубов, линия губ выше челюстей, а цена закрытия опускается ниже линии зубов, торговая система должна возвращать сигнал на продажу в виде комментария на графике, а также значения индикатора:
- Продажа
- Значение Lips = n
- Значение Teeth = n
- Цена закрытия: n
- Значение Jaws = n
Вот такая пошаговая схема поможет разработать торговую систему по этой стратегии:
Торговые система по Alligator
В этой части создадим торговые системы по каждой из рассмотренных стратегий. Системы будут запускаться в MetaTrader 5 и автоматически генерировать сигналы. Для начала напишем базовую торговую систему для генерации сигнала со значениями компонентов Аллигатора. Рассмотрим по шагам, как написать код такой стратегии:
Создаем массивы для каждого из компонентов Аллигатора (Губы, Зубы, Челюсти).
double jawsArray[]; double teethArray[]; double lipsArray[];
Устанавливаем сортировку данных в массивах с помощью функции ArraySetAsSeries. Параметры функции:
- array[]
- flag
ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true);
Определяем Alligator с помощью функции iAlligator. Параметры функции:
- symbol — имя символа; у нас это "_Symbol", то есть рассчитываем индикатор по символу текущего графика.
- period — таймфрейм для расчета; значение "_Period" означает, что индикатор будет рассчитываться на текущем таймфрейме.
- jaw_period — период усреднения для расчета линии челюсти, мы используем 13.
- jaw_shift — установим горизонтальный сдвиг для линии челюсти, у нас это 8.
- teeth_period — период усреднения для расчета линии зубов, мы используем 8.
- teeth_shift — установим горизонтальный сдвиг для линии зубов, 5.
- lips_period — период усреднения для расчета линии губ, мы используем 5.
- lips_shift — установим горизонтальный сдвиг для линии губ, у нас это 3.
- ma_method — тип сглаживания скользящей средней, MODE_SMA.
- applied_price — определяет тип цены, используемой для расчета; используем среднюю цену
int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
Определяем данные и сохранение результатов с помощью функции CopyBuffer Параметры функции:
- indicator_handle — хендл индикатора, alligatorDef
- buffer_num — номер индикаторного буфера, 0 - челюсти, 1 - зубы, 2 - губы.
- start_pos — установим позицию начала расчета, укажем 0
- count — количество данных для копирования, укажем 3
- buffer[] — определяем ценовой массив для копирования, у нас это jawsArray, teethArray, lipsArray
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:
Запускаем двойным кликом на файле или перетаскиваем на график. После этого появится окно советника:
Разрешаем автоматическую торговлю "Allow Algo Trading", нажимаем ОК, и программа запустится на графике, как показано ниже:
В правом верхнем углу графика отображается индикация того, что советник запущен. Теперь мы готовы принимать сигналы, генерируемый советником. Пример такого сигнала, полученный при тестировании, показан ниже:
На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:
Значение Jaws = n
Значение Teeth = n
Значение Lips = n
Создадим торговую систему на основе этой стратегии. Полный код такой системы показан ниже:
//+------------------------------------------------------------------+ //| 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); }
Компилируем код, находим итоговый файл в Навигаторе в терминале и запускаем советник на графике торгового символа:
Как мы видим на графике выше, у нас есть советник, запущенный на графике — показана индикация в правом верхнем углу. Теперь мы можем получать бычьи или медвежьи сигналы на основе этой стратегии. Ниже приведены примеры таких сигналов.
Пример бычьего сигнала:
На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:
- Бычий сигнал
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
В случае медвежьего сигнала:
На графике выше в левом верхнем углу графика отобразился комментарий с медвежьим сигналом и следующими значениями:
- Медвежий сигнал
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
Три линии расположены выше цены, так что сформировался медвежий сигнал.
Полный код торговой системы, работающей по этой стратегии, выглядит так:
//+------------------------------------------------------------------+ //| 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); }
Компилируем код, находим получившийся файл советника в Навигаторе в терминале и запускаем советник на графике торгового символа:
В правом верхнем углу на графике выше есть индикация того, что советник работает. Советник запущен и может генерировать сигнал на покупку и продажу. Тестовые примеры показаны ниже.
В случае сигнала на покупку:
Как мы видим, сформировался нужный сигнал со следующими значениями:
- Покупка
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
В случае сигнала на продажу:
У нас есть сигнал со следующими значениями:
- Продажа
- Значение Jaws = n
- Значение Teeth = n
- Значение Lips = n
Три линии расположены выше цены, так что сформировался сигнал на продажу.
Полный код торговой системы, работающей по этой стратегии, выглядит так:
//+------------------------------------------------------------------+ //| 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. Параметры функции:
- symbol — имя символа, _Symbol
- timeframe — таймфрейм для расчета (_period)
- start_pos — установим позицию начала расчета, укажем 0
- count — количество данных для копирования, укажем 1
- rates_array[] — массив, в который копируем данные, pArray
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); }
После компиляции кода и запуска программы советник начнет работать на графике. Он будет генерировать сигналы на покупку и продажу:
Значок в правом верхнем углу графика показывает, что индикатор запущен и может генерировать сигналы. Примеры таких сигналов показаны ниже.
В случае сигнала на покупку:
На графике выше в левом верхнем углу графика отобразился комментарий со следующими значениями:
- Покупка
- Значение Jaws = n
- Значение Teeth = n
- Цена закрытия: n
- Значение Lips = n
В случае сигнала на продажу:
На графике выше в левом верхнем углу графика есть комментарий:
- Продажа
- Значение Jaws = n
- Значение Teeth = n
- Цена закрытия: n
- Значение Lips = n
Здесь три линии расположены ниже цен, а цена закрытия оказалась ниже линии зубов Аллигатора.
Заключение
В этой статье мы рассмотрели технический индикатор Аллигатор, который можно использовать для подтверждения тренда. Мы узнали, как его можно рассчитать его вручную. Также на примере простых стратегий посмотрели варианты использования этого индикатора. Стратегии были такими:
- Идентификатор тренда по Аллигатору — для генерации бычьих или медвежьих сигналов на основе положения трех линий Аллигатора.
- Сигнальная система Alligator — генерация сигналов на покупку и продажу на основе пересечения трех линий индикатора.
- Продвинутая сигнальная система Alligator — генерация сигналов на покупку и продажу на основе пересечения трех линий индикатора, а также положения цены закрытия относительно индикатора.
Мы разработали пошаговые схемы для каждой рассмотренной стратегии, которые помогают при написании кода торговых систем. Также мы написали советники на MQL5 по каждой стратегии, получили программы, которые могут работать в торговой платформе MetaTrader 5, увидели примеры сгенерированных сигналов по этим стратегиям. Еще раз повторюсь, что очень важно тщательно тестировать все новые знания, прежде чем применять из на реальном счете, чтобы убедиться, что это подходит вашему стилю и пониманию торговли. Ведь то, что подходит другим, не обязательно окажется подходящим для вас. Кроме того, не забывайте, что основная цель стратегий - образовательная.
Я надеюсь, вы самостоятельно писали свой код и повторяли все, о чем мы говорили в этой статье. Такой подход позволяет эффективнее развивать навыки программирования, а кроме того, может подсказать новые идеи. Если вам понравилась эта статья, если вы считаете ее полезной, почитайте мои предыдущие статьи из этой же серии, в которой мы учимся разрабатывать торговые системы на основе популярных технических индикаторов. Мы ранее изучали индикаторы Stochastic, RSI, Bollinger Bands, Moving Averages, Envelopes, MACD, ADX и другие.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/11549





- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования