
Разработка торговой системы на основе индикатора VIDYA
Введение
Представляю вашему вниманию новую статью из серии для начинающих, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов и простых стратегий. Сегодня мы поговорим об индикаторе Скользящей средней с динамическим периодом усреднения (Variable Index Dynamic Average, VIDYA). Это трендовый индикатор, то есть его показатели следуют за трендом. В связи с этим индикатор запаздывающий, то есть его движение происходит после движения самой цены. Работу над индикатором снова разобьем на несколько тем:
- Определение индикатора VIDYA
- Стратегии по индикатору VIDYA
- Схема стратегий по VIDYA
- Торговые системы по VIDYA
- Заключение
Чтобы развивать и совершенствовать навыки программирования, нужно применить полученные знания на практике — это позволит лучше понять то, о чем мы говорим. В целом практика является важным фактором любого процесса обучения. В наших статьях мы используем язык программирования MQL5 (MetaQuotes Language 5), встроенный в терминал MetaTrader 5, а также редактор MetaEditor для написания кода. Если не знаете, как установить MetaTrader 5 или использовать MetaEditor, рекомендую почитать раздел "Как написать MQL5-код в редакторе MetaEditor" в моей более ранней статье.
Внимание! Все содержание настоящей статьи предоставляется "как есть", предназначено только для целей обучения и не является торговой рекомендацией. Статья не несет в себе каких-либо гарантий результатов. Все, что вы применяете на практике на основе этой статьи, вы делаете исключительно на свой страх и риск, автор не гарантирует никаких результатов.
Определение индикатора VIDYA
VIDYA — трендовый индикатор, разработанный Тушаром Чанде. Он похож на экспоненциальную скользящую среднюю, а отличие в том, что индикатор будет динамически корректироваться на основе относительной волатильности цен. Для измерения волатильности в индикаторе используется осциллятор Chande Momentum Oscillator (CMO), который измеряет соотношение между суммой положительных и отрицательных движений. Это будет проще понять, когда мы попробуем рассчитать индикатор вручную. CMO используется для сглаживания экспоненциальной скользящей средней. Отсюда имеем такие параметры индикатора: период осциллятора CMO и период усреднения EMA. Индикатор можно использовать так же, как любую скользящую среднюю, для определения тип тренда: восходящий он или нисходящий. О трендах мы уж не раз говорили в предыдущих статья. Например, можете прочитать подробное описание тренда из статьи по ссылке. Также индикатор можно использовать для генерации сигналов на покупку или продажу. Подробнее рассмотрим варианты простых торговых стратегий по индикатору VIDYA в отдельном разделе.
Теперь давайте посмотрим, как рассчитать индикатор VIDYA вручную — это позволит понять концепцию индикатора или эффективнее его использовать. Для расчета индикатора нужно рассчитать его составляющие.
- Считаем EMA:
EMA(i) = Price(i) * F + EMA(i-1)*(1-F)
где:
EMA(i) = текущая экспоненциальная средняя
Price(i) = текущая цена
F (фактор сглаживания) = 2/(EMA периода+1)
EMA(i-1) = предыдущее значение EMA
- Находим значение индикатора VIDYA:
VIDYA(i) = Price(i) * F * ABS(CMO(i)) + VIDYA(i-1) * (1 - F* ABS(CMO(i)))
где:
VIDYA(i) = текущее значение индикатора VIDYA
ABS(CMO(i)) = абсолютное текущее значение осциллятора Chande Momentum Oscillator
VIDYA(i-1) = предыдущее значение индикатора VIDYA
- Находим осциллятор импульса Чанде CMO:
CMO(i) = (UpSum(i) - DnSum(i))/(UpSum(i) + DnSum(i))
где:
UpSum(i) = текущее значение суммы положительных движений за период
DnSum(i) = текущее значение суммы отрицательных движений за период
После этого получаем показатели индикатора VIDYA. Но по факту рассчитывать индикатор вручную не нужно, ведь есть готовый индикатор, который идет в стандартной поставке платформы MetaTrader 5. Его можно выбрать из списка доступных индикаторов и сразу запустить на графике.
Вставка --> Индикаторы --> Трендовы --> Variable Index Dynamic Average
Откроется окно с параметрами индикатора:
1 - период осциллятора импульса Чанде CMO
2 - период экспоненциальной скользящей средней EMA
3 - тип цены
4 - цвет линии индикатора VIDYA
5 - стиль линии индикатора VIDYA
6 - толщина линии индикатора VIDYA
Выбираем подходящие параметры индикатора, нажимаем кнопку OK, и индикатор запустится на графике, как показано ниже:
Как видно на примере, индикатор запускается прямо в окне графика и отображается в виде линии выше или ниже цены. Когда линия VIDYA находится над ценой, это означает наличие медвежьего контроля и наоборот, когда линия VIDYA ниже цены, это означает преобладание силы быков на рынке.
Стратегии по индикатору VIDYA
В этой части на примере простых стратегий мы узнаем, как можно использовать индикатор VIDYA в соответствии с его концепцией. Индикатор лучше комбинировать с другими техническими инструментами или индикаторами, чтобы генерировать более надежные и эффективные сигналы. Так вы получите больше информации, оцените ситуацию с разных сторон. В этом и заключается одна из замечательных особенностей технического анализа.
Стратегия будет сообщать тип тренда — растущий или падающий — сравнивая текущее закрытия и текущее значение VIDYA с настройками по умолчанию (9,12). Сигнал о восходящем тренде будет сформирован, если текущее закрытие выше значения VIDYA. И наоборот, если текущее закрытие ниже VIDYA, будет сформирован сигнал о нисходящем тренде.
Текущее закрытие > VIDYA --> восходящий тренд
Текущее закрытие < VIDYA --> нисходящий тренд
Согласно этой стратегии, мы будем получать сигналы на покупку или продажу на основе анализа индикатора, как в предыдущей стратегии. Будет сформирован сигнал на покупку, если текущее закрытие выше значения VIDYA. И наоборот, если цена закрытия ниже значения VIDYA, будет сформирован сигнал на продажу.
Текущее закрытие > VIDYA --> сигнал на покупку
Текущее закрытие < VIDYA --> Сигнал на продажу
Сигналы на покупку или продажу будут генерироваться на основе анализа двух индикаторов VIDYA: с настройками (9, 12) и с настройками (20, 50). Сигнал на покупку будем получать, когда VIDYA (9, 12) поднимается выше VIDYA (20, 50). И наоборот, когда значение индикатора VIDYA с параметрами (9, 12) опускается ниже индикатора с параметрами (20, 50), это сигнал на продажу.
VIDYA (9, 12) > VIDYA (20, 50) --> сигнал на покупку
VIDYA (9, 12) < VIDYA (20, 50) --> сигнал на продажу
Эти три простые стратегии показывают варианты использования индикатора VIDYA.
Схема стратегий по VIDYA
В этой части разработаем пошаговый план для создания торговых систем на основе каждой из рассмотренных стратегий.
Система, основанная на этой стратегии, должна формировать и выводить сигналы с типом текущего тренда. Для этого нужно будет проверять два значения: текущее закрытие свечи и текущее значение индикатора VIDYA, на основе этого определять тренд. Если текущее закрытие выше значения VIDYA, это сигнал восходящего тренда.
В таком случае, система будет выводить на график комментарий со следующими значениями:
- Восходящий тренд
- Текущее значение цены закрытия
- Текущее значение VIDYA
В противном случае, если текущее закрытие ниже значения VIDYA, это будет сигнал нисходящего тренда.
В таком случае, система будет выводить на график комментарий со следующими значениями:
- Нисходящий тренд
- Текущее значение цены закрытия
- Текущее значение VIDYA
На следующем рисунке показана схема этой стратегии:
Система, основанная на этой стратегии, будет формировать и выводить сигналы на покупку или продажу. Анализируются те же значения, что и при определении тренда, только сигналы в этот раз будут другиеу. Для этого нужно снова проверяем те же два значения: текущее закрытие свечи и текущее значение индикатора VIDYA. Если текущее закрытие выше значения VIDYA, это будет сигналом на покупку.
В таком случае, система будет выводить на график такой комментарий:
- Сигнал на покупку
- Текущее значение цены закрытия
- Текущее значение VIDYA
Если же текущее закрытие ниже VIDYA, это сигнал на продажу.
В таком случае, система будет выводить на график комментарий со следующими значениями:
- Сигнал на продажу
- Текущее значение цены закрытия
- Текущее значение VIDYA
Торговая система по этой стратегии будет формировать и выводить на график сигналы на покупку и продажу. Для этого нужно постоянно анализировать значения двух VIDYA с разными параметрами: VIDYA (9, 12) и VIDYA (20, 50). Если текущее значение VIDYA с параметрами (9, 12) больше текущего значения индикатора с параметрами (20, 50), это будет сигналом на покупку.
В таком случае, система будет выводить на график такой комментарий:
- Сигнал на покупку
- Текущее значение цены закрытия
- Текущее значение VIDYA (9, 12)
- Текущее значение VIDYA (20, 50)
Если наоборот, VIDYA с параметрами (9, 12) ниже VIDYA (20, 50), это сигнал на продажу.
В таком случае, система будет выводить на график такой комментарий:
- Сигнал на продажу
- Текущее значение цены закрытия
- Текущее значение VIDYA (9, 12)
- Текущее значение VIDYA (20, 50)
На следующем рисунке показана схема этой стратегии:
Итак, мы составили пошаговые схемы разработки для каждой стратегии, которые помогут разработать соответствующие торговые системы. Теперь можем перейти к самой интересной части — к разработке.
Торговые системы по VIDYA
По этой стратегии система будет просто показывать текущее значение VIDYA в виде комментария на графике.
Ниже показаны шаги, за которые создается эта торговая система.
Создаем массив vidyaArray, используя double-функцию. Double — это один вещественный тип, число с плавающей запятой, то есть значение с дробной частью.
double vidyaArray[];
Сортируем созданный массив vidyaArray с помощью функции ArraySetAsSeries, которая возвращает логическое значение.
ArraySetAsSeries(vidyaArray,true);
Создаем переменную integer vidyaDef, будет получать значения индикатора VIDYA. Используем функцию iVIDyA, которая возвращает хендл индикатора.
Параметры:
- symbol — имя символа; у нас это _Symbol, то есть рассчитываем индикатор по символу текущего графика
- period — таймфрейм для расчета; значение _Period означает, что индикатор будет рассчитываться на текущем таймфрейме
- cmo_period — период расчета индикатора Chande Momentum, у нас это 9
- ema_period — период сглаживания экспоненциальной скользящей средней, мы используем 12
- ma_shift — при необходимости можно задать горизонтальный сдвиг, установим в значение 0
- applied_price — определяет тип цены, используемой для расчета; используем цену закрытия
int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
Заполним созданный массив с помощью функции CopyBuffer для получения данных индикатора VIDYA.
Параметры этой функции:
- indicator_handle — хендл индикатора, vidyaDef
- buffer_num — номер индикаторного буфера, установим 0
- start_pos — установим позицию начала расчета, укажем 0
- count — количество данных для копирования, укажем 3.
- buffer[] — определяем ценовой массив для копирования, у нас это vidyaArray.
CopyBuffer(vidyaDef,0,0,3,vidyaArray);
Получаем vidyaVal, для чего создали переменную с помощью функции NormalizeDouble, которая возвращает значение типа double.
Параметры этой функции:
- value — используем нормализованное значение vidyaArray[0]
- digits — количество цифр после запятой, 6.
double vidyaVal = NormalizeDouble(vidyaArray[0],6);
Используем функцию Comment для создания комментария к графику с текущим значением индикатора VIDYA:
Comment("VIDYA Value is ",vidyaVal);
Полный код программы, который у нас получился, выглядит так:
//+------------------------------------------------------------------+ //| Simple VIDYA.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 vidyaArray[]; ArraySetAsSeries(vidyaArray,true); int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE); CopyBuffer(vidyaDef,0,0,3,vidyaArray); double vidyaVal = NormalizeDouble(vidyaArray[0],6); Comment("VIDYA Value is ",vidyaVal); } //+------------------------------------------------------------------+
После компиляции программа советника появится в окне Навигатора в MetaTrader 5:
Запускаем двойным кликом на файле или перетаскиваем на график. После этого снова появится окно советника.
Нажимаем OK, и программа (советник) запустится на графике, как показано на рисунке ниже:
О том, что советник запустился и работает на графике, свидетельствует индикация в правом верхнем углу графика. Далее показан комментарий, сформированный нашей торговой системой:
Снова видно, что в левом верхнем углу графика отобразился комментарий с текущем значением VIDYA. Если хотите убедиться, что советник будет генерировать точно такое же значение, что и стандартный индикатор VIDYA из поставки MetaTrader 5, можно одновременно запустить индикатор и советник с одинаковыми настройками.
На графике запущен советник — об этом свидетельствует индикация в верхнем правом углу. Также на графике в верхнем левом углу показано текущее значение от этого советника. Кроме того, к графику прикреплен встроенный индикатор VIDYA, его значение отображается справа в окне данных. Значения идентичны.
Далее напишем код торговой системы, которая будет выводить комментарий со значением текущего тренда. Ниже приведен полный код такой стратегии.
//+------------------------------------------------------------------+ //| VIDYA 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() { MqlRates priceArray[]; double vidyaArray[]; int Data=CopyRates(_Symbol,_Period,0,3,priceArray); ArraySetAsSeries(vidyaArray,true); int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE); CopyBuffer(vidyaDef,0,0,3,vidyaArray); double currentClose=NormalizeDouble(priceArray[2].close,6); double vidyaVal = NormalizeDouble(vidyaArray[0],6); if(currentClose>vidyaVal) { Comment("Uptrend","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); } if(currentClose<vidyaVal) { Comment("Downtrend","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); } } //+------------------------------------------------------------------+
Отличия в этом коде:
Создаем два массива: для цен с помощью функции MqlRates и для VIDYA с помощью функции double, как рассмотрели ранее.
MqlRates priceArray[]; double vidyaArray[];
Сортируем массивы. Для массива цен priceArray используем функцию CopyRates и получаем исторические данные MqlRates. Параметры такие:
- symbol name (имя символа) —_Symbol
- timeframe (таймфрейм) — _Period
- start time (время начала) — 0
- stop time (время остановки) — 3
- rates array — priceArray
Для vidyaArray будем использовать функцию ArraySetAsSeries.
int Data=CopyRates(_Symbol,_Period,0,3,priceArray); ArraySetAsSeries(vidyaArray,true);
Определяем текущую цену закрытия и текущие значения VIDYA.
double currentClose=NormalizeDouble(priceArray[2].close,6); double vidyaVal = NormalizeDouble(vidyaArray[0],6);
Условия данной стратегии:
1. В случае восходящего тренда
if(currentClose>vidyaVal) { Comment("Uptrend","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); }
2. В случае нисходящего тренда
if(currentClose<vidyaVal) { Comment("Downtrend","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); }
Компилируем код и программу запускаем на графике. Увидим примерно такое:
Как видим, идентификатор тренда по VIDYA запустился на графике — есть значок в правом верхнем углу. Советник работает и генерирует сигналы. Примеры таких сигналов, полученных во время тестирования, показаны ниже.
1. В случае восходящего тренда
В верхнем левом углу графика отображается комментарий со следующими значениями:
- Восходящий тренд
- Текущее значение цены закрытия
- Текущее значение VIDYA
2. В случае нисходящего тренда
На графике отображается соответствующий комментарий:
- Нисходящий тренд
- Текущее значение цены закрытия
- Текущее значение VIDYA
Давайте сразу посмотрим на полный код для создания такой стратегии:
//+------------------------------------------------------------------+ //| VIDYA one crossover.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() { MqlRates priceArray[]; double vidyaArray[]; int Data=CopyRates(_Symbol,_Period,0,3,priceArray); ArraySetAsSeries(vidyaArray,true); int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE); CopyBuffer(vidyaDef,0,0,3,vidyaArray); double currentClose=NormalizeDouble(priceArray[2].close,6); double vidyaVal = NormalizeDouble(vidyaArray[0],6); if(currentClose>vidyaVal) { Comment("Buy signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); } if(currentClose<vidyaVal) { Comment("Sell signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); } } //+------------------------------------------------------------------+
Отличия в этом коде:
Комментарий на основе этой стратегии.
1. С сигналом на покупку
if(currentClose>vidyaVal) { Comment("Buy signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); }
2. С сигналом на продажу
if(currentClose<vidyaVal) { Comment("Sell signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA Value is ",vidyaVal); }
Компилируем код и программу запускаем на графике:
На скриншоте видно, что в правом верхнем углу графика отображается индикация того, что советник работает. Советник запущен и генерирует сигналы на покупку и продажу по этой стратегии. Примеры тестирования системы показаны ниже.
1. С сигналом на покупку
Система генерирует сигналы и выводит на график комментарий, который отображается в левом верхнем углу. В нем показаны следующие значения:
- Сигнал на покупку
- Текущее значение цены закрытия
- Текущее значение VIDYA
2. С сигналом на продажу
В верхнем левом углу графика отображается комментарий со следующими значениями:
- Сигнал на продажу
- Текущее значение цены закрытия
- Текущее значение VIDYA
Код стратегии по пересечению двух индикаторов VIDYA целиком:
//+------------------------------------------------------------------+ //| VIDYA two crossover.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() { MqlRates priceArray[]; double vidyaArray[]; double vidyaArray1[]; int Data=CopyRates(_Symbol,_Period,0,3,priceArray); ArraySetAsSeries(vidyaArray,true); ArraySetAsSeries(vidyaArray1,true); int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE); int vidyaDef1 = iVIDyA(_Symbol,_Period,20,50,0,PRICE_CLOSE); CopyBuffer(vidyaDef,0,0,3,vidyaArray); CopyBuffer(vidyaDef1,0,0,3,vidyaArray1); double currentClose=NormalizeDouble(priceArray[2].close,6); double vidyaVal = NormalizeDouble(vidyaArray[0],6); double vidyaVal1 = NormalizeDouble(vidyaArray1[0],6); if(vidyaVal>vidyaVal1) { Comment("Buy signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); } if(vidyaVal<vidyaVal1) { Comment("Sell signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); } } //+------------------------------------------------------------------+
Отличия в этом коде:
В этот раз используем три массива: цены, vidyaArray, vidyaArray1
MqlRates priceArray[]; double vidyaArray[]; double vidyaArray1[];
Сортируем массивы
int Data=CopyRates(_Symbol,_Period,0,3,priceArray); ArraySetAsSeries(vidyaArray,true); ArraySetAsSeries(vidyaArray1,true);
Определяем vidyaDef и vidyaDef1
int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE); int vidyaDef1 = iVIDyA(_Symbol,_Period,20,50,0,PRICE_CLOSE);
Заполняем массивы vidyaArray и vidyaArray1
CopyBuffer(vidyaDef,0,0,3,vidyaArray); CopyBuffer(vidyaDef1,0,0,3,vidyaArray1);
Определяем currentClose, vidyaVal и vidyaVal1
double currentClose=NormalizeDouble(priceArray[2].close,6); double vidyaVal = NormalizeDouble(vidyaArray[0],6); double vidyaVal1 = NormalizeDouble(vidyaArray1[0],6);
Условия сигналов по данной стратегии:
1. С сигналом на покупку
if(vidyaVal>vidyaVal1) { Comment("Buy signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); }
2. С сигналом на продажу
if(vidyaVal<vidyaVal1) { Comment("Sell signal","\n", "Current Close Value is ",currentClose,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); }
Компилируем код и программу запускаем на графике. Увидим примерно такое:
В правом верхнем углу графика есть индикация того, что советник работает. Советник генерирует сигналы на покупку и продажу по этой стратегии. Ниже показано несколько примеров, полученных при тестировании системы.
Сигнал на покупку:
В верхнем левом углу графика отображается комментарий с сигналом и дополнительными значениями:
- Сигнал на покупку
- Текущее значение цены закрытия
- Текущее значение VIDYA (9,12)
- Текущее значение VIDYA (20,50)
Сигнал на продажу
Комментарий на графике содержит такие значения:
- Сигнал на продажу
- Текущее значение цены закрытия
- Текущее значение VIDYA (9,12)
- Текущее значение VIDYA (20,50)
Заключение
Итак, мы с вами изучили индикатор Скользящей средней с динамическим периодом усреднения (Variable Index Dynamic Average, VIDYA). Как и во всех статьях, изучение разбили на несколько подразделов. Познакомились с определением расчета, узнали, что он измеряет и как его рассчитать вручную. Составляющие формулы расчета позволяют лучше понять саму суть индикатора. Также посмотрели, как использовать стандартный индикатор, входящий в поставку платформы. Далее мы посмотрели, как использовать индикатор — для этого в статье представлены простые стратегии, основанные на базовой концепции, лежащей в его основе. Мы изучили следующие стратегии:
- Идентификатор тренда по VIDYA — стратегия сообщает тип тренда на рынке (восходящий или нисходящий).
- Стратегия с пересечением VIDYA: сигналы на покупку и продажу генерируются при пересечении цены и линии индикатора.
- Стратегия с пересечением двух VIDYA: сигналы на покупку и продажу генерируются при пересечении двух индикаторов VIDYA с параметрами (9,12) и (20,50).
Я надеюсь, что вы самостоятельно прорабатывали каждый код — именно так можно научиться писать коды торговых стратегий. Особенно это важно для начинающих программистов, ведь так вы развиваете свои навыки. В целом практика очень важна в любом процессе обучения, не только а программировании. Еще раз напомню, что очень важно тщательно тестировать любые стратегии, представленные в статьях, прежде чем применять их на реальном счете, чтобы убедиться, что это подходит вашему стилю и пониманию торговли. Ведь то, что подходит другим, не обязательно окажется подходящим для вас. Кроме того, не забывайте, что статья все стратегии здесь представлены для образовательных целей. Они нуждаются в оптимизации.
Надеюсь, статья будет для вас полезной и поможет вам в достижении торговых целей. Если вам понравилась статья и в целом вы интересуетесь темой создания торговых стратегий на основе популярных технических индикаторов, рекомендую почитать другие статьи из этой серии — ранее мы уже изучали разработку систем с использованием RSI, MACD, стохастика, скользящих средних, полос Боллинджера, конвертов и многих других технических инструментов.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/11341





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