English 中文 Español Deutsch 日本語 Português
Сравнение различных типов скользящих средних в торговле

Сравнение различных типов скользящих средних в торговле

MetaTrader 5Индикаторы | 4 октября 2017, 08:54
33 743 11
Aleksey Zinovik
Aleksey Zinovik

Содержание

Введение

Скользящая средняя (Moving Average, MA) — один из самых популярных технических индикаторов на рынке Forex. Наша цель — рассмотреть различные МА и сравнить их в торговле при одинаковых условиях входа и выхода из рынка.

Рассмотрим семь типов скользящих средних: Moving Average, Adaptive Moving Average, Double Exponential Moving Average, Fractal Adaptive Moving Average, Triple Exponential Moving Average, Variable Index Dynamic Average и Nick Rypock Moving Average.

Типы скользящих средних

В этом разделе приведено краткое описание и формулы для расчета интересующих нас скользящих средних.

Технический индикатор Moving Average

Moving Average — один из самых распространенных технических индикаторов. Он показывает среднее значение цены инструмента за заданный период времени. Существуют различные варианты индикатора MA:

  • Simple Moving Average (SMA) — простая скользящая средняя;
  • Exponential Moving Average (EMA) — экспоненциальная скользящая средняя;
  • Smoothed Moving Average (SMMA) — сглаженная скользящая средняя;
  • Linear Weighted Moving Average (LWMA) — линейно-взвешенная скользящая средняя.

Приведем формулы для расчета каждого варианта индикатора Moving Average:

Вариант индикатора Moving Average Формула для расчета Комментарий
Simple Moving Average (SMA) SMA
  • n — количество единичных периодов (например при n=6 на графике с периодом M15 расчет индикатора будет выполнен за предыдущие 1,5 часа)
  • PRICE — текущее значение цены, в настройках индикатора можно выбрать следующие варианты: high, low, open, close, median price ((high+Low)/2), typical price ((high+Low+Close)/3), weighted close ((high+Low+Close+Close)/4) или данные предыдущего индикатора
Exponential Moving Average (EMA) EMA
  • EMA(i-1) — предыдущее значение
  • F — фактор сглаживания (доля использования значения цен). Коэффициент F выбирается произвольным образом в пределах от 0 до 1, например F=2/(n+1), где n - количество единичных периодов
  • PRICE — текущее значение цены
Smoothed Moving Average (SMMA) SMMA
  • SMMA(i-1) — предыдущее значение
  • n — количество единичных периодов
  • PRICE — текущее значение цены
Linear Weighted Moving Average (LWMA) LWMA
  • PRICE — текущее значение цены
  • n — количество единичных периодов

Рассмотрим отображения разных вариантов индикатора Moving Average на ценовом графике. На рисунке 1 показаны варианты индикатора Moving Average с периодом 12, рассчитанного по ценам Close.

Индикатор Moving Average

Рис. 1. Варианты индикатора Moving Average

Как видно из рисунка, Simple Moving Average на флэте слегка колеблется, а это может дать ложные торговые сигналы. Smoothed Moving Average, как следует из ее названия, выглядит более сглаженной. Exponential Moving Average и Linear Weighted Moving Average ведут себя примерно одинаково на флэте. Linear Weighted Moving Average во время трендового движения подходит ближе остальных линий к ценам и, в отличие от SMMA и EMA, не зависит от своего предыдущего значения.

Технические индикаторы на основе экспоненциальной скользящей средней (EMA)

Экспоненциальная скользящая средняя (EMA) лежит в основе ряда других технических индикаторов.

Индикатор
Описание
Формула расчета
Расшифровка формулы расчета

Adaptive Moving Average (AMA)

MA с небольшой чувствительностью к шумам. По сравнению с остальными скользящими средними, у этого индикатора минимально запаздывание при определении разворотов и смены тренда.
При резких скачках цены он не дает сильных флуктуаций, а значит, не вызывает ложных торговых сигналов.
Расчет индикатора AMA
  • AMA(i-1) — предыдущее значение индикатора
  • Price(i) — текущее значение цены
  • SSC(i) —  константа сглаживания

Double Exponential Moving Average

Используется для сглаживания цены или значений других индикаторов. 

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

Расчет индикатора DEMA


  • EMA(Price, n, i) — текущее значение EMA от цены Price с периодом n
  • EMA2(Price, n, i) = EMA(EMA(Price, n, i), n, i) — двойная EMA от цены Price с периодом n

Triple Exponential Moving Average

Синтез одинарной, двойной и тройной экспоненциальной МА. Запаздывание в итоге гораздо меньше, чем для каждой из этих МА по отдельности.

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

Расчет индикатора TEMA
  • EMA(Price, n, i) — текущее значение EMA от цены Price с периодом n
  • EMA2(Price, n, i) = EMA(EMA(Price, n, i), n, i) — двойная EMA от цены Price с периодом n
  • EMA3(Price, n, i)=EMA(EMA2(Price, n, i), n, i) — тройная EMA от цены Price с периодом n

Fractal Adaptive Moving Average

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

Расчет индикатора FRAMA

  • Price(i) — текущее значение цены
  • A(i) — текущий фактор экспоненциального сглаживания

Variable Index Dynamic Average

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

Волатильность рынка измеряется осциллятором Chande Momentum Oscillator (CMO). Он измеряет отношение между суммами положительных и отрицательных приращений приращений за определенный период (период CMO). Значение CMO служит коэффициентом для сглаживающего фактора EMA. Таким образом, у индикатора настраиваются два параметра: период осциллятора CMO и период сглаживания EMA.

Расчет индикатора VIDYA
  • F=2/(n+1) — фактор сглаживания, n — количество единичных периодов
  • ABS — математическая функция,вычисляющая абсолютное значение величины
  • VIDYA(i-1) — предыдущее значение индикатора
  • CMO(i) — значение осциллятора CMO

Nick Rypock Moving Average

Индикатор не входит в стандартный комплект поставки терминала MetaTrader 5. Его основное достоинство — в том, что практически нет колебаний во флэте, он строго следует за трендом. 

Расчет индикатора NRMA

  • NRMA(i-1) — предыдущее значение индикатора
  • Price(i) — текущее значение цены
  • F=2/(n+1) — фактор сглаживания, n — количество единичных периодов

    NRratio - коэффициент к фактору сглаживания

Отличия индикаторов от обычной EMA

Сравним рассмотренные выше индикаторы с обычной EMA. На рисунке 2 показаны:

  • Adaptive Moving Average (период 12, быстрая EMA — 2, медленная EMA — 30, сдвиг — 0)
  • Double Exponential Moving Average (период — 12, сдвиг — 0)
  • Fractal Adaptive Moving Average (период — 12, сдвиг — 0)
  • Exponential Moving Average (период — 12, сдвиг — 0)
  • Triple Exponential Moving Average (период — 12, сдвиг — 0)
  • Variable Index Dynamic Average (период CMO — 12, период EMA — 12, сдвиг — 0)
  • Nick Rypock Moving Average (метод усреднения — SMA, глубина сглаживания — 3, параметр сглаживания — 15 (не используется для SMA), Kf — 1, Fast — 12, Sharp — 2, сдвиг по вертикали и горизонтали — 0).

Все индикаторы построены на ценах Close.

AMA, DEMA, TEMA, FRAMA, VIDYA, NRMA, EMA

Рис. 2. Сравнение индикаторов, основанных на экспоненциальной скользящей средней (EMA)

Как видно из рисунка 2, DEMA и TEMA, по сравнению с обычной EMA, более точно повторяют движение цены, однако их колебания во флэте могут давать ложные торговые сигналы. Остальные индикаторы (FRAMA, AMA, VIDYA, NRMA) во флэте почти не колеблются, не реагируют на небольшие изменения цены. В тренде почти все индикаторы ведут себя одинаково, TEMA и FRAMA быстрее других отреагировали на изменение направления тренда.

Сравнение различных типов скользящих средних

Сравним рассмотренные выше технические индикаторы на торговой стратегии с одинаковыми условиями входа и выхода из рынка.

Описание торговой стратегии

Для тестирования индикатора была выбрана несложная стратегия с очевидными условиями входа в рынок и выхода из него.

Условия входа в рынок. 

  • Предварительный сигнал на покупку: линия индикатора пересекает тело "бычьей" свечи. Далее, если разность между текущим и предыдущим значениями индикатора больше заданного параметра Growth factor (индикатор растет), открываем сделку на покупку.
  • Предварительный сигнал на продажу: линия индикатора пересекает тело "медвежьей" свечи. Далее, если разность между предыдущим и текущим значениями индикатора больше заданного параметра Growth factor (индикатор падает), открываем сделку на продажу.

Условия выхода из рынка:

  • по достижению уровней TakeProfit или StopLoss;
  • если открыта сделка на покупку и линия индикатора пересекла тело "медвежьей" свечи;
  • если открыта сделка на продажу и линия индикатора пересекла тело "бычьей" свечи.

На рисунках 3,4 показаны примеры торговли по данной стратегии.

Buy

Рис. 3. Пример сделки на покупку

Sell

Рис. 4. Пример сделки на продажу

Похожая торговая стратегия реализована в советнике Moving Average, который можно найти в навигаторе терминала MetaTrader 5.

Создание советника

Напишем советник для торговли по вышеописанной стратегии. В советнике будет реализована возможность выбора одного из технических индикаторов: MA (с методами Simple, Exponential, Smoothed, Linear Weighted), DEMA, TEMA, FRAMA, AMA, VIDYA, NRMA. Выбранный индикатор будет отрисовываться на графике. Также можно указать входные параметры индикатора, задать размер TakeProfit и StopLoss, размер лота для торговли, значение коэффициента роста индикатора (Growth factor).

Проверять условия входа и выхода на рынок будем только на новом баре, а не на каждом тике. Сначала проверяется наличие открытой позиции (для этого в советнике создана функция SelectPosition). Если таковых нет, то проверяем условие входа (функция CheckForOpen), если есть — проверяем условие выхода (функция CheckForClose).

Полный код советника приложен к статье (файл MultiMovingAverageExpert.mq5). Рассмотрим только реализацию условий входа и выхода из рынка. Проверка условий входа реализована в функции CheckForOpen следующим образом:

   if(rt[0].open>ma[0] && rt[0].close<ma[0])               //проверка пересечения тела "медвежьей" свечи
     {
      if(BuyCross)
         BuyCross=false;                                   //снимаем предварительное условие на покупку (если до этого было пересечение линией индикатора "бычьей" свечи)
      SellCross=true;                                      //устанавливаем предварительное условие на продажу
     }
   else
   if(rt[0].open<ma[0] && rt[0].close>ma[0])               //проверка пересечения тела "бычьей" свечи
     {
      if(SellCross)
         SellCross=false;                                 //снимаем предварительное условие на продажу (если до этого было пересечение линией индикатора "медвежьей" свечи)
      BuyCross=true;                                      //устанавливаем предварительное условие на покупку
     }
   if(SellCross && ma[0]>ma[1] && ma[0]-ma[1]>GFactor)
     {
      signal=ORDER_TYPE_SELL;                             //если индикатор падает, возникает условие на продажу
      SellCross=false;                                    //снимаем предварительное условие на продажу
     }
   else
   if(BuyCross && ma[1]>ma[0] && ma[1]-ma[0]>GFactor)
     {
      signal=ORDER_TYPE_BUY;                             // если индикатор растет, возникает условие на покупку
      BuyCross=false;                                    //снимаем предварительное условие на покупку
     }
  • В массиве rt[] хранятся исторические данные о ценах
  • В массиве ma[] — значения индикатора.
  • rt[0].close, rt[0].open — значение предыдущей цены close/open
  • ma[0] — предыдущее значение индикатора
  • ma[1] — текущее значение индикатора.
  • GFactor — коэффициент роста индикатора.
  • Переменная signal далее используется для формирования торгового запроса на покупку или продажу.

Проверка условий выхода реализована в функции CheckForClose так:

   bool signal=false;
   long type=PositionGetInteger(POSITION_TYPE);

   if(type==(long)POSITION_TYPE_BUY && rt[0].open>ma[0] && rt[0].close<ma[0])       //если открыта позиция на покупку и 
                                                                                    //линия индикатора пересекает тело "медвежьей" свечи 
      signal=true;                                                                  //сигнал к закрытию сделки
   if(type==(long)POSITION_TYPE_SELL && rt[0].open<ma[0] && rt[0].close>ma[0])      //если открыта позиция на продажу и
                                                                                    //линия индикатора пересекает тело "бычьей" свечи  
      signal=true;                                                                  //сигнал к закрытию сделки
   if(signal)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         ExtTrade.PositionClose(_Symbol,3);                                         //закрываем сделку
     }

Тестирование и результаты работы советника

Тестировать советник будем на валютных парах EURUSD, GBPUSD, USDJPY, USDCAD, AUDUSD, таймфрейм H1. TakeProfit — 80 пунктов, StopLoss — 50 пунктов, объем лота для торговли 0.1, размер депозита — 10 000 USD, режим тестирования — все тики, плечо 1:100, 5-значные котировки, сервер: MetaQuotes-Demo.

Тестирование выполнено за период с 01.01.2016г. по 09.09.2017г.

Для каждого индикатора были оптимизированы период (диапазон изменения 5 — 50, шаг 1) и параметр Growth factor (диапазон изменения 0,0001 —  0,0001, шаг 0,001).

Для Variable Index Dynamic Average оптимизировался период EMA (в качестве периода расчета индикатора) и период осциллятора CMO (диапазон изменения 5 — 50, шаг 1).

Для Nick Rypock Moving Average оптимизировался параметр Fact, определяющий период расчета индикатора.

Расчет значений индикаторов выполнен по ценам Close, без сдвига по горизонтали и вертикали. У некоторых индикаторов есть дополнительные параметры:

Наименование скользящей средней Значения параметров
Adaptive Moving Average
  • Период быстрой EMA — 2
  • Период медленной EMA — 30
Nick Rypock Moving Average
  • Метод усреднения — SMA
  • Глубина сглаживания — 3
  • Параметр сглаживания — 15 (не используется при методе усреднения SMA)
  • KF=1
  • Sharp=2

Результаты тестирования на валютной паре EURUSD

Результаты тестирования на валютной паре EURUSD (варианты с наибольшей чистой прибылью) представлены в таблице:

Наименование скользящей средней Оптимизируемые параметры и их значения Количество трейдов Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная
просадка по средствам
Moving Average (метод усреднения Simple) Период —15, Growth factor — 0.0002 383 1309.82 1.32 3.14 0.1 397.29 (3.81%) 417.26 (3.99%)
Moving Average (метод усреднения Exponential) Период — 11, Growth factor — 0.0003 405 1109.72 1.22 3.02 0.08 346.35 (3.39%) 367.45 (3.6%)
Moving Average (метод усреднения Smoothed) Период — 6, Growth factor — 0.0003 405 1109.72 1.22 3.02 0.08 346.35 (3.39%) 367.45 (3.6%)
Moving Average (метод усреднения Linear Weighted) Период — 22, Growth factor — 0.0002 351 1505.35 1.34 3.65 0.11 383.71 (3.41%) 412.88 (3.91%)
Adaptive Moving Average Период — 14, Growth factor — 0.0001 384 1024.19 1.19 1.63 0.07 600.06 (5.41%) 627.36 (5.64%)
Double Exponential Moving Average Период — 28, Growth factor — 0.0003 366 1676.43 1.39 3.49 0.12 460.33 (4.39%) 481.03 (4.58%)
Triple Exponential Moving Average Период — 44, Growth factor — 0.0002 482 1842.81 1.35 5.31 0.11 321.07 (3.14%) 347.27 (3.39%)
Fractal Adaptive Moving Average Период — 16, Growth factor — 0.0007 174 766.52 1.37 2.69 0.12 252.4 (2.5%) 285.08 (2.78%)
Variable Index Dynamic Average Период EMA — 12, период CMO — 2, Growth factor — 0.0003 333 1237.31 1.26 2.86 0.09 385.44 (3.43%) 432.81 (3.84%)
Nick Rypock Moving Average Fact — 15, Growth factor — 0.0001 295 1669.62 1.42 4.14 0.14 376.22 (3.5%) 403.52 (3.75%)

Из результатов тестирования можно сделать следующие выводы:

  • Наибольший показатель чистой прибыли и фактор восстановления — Triple Exponential Moving Average, однако другие ее показатели не самые высокие, также неплохие результаты показали Double Exponential Moving Average и Nick Rypock Moving Average.
  • Наихудшие показатели прибыльности, фактора восстановления, коэффициента Шарпа, а также наибольшую просадку по средствам и балансу показала Adaptive Moving Average.

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

где:

  • nValue — нормированное значение параметра в интервале от 0 до 1,
  • Value — текущее значение параметра,
  • MaxValue — максимальное значение параметра,
  • MinValue — минимальное значение параметра.

Результаты представлены в таблице (желтым выделены наилучшее результаты, красным — наихудший):

Наименование скользящей средней  Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная просадка по средствам Сумма показателей без учета просадок Сумма показателей с учетом просадок
Moving Average (метод усреднения Simple) 0.50479 0.56522 0.41033 0.42857 0.41676 0.38618 1.9089 1.10597
Moving Average (метод усреднения Exponential) 0.31887 0.13043 0.37772 0.14286 0.27024 0.24065 0.96988 0.459
Moving Average (метод усреднения Smoothed) 0.31887 0.13043 0.37772 0.14286 0.27024 0.24065 0.96988 0.459
Moving Average (метод усреднения Linear Weighted) 0.68646 0.65217 0.54891 0.57143 0.3777 0.37338 2.45898 1.7079
Adaptive Moving Average 0.23941
0 0 0 1 1 0.23941 -1.76059
Double Exponential Moving Average
0.84541

0.86957 0.50543 0.71429 0.59808 0.57248 2.9347 1.76413
Triple Exponential Moving Average 1 0.69565 1 0.57143 0.19572 0.18169 3.26708 2.88787
Fractal Adaptive Moving Average 0 0.78261 0.28804 0.71429 0 0 1.78494 1.78494
Variable Index Dynamic Average 0.43742
0.29631 0.33361 0.27656 0.38267 0.43161 1.34419 0.52992
Nick Rypock Moving Average 0.83909 1 0.68207 1 0.35615 0.34603 3.52115 2.81897

В последнем столбце таблицы при суммировании показателей значения максимальной просадки по балансу и по средствам взяты с отрицательным знаком (чем меньше просадка, тем лучше стратегия). Таким образом, наилучшие показатели для рассмотренной стратегии продемонстрировали Triple Exponential Moving Average, Nick Rypock Moving Average и Double Exponential Moving Average (в таблице выделены желтым). Результаты тестирования для TEMA, NRMA и DEMA приведены на рис. 5-10.

График для Triple Exponential MA

Рис. 5. График баланса (средств) для Triple Exponential Moving Average

Отчет Triple Exponential MA

Рис. 6. Отчет для Triple Exponential Moving Average

График для NRMA

Рис. 7. График баланса (средств) для Nick Rypock Moving Average

Отчет для Nick Rypock Moving Average

Рис. 8. Отчет для Nick Rypock Moving Average

График DEMA

Рис. 9. График баланса (средств) для Double Exponential Moving Average 

Отчет DEMA

Рис. 10. Отчет для Double Exponential Moving Average 

Из рис. 5, 7, 9 видно, что график баланса (средств) для TEMA выглядит более стабильно, чем NRMA и DEMA, хотя имеет небольшие просадки. На графике баланса (средств) NRMA наблюдается резкий рост прибыли в последние 3 месяца торговли, на графике DEMA рост прибыли (с небольшой просадкой) начитается с декабря 2016 года.

Результаты тестирования на валютной паре  GBPUSD

Результаты тестирования на валютной паре GBPUSD представлены в таблице:

Наименование скользящей средней Оптимизируемые параметры и их значения Количество трейдов Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная 
просадка по средствам
Moving Average (метод усреднения Simple) Период —38, Growth factor — 0.0005 52 1013.56 1.98 3.82 0.32 207.04 (2.7%) 265.06 (2.65%)
Moving Average (метод усреднения Exponential) Период —41 , Growth factor — 0.0002 219 787.12 1.14 1.23 0.07 576.96 (5.21%) 639.44 (5.75%)
Moving Average (метод усреднения Smoothed) Период — 42, Growth factor — 0.0003 48 817.42 1.71 3.85 0.26 151.32 (1.51%) 212.24 (2.04%)
Moving Average (метод усреднения Linear Weighted) Период — 50, Growth factor — 0.0001 328 1086.08 1.17 1.26 0.07 818.34 (7.45%) 861.04 (7.82%)
Adaptive Moving Average Период — 21, Growth factor — 0.001 100 1102.16 1.61 4.61 0.21 176.46 (1.71%) 239.12 (2.28%)
Double Exponential Moving Average Период — 23, Growth factor — 0.0007 263 1070.88 1.21 1.96 0.08 466.24 (4.42%) 547.58 (5.16%)
Triple Exponential Moving Average Период — 30, Growth factor — 0.0009 214 1443.90 1.39 4.11 0.14 322.76 (3.02%) 351.14 (3.28%)
Fractal Adaptive Moving Average Период — 38, Growth factor — 0.0001 819 651.54 1.05 0.85 0.02 747.98 (7.12%) 764.88 (7.28%)
Variable Index Dynamic Average Период EMA — 35, период CMO — 7, Growth factor — 0.0004 73 1606.98 1.99 5.20 0.34 251.94 (2.52%) 309 (3.08%)
Nick Rypock Moving Average Fact — 45, Growth factor — 0.0005  53 978.30 1.80 3.86 0.29 200.64 (1.99%) 253.58 (2.51%)

Нормированные результаты представлены в таблице (желтым выделены наилучшее результаты, красным — наихудший):

Наименование скользящей средней  Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная просадка по средствам Сумма показателей без учета просадок Сумма показателей с учетом просадок
Moving Average (метод усреднения Simple) 0.3789
0.98929 0.68343 0.91799 0.08354 0.08141 2.96961 2.80467
Moving Average (метод усреднения Exponential) 0.1419 0.09351 0.08718 0.13465 0.63812 0.65845 0.45724 -0.8393
Moving Average (метод усреднения Smoothed) 0.17416 0.70302 0.69032 0.74598 0 0 2.31347 2.31347
Moving Average (метод усреднения Linear Weighted) 0.45481 0.12036 0.09417 0.14629 1 1 0.81562 -1.1844
Adaptive Moving Average 0.47164 0.58999 0.86402 0.57613 0.03769 0.04143 2.50177 2.42265
Double Exponential Moving Average
0.4389
0.17142 0.25383 0.1936 0.47213 0.51686 1.05774 0.06875
Triple Exponential Moving Average 0.82931 0.36161 0.74969 0.36845 0.25702 0.21409 2.30906 1.83795
Fractal Adaptive Moving Average 0 0 0 0 0.89452 0.85179 0 -1.7463
Variable Index Dynamic Average 1 1 1 1 0.15085 0.14914 4 3.70001
Nick Rypock Moving Average 0.342 0.79826 0.69126 0.82047 0.07394 0.06372 2.65199 2.51433

Как следует из таблиц, наилучшими показателями обладает Variable Index Dynamic Average, также неплохо показали себя Nick Rypock Moving Average и Moving Average с методом усреднения Simple. Результаты тестирования для VIDYA, NRMA и SMA приведены на рис. 11-16.

Vidya_gbp_usd

Рис. 11. График баланса (средств) Variable Index Dynamic Average

Viday Report

Рис. 12. Отчет для Variable Index Dynamic Average

NRMA GBPUSD

Рис. 13. График баланса (средств) Nick Rypock Moving Average

NRMA Report

Рис. 14. Отчет для Variable Index Nick Rypock Moving Average

SMA GBPUSD

Рис. 15. График баланса (средств) Simple Moving Average 

SMA Report

Рис. 16. Отчет для  Simple Moving Average 

Из рис. 11-16 видим, что графики VIDYA, NRMA и SMA выглядят примерно одинаково, в начале торговли наблюдается небольшая просадка, далее графики растут, количество сделок у VIDYA больше, чем NRMA и SMA. Процент прибыльных трейдов у VIDYA превышает NRMA и SMA.

Результаты тестирования на валютной паре USDJPY

Результаты тестирования на валютной паре USDJPY представлены в таблице:

Наименование скользящей средней Оптимизируемые параметры и их значения Количество трейдов Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная 
просадка по средствам
Moving Average (метод усреднения Simple) Период —34, Growth factor — 0.0004 451 1784.95 1.32 3.69 0.1 465.52 (4.17%) 483.34 (4.32%)
Moving Average (метод усреднения Exponential) Период — 42, Growth factor — 0.0007 465 1135.23 1.20 2.21 0.07 461.52 (4.08%) 514.61 (4.53%)
Moving Average (метод усреднения Smoothed) Период — 33, Growth factor — 0.0008 372 1702.94 1.36 5.15 0.12 296.57 (2.58%) 330.6 (2.87%)
Moving Average (метод усреднения Linear Weighted) Период — 50, Growth factor — 0.0005 477 1892.24 1.33 4.66 0.10 384.06 (3.68%) 406.1 (3.88%)
Adaptive Moving Average Период — 46, Growth factor — 0.0006 403 1460.51 1.26 2.56 0.09 527.75 (4.77%) 569.67 (5.13%)
Double Exponential Moving Average Период — 18, Growth factor — 0.001 1062 1459.18 1.15 3.55 0.05 366.24 (3.30%) 410.56 (3.69%)
Triple Exponential Moving Average Период — 50, Growth factor — 0.0003 657 1115.86 1.15 1.87 0.05 537.18 (4.68%) 597.71 (5.18%)
Fractal Adaptive Moving Average Период — 24, Growth factor — 0.0008 1030 615.92 1.06 0.8 0.02 734.03 (6.58%) 766.01 (6.85%)
Variable Index Dynamic Average Период EMA — 18, период CMO — 42, Growth factor — 0.001 238 2338.68 1.64 5.14 0.21 417.66 (3.62%) 454.69 (3.93%)
Nick Rypock Moving Average Fact — 28, Growth factor — 0.0002 435 1465.32 1.27 3.00 0.09 456.65 (4.02%) 488.7 (4.29%)

Нормированные результаты представлены в таблице (желтым выделены наилучшее результаты, красным — наихудший):

Наименование скользящей средней  Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная просадка по средствам Сумма показателей без учета просадок Сумма показателей с учетом просадок
Moving Average (метод усреднения Simple) 0.67858 0.45316 0.66457 0.4324 0.38621 0.3508 2.22871 1.49171
Moving Average (метод усреднения Exponential) 0.30144 0.25001 0.32251 0.25216 0.37706 0.42261 1.12612 0.32645
Moving Average (метод усреднения Smoothed) 0.63098 0.51885 1 0.50010 0 0 2.64993 2.64993
Moving Average (метод усреднения Linear Weighted) 0.74086 0.46535 0.88693 0.42881 0.2 0.1734 2.52195 2.14855
Adaptive Moving Average 0.49025 0.34559 0.40481 0.36951 0.52846 0.54907 1.61017 0.53264
Double Exponential Moving Average 0.48948 0.15054 0.63263 0.14711 0.15926 0.18364 1.41976 1.07686
Triple Exponential Moving Average 0.2902 0.15141 0.2445 0.15928 0.55002 0.61347 0.84538 -0.3181
Fractal Adaptive Moving Average 0 0 0 0 1 1 0 -2
Variable Index Dynamic Average 1 1 0.99825 1 0.2768 0.285 3.99825 3.43645
Nick Rypock Moving Average   0.49305  0.36549  0.50479  0.37182 0.36593  0.36311  1.73515  1.00611 

Как следует из таблиц, наилучшими показателями обладают Variable Index Dynamic Average и  Moving Average с методами усреднения Smoothed и Linear Weighted. Показатели чистой прибыли, прибыльности, коэффициента Шарпа VIDYA превышают SMMA и LWMA, но у SMMA и LWMA наименьшая просадка по балансу и средствам. Результаты тестирования для VIDYA, SMMA и LWMA приведены на рис. 17-22.

Vidya USDJPY

Рис. 17. График баланса (средств) Variable Index Dynamic Average

VIdya Report

Рис. 18. Отчет для  Variable Index Dynamic Average

LWMA

Рис. 19. График баланса (средств)  Linear Weighted Moving Average 

LWMA Report

Рис. 20. Отчет для  Linear Weighted Moving Average 

SSMA

Рис. 21. График баланса (средств) Smoothed Moving Average 

SSMA Report

Рис. 22. Отчет для  Smoothed Moving Average

Из рис. 17-22 видим, что несмотря на низкий процент прибыльных трейдов, индикаторы демонстрируют высокую чистую прибыль, это связано с тем, что валютная пара USDJPY имеет высокую волатильность.

Результаты тестирования на валютной паре USDCAD

Результаты тестирования на валютной паре USDCAD представлены в таблице:

Наименование скользящей средней Оптимизируемые параметры и их значения Количество трейдов Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная 
просадка по средствам
Moving Average (метод усреднения Simple) Период —39, Growth factor — 0,0004 59 1101.44 2.30 7.11 0.40 133.44 (1.25%) 154.92 (1.45%)
Moving Average (метод усреднения Exponential) Период — 31, Growth factor — 0.0005 76 951.88 1.74 3.01 0.27 278.08 (2.56%) 316.57 (2.91%)
Moving Average (метод усреднения Smoothed) Период — 50, Growth factor — 0.0001 121 1262.26 1.57 3.07 0.22 343.76 (3.19%) 411.32 (3.81%)
Moving Average (метод усреднения Linear Weighted) Период — 46, Growth factor — 0.0005 46 903.64 2.34 5.31 0.42 128.97 (1.22%) 170.05 (1.61%)
Adaptive Moving Average Период — 38, Growth factor — 0.0009 41 990.44 3.18 8.62 0.55 77.57 (0.73%) 114.96 (1.09%)
Double Exponential Moving Average Период — 44, Growth factor — 0.0007 73 941.93 2.07 5.33 0.32 137.28 (1.28%) 176.6 (1.64%)
Triple Exponential Moving Average Период — 49, Growth factor — 0.0009 76 559.18 1.62 3.28 0.20 122.21 (1.2%) 170.57 (1.66%)
Fractal Adaptive Moving Average Период — 15, Growth factor — 0.0009 185 504.26 1.27 2.44 0.09 197.12 (1.95%) 206.37 (2.04%)
Variable Index Dynamic Average Период EMA — 34, период CMO — 9, Growth factor — 0.0002 111 1563.99 1.86 6.17 0.30 185.64 (1.70%) 253.36 (2.32%)
Nick Rypock Moving Average Fact — 41, Growth factor —0.0004  81 594.91 1.39 1.74 0.16 309.02 (2.88%) 342.16 (3.18%)

Нормированные результаты представлены в таблице(желтым выделены наилучшее результаты, красным — наихудший):

Наименование скользящей средней  Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная просадка по средствам Сумма показателей без учета просадок Сумма показателей с учетом просадок
Moving Average (метод усреднения Simple) 0.56352
0.53776 0.78104 0.67198 0.20989 0.13484 2.5543 2.20957
Moving Average (метод усреднения Exponential) 0.42239 0.24419 0.18441 0.37529 0.75326 0.68029 1.22628 -0.2073
Moving Average (метод усреднения Smoothed) 0.71528 0.15751 0.19342 0.26924 1 1 1.33545 -0.6646
Moving Average (метод усреднения Linear Weighted) 0.37687   0.55859 0.5199 0.69827 0.1931 0.18589 2.15363 1.77465
Adaptive Moving Average 0.45878 1 1 1 0 0 3.45878 3.45878
Double Exponential Moving Average 0.413
0.42112 0.52277 0.48957 0.22431 0.20799 1.84645 1.41415
Triple Exponential Moving Average 0.05182 0.18256 0.22388 0.23681 0.1677 0.18764 0.69508 0.33974
Fractal Adaptive Moving Average 0 0 0.10249 0 0.44912 0.30844 0.10249 -0.6551
Variable Index Dynamic Average 1 0.30606 0.64482 0.43945 0.40599 0.467 2.39033 1.51734
Nick Rypock Moving Average   0.08554 0.06124  0.14059 0.86949  0.76664  0.28737  -1.3488 

Как следует из таблиц, наилучшие показатели имеют Adaptive Moving Average, Moving Average с методом усреднения Simple и Variable Index Dynamic Average. Adaptive Moving Average демонстрирует наилучшие показатели прибыльности, фактора восстановления и коэффициента Шарпа, также имеет наименьшие просадки по балансу и средствам. У Variable Index Dynamic Average наибольшая чистая прибыль, но другие показатели не самые высокие. Результаты тестирования для AMA, SMA и VIDYA приведены на рис. 23-28.

AMA

Рис. 23. График баланса (средств) Adaptive Moving Average

AMA Report

Рис. 24. Отчет для  Adaptive Moving Average

SMA

Рис. 25. График баланса (средств) Simple Moving Average

SMA Report

Рис. 26. Отчет для  Simple Moving Average

VIDyA

Рис. 27. График баланса (средств) Variable Index Dynamic Average

VIDyA Report

Рис. 28. Отчет для  Variable Index Dynamic Average

Из рис. 23-28 видим AMA имеет наименьшее количество сделок и наибольший процент прибыльных сделок. SMA и VIDYA имеют большую прибыль за счет большего количества сделок, при этом количество прибыльных сделок превышает убыточные. Сильных просадок на графиках AMA, SMA и VIDYA не наблюдается.

Результаты тестирования на валютной паре AUDUSD

Результаты тестирования на валютной паре AUDUSD представлены в таблице:

Наименование скользящей средней Оптимизируемые параметры и их значения Количество трейдов Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная 
просадка по средствам
Moving Average (метод усреднения Simple) Период —7, Growth factor — 0.0009 78 262.48 1.36 1.23 0.11 175.85 (1.74%) 214.18 (2.11%)
Moving Average (метод усреднения Exponential) Период — 40, Growth factor — 0.0004 24 652.88 2.62 2.82 0.47 206.76 (1.93%) 231.76 (2.16%)
Moving Average (метод усреднения Smoothed) Период — 21, Growth factor — 0.0004 24 651.18 2.61 2.81 0.47 206.76 (1.93%) 231.76 (2.16%)
Moving Average (метод усреднения Linear Weighted) Период — 32, Growth factor — 0.0005 24 383.64 1.97 2.25 0.30 116.38 (1.11%) 170.24 (1.62%)
Adaptive Moving Average Период — 21, Growth factor — 0.0007 58 252.39 1.30 0.54 0.11 392.15 (3.80%) 464.47 (4.48%)
Double Exponential Moving Average Период — 40, Growth factor — 0.0006 39 296.15 1.70 1.53 0.20 156.62 (1.51%) 193.02 (1.86%)
Triple Exponential Moving Average Период — 21, Growth factor — 0.001 69 273.12 1.35 1.05 0.11 228.5 (2.20%) 259.71 (2.50%)
Fractal Adaptive Moving Average Период — 38, Growth factor — 0.0007 83 109.01 1.11 0.55 0.04 142.85 (1.42%) 196.47 (1.94%)
Variable Index Dynamic Average Период EMA — 26, период CMO — 5, Growth factor — 0.0006  23 697.59 2.99 2.96 0.53 151.35 (1.41%) 235.38 (2.19%)
Nick Rypock Moving Average Fact — 22, Growth factor — 0.0006 34 509.27 1.90 2.55 0.28 94.58 (0.9%) 200 (1.89%)

Нормированные результаты представлены в таблице (желтым выделены наилучшее результаты, красным — наихудший):

Наименование скользящей средней  Чистая прибыль Прибыльность Фактор восстановления Коэффициент Шарпа Максимальная просадка по балансу Максимальная просадка по средствам Сумма показателей без учета просадок Сумма показателей с учетом просадок
Moving Average (метод усреднения Simple) 0.26075 0.12921 0.28183 0.13463 0.27311 0.14934 0.80642 0.38397
Moving Average (метод усреднения Exponential) 0.92404 0.80629 0.93942 0.86552 0.37699 0.20909 3.53527 2.94919
Moving Average (метод усреднения Smoothed) 0.92115 0.8006 0.93639 0.86226 0.37699 0.20909 3.5204 2.93433
Moving Average (метод усреднения Linear Weighted) 0.4666 0.45691 0.70658 0.52861 0.07326 0 2.1587 2.08544
Adaptive Moving Average 0.2436 0.10105 0 0.13347 1 1 0.47812 -1.5219
Double Exponential Moving Average 0.31795
0.31405 0.40942 0.31848 0.20849 0.07742 1.3599 1.07399
Triple Exponential Moving Average 0.27882 0.12776 0.20999 0.14014 0.45005 0.30408 0.75672 0.00259
Fractal Adaptive Moving Average 0 0 0.00473 0 0.16221 0.08915 0.00473 -0.2466
Variable Index Dynamic Average 1 1 1 1 0.19078 0.22139 4 3.58783
Nick Rypock Moving Average   0.68004 0.42124  0.82757  0.48773   0 0.10115  2.41659  2.31545 

Как следует из таблиц, наилучшие показатели имеют Variable Index Dynamic Average, и Moving Average с методами усреднения Exponential и Smoothed. VIDYA демонстрирует наилучшие показатели чистой прибыли, прибыльности, фактора восстановления и коэффициента Шарпа. EMA и SMMA имеют почти одинаковые показатели и одинаковое количество сделок.  Результаты тестирования для VIDYA, EMA и SMMA приведены на рис. 29-34.

VIDyA
Рис. 29. График баланса (средств) Variable Index Dynamic Average

VIDyA Report

Рис. 30. Отчет для  Variable Index Dynamic Average

EMA

Рис. 31. График баланса (средств)  Exponential Moving Average

EMA Report

Рис. 32. Отчет для  Exponential Moving Average

SSMA

Рис. 33. График баланса (средств) Smoothed Moving Average

SSMA Report

Рис. 34. Отчет для  Smoothed Moving Average

Из рис. 29-34 видим, что графики баланса (средств) для VIDYA, EMA и SMMA примерно одинаковы, у VIDYA больше прибыльных трейдов, чем EMA и SMMA. Валютная пара AUDUSD обладает низкой волатильностью, что и объясняет полученные результаты.

Из результатов тестирования на валютных парах EURUSD, GBPUSD, USDJPY, USDCAD, AUDUSD можно сделать следующие выводы:

  • наилучшие результаты на валютных парах с высокой (GBPUSD, USDJPY) и низкой волатильностью (AUDUSD) показала Variable Index Dynamic Average
  • на валютной паре USDCAD наилучшие показатели у Adaptive Moving Average, однако на валютной паре EURUSD она демонстрирует наихудшие результаты
  • на валютной паре EURUSD наилучшие показатели у Triple Exponential Moving Average
  • наихудшие результаты на валютных парах GBPUSD, USDJPY, USDCAD, AUDUSD продемонстрировала Fractal Adaptive Moving Average
  • неплохие результаты продемонстрировал стандартный индикатор Moving Average с различными периодами усреднения.

Заключение

Мы рассмотрели различные скользящие средние (MA (с методами Simple, Exponential, Smoothed, Linear Weighted), DEMA, TEMA, FRAMA, AMA, VIDYA, NRMA), для каждой MA описан порядок ее расчета. Выполнены сравнение и оптимизация параметров скользящих средних в торговле при одинаковых условиях входа и выхода из рынка.

Из полученных результатов можно сделать следующие выводы:

  • оптимизируя параметры любой из рассмотренных скользящих средних, можно получить прибыльную стратегию;
  • большинство скользящих средних — вариации индикатора EMA;
  • основное преимущество скользящих средних, основанных на EMA, — уменьшение ложных сигналов во флэте и более быстрая реакция на изменение тренда;
  • наилучшие результаты показал индикатор Variable Index Dynamic Average, его можно использовать как валютных парах с высокой и низкой волатильностью, так и валютных парах со средней волатильностью.
В статье рассмотрены четыре технических индикатора (AMA, FRAMA, VIDYA, NRMA), которые отличаются от EMA способом расчета фактора сглаживания. Возможно, для кого-нибудь это послужит стимулом к созданию новой, более эффективной вариации индикатора EMA.

Прикрепленные файлы |
Последние комментарии | Перейти к обсуждению на форуме трейдеров (11)
Mikhail Kontsevoy
Mikhail Kontsevoy | 5 окт. 2017 в 12:28

Скользящими средними, наверно, хорошо анализировать естественные переходные процессы (например сезонное изменение температуры). 

Igor Ryapisov
Igor Ryapisov | 5 окт. 2017 в 13:28

Каким вообще образом какая-то полоска, значение которой - среднее за последние несколько баров, может показывать куда пойдёт цена?

Точность из разряда - шла вверх, ну и дальше пойдёт значит.

Aleksey Zinovik
Aleksey Zinovik | 5 окт. 2017 в 19:23
Alexey Volchanskiy:

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


Да, вы правы. Бэк оптимизация и форвард тесты были бы более реалистичными. Я провел такую оптимизацию и тестирование для валютной пары EURUSD для TEMA, NRMA и DEMA (они дали лучшие результаты в статье). 

Бэк-оптимизация. Период 01.01.2016-04.11.2016 г (половина временного интервала на котором я тестировал ранее)

Форвард-тестирование. Период 05.11.2016-09.09.2017г.

Результаты свел в таблицу:

Наименование индикатораЗначения оптимизируемых параметровЧистая прибыль (оптимизация)Чистая прибыль (тестирование)Фактор восстановления (оптимизация)Фактор восстановления (тестирование)Прибыльность
(оптимизация) 
Прибыльность
(тестирование) 
 Коэффициент Шарпа

(оптимизация) 

Коэффициент Шарпа

(тестирование) 

TEMAПериод - 44, Growth factor - 0.0002829.62 1072.762.393.93 1.32 1.41 0.10.13
NRMAПериод - 10, Growth factor - 0.0001772.78 415.261.490.89 1.26 1.15 0.090.05
DEMAПериод - 49, Growth factor - 0.0002541.22 575.921.211.68 1.24 1.31 0.090.10

Для NRMA тестирование получилось хуже, чем в статье. TEMA и DEMA показали хорошие результаты. 

Aleksandr Masterskikh
Aleksandr Masterskikh | 12 окт. 2017 в 11:05
Vitalii Starikov
Vitalii Starikov | 26 июл. 2020 в 17:53
Выводы неверны, т.к. элементарно разное количество сделок в проведенном тесте для разных МАшек. Как можно сравнивать ТЕМА с 482 сделками с VIDA для которой 333 сделки, к примеру? Для начала нужно провести одинаковое количество экспериментов. Потом можно будет говорить предметно. Но, опять же, это всё сферический конь в вакууме. По большому счету вообще невозможно сравнивать эти вещи на нестационарном процессе, коим является динамика курсов. То, что какая-то МАшка показала себя "лучше" где-то когда-то не означает, что когда ты поставишь её в реальную торговлю будет даже близкое что-то и наоборот. Поэтому всё случайно и выводы уже в принципе не могут быть приняты во внимание.
Использование фильтра Калмана в прогнозе направления цены Использование фильтра Калмана в прогнозе направления цены
Для успешного трейдинга почти всегда необходимы индикаторы, призванные отделить основное ценовое движение от шумовых колебаний. В этой статье рассматривается один из перспективнейших цифровых фильтров — фильтр Калмана. Описано его построение и использование на практике.
Новый подход к интерпретации классической и обратной дивергенции Новый подход к интерпретации классической и обратной дивергенции
В статье рассмотрены классический метод построения дивергенции и отличный от него способ интерпретации. Этот новый метод интерпретации положен в основу торговой стратегии, которая описана в статье.
Кроссплатформенный торговый советник: Стоп-уровни Кроссплатформенный торговый советник: Стоп-уровни
В этой статье рассматривается реализация стоп-уровней в торговом советнике, совместимая с платформами MetaTrader 4 и MetaTrader 5.
Глубокие нейросети (Часть IV). Создание, обучение и тестирование модели нейросети Глубокие нейросети (Часть IV). Создание, обучение и тестирование модели нейросети
В статье рассматриваются новые возможности пакета darch (v.0.12.0). Описаны результаты обучения глубокой нейросети с различными типами данных, структурой и последовательностью обучения. Проанализированы результаты.