Секреты TSLab | Торговые роботы | События
27 Дек

3 вещи которые вы не знали о EMA

3 вещи которые вы не знали о ЕМА

или как нас обманывают индикаторы

 Последние две мои статьи Чудеса поведенческой математики 2 и Что общего между тетей Глашей и торговыми роботами охватывают достаточно общие вопросы. Данная статья более конструктивна и нацелена на всех трейдеров которые создают торговые роботы c EMA или  используют в торговле индикаторы в которых используется экспоненциальная скользящая средняя (EMA). Цель статьи, показать особенности и опасности данных индикаторов. Нигде не встречал информации по данной теме и сам долго не обращал на это внимание потому, что редко использовал подобные индикаторы.

экспоненциальная скользящая средняя

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

Экспоненциальная скользящая средняя считает более поздние данные более важными. Следовательно, этот вид среднего скользящего быстрее реагирует на изменения цены чем другие виды скользящих (простая SMA или взвешенная WMA). Расчет производится по формуле:

EMA[k, n] = EMA[k-1, n]+(2/(n+1))·(P-EMA[k-1, n])

где

  • EMA[k, n] — экспоненциальное скользящее среднее периода n на момент k

  • P — текущая цена

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

те самые 3 вещи о которых вы не знали:

  1.  Экспоненциальная скользящая средняя обладает бесконечной памятью. Это значит что любое изменение данных в прошлом,  приводит к  изменению результатов в настоящем. Чем более отдаленное прошлое, тем меньшее влияние оказыает на настоящее.
  2. Экспоненциальная скользящая средняя  не может быть расчитана на коротком отрезке истории. Это приведет к перерисовке настоящего.
  3. Экспоненциальная скользящая средняя может убить ваш счет в реале, имея идеальные показатели в тесте.

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

 

бесконечная память

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

Подадим в скрипт 100 свечек. Расчитаем ЕМА по этим данным с периодом 50. Потом подменим 30, 31, 32 свечки на другие. Посмотрим как ведет себя экспоненциальная скользящая средняя. Важно помнить, что мы изменяем свечки ЗА пределами периода ЕМА. На графиках серым цветом выделяется та часть данных которая находится за пределами периода ЕМА для последнего значения скользящей. Для сравнения аналогичную операцию проведу на простой SMA и проанализирую отличия от ЕМА.

экспоненциальная скользящая средняя 50 периода по 100 свечкам

Рисунок 1. Расчет ЕМА50 по 100 свечкам.

экспоненциальная скользящая средняя 50 периода по 100 свечкам с заменой

Рисунок 2. Расчет ЕМА50 по 100 свечкам с заменой 3-х свечек

Пунктиром обозначена экспоненциальная скользящая средняя по исходным данным, а зеленая сплошная линия является текущей ЕМА, построенной по инструменту с подменой свечек. На нижней панели представлена дельта между исходным и текущим значением ЕМА. Как видно, в точке подмены данных эта дельта максимальна и со временем она убывает. НО даже спустя больше чем 50 свечек(период ЕМА) эта дельта все равно остается и равна 21 пункт.

 

Рисунок 3. Расчет SМА50 по 100 свечкам с заменой 3-х свечек

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

Выводы: нужно быть внимательным с историей для ЕМА. Любые изменения прошлого влекут за собой последствия в будущем.

 

перерисовка текущих значений

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

 

Рисунок 4. Расчет ЕМА50 по 60 свечкам со сдвигом окна.

 Что видим на рисунке 4? Есть две кривых ЕМА, обе построены на период 50. Зеленая построена БЕЗ использования самой первой свечки, но с использованием последней. Синяя построена с использованием первой свечки, но БЕЗ использования последней свечки. Таким образом на одном графике мы эмулируем сдвиг окна расчета ЕМА. На графике дельты видно что расхождение в начальной фазе расчета весьма велико, но там еще скользящая не сформирована, поэтому внимания большого не обращаем. Смотрим в конец графика на предпоследний столбец гистограммы. Последний столбец не учитываем, так как расчет синей скользящей для этого столбца некорректен. Предпоследний показывает 140 пунктов разницы. Интересный поворот.

Теперь представим что мы провели тест на истории и поставили робота в торговлю, но обрезали историю оставив 5 периодов ЕМА. В нашем случае это 250 свечек. Посмотрим что произойдет со значением ЕМА.

Рисунок 5. Расчет ЕМА50 по всей истории и по 250 последним свечкам.

 На рисунке опять построены две ЕМА. Одна посчитана по всей истории (чуть больше 2000 свечек), а другая по последним 250 свечкам. Как видно даже при таком раскладе на графике дельты есть разница в пол пункта. Это не критично, НО разница есть. Даже 5 периодов исторических данных не спасает нас от перерисовки полностью.

Теперь попробуем проанализировать возможные отклонения ЕМА50 если расчитывать скользящую по 100 свечкам и по 250. 2 периода и 5 периодов. Это поможет нам выяснить насколько большими могут быть искажения данных.

Рисунок 6. Дельта расчета ЕМА50 по всей истории и по 250 последним свечкам.

Разница получилась не больше 3-х пунктов в самом волатильном месте.  В общем и целом можно закрывать на это глаза. 5 периодов истории достаточно.

Рисунок 7. Дельта расчета ЕМА50 по всей истории и по 100 последним свечкам.

Разница получилась больше 1000 пунктов в самом волатильном месте.  Думаю на это уже стоит обратить внимание. 1000 пунктов весьма большая величина чтобы оставить это без внимания.

Вывод: если подавать в скрипт фиксированное число свечек и пробовать по этому торговать, то результат может быть непредсказуем, вследствие перерисовки значений ЕМА. Разница в значениях на каждом расчете ЕМА может быть 1000 пунктов и более. Естественно, входы в позицию и выходы при перерисовке не могут быть корректными. НЕЛЬЗЯ подавать глубину истории меньше чем 5 периодов скользящей.

Благодаря этому исследованию стали возможны адаптивные индикаторы aEMA, aATR и другие.

влияние на результаты стратегии

Попробуем оценить возможное влияние неправильного расчета ЕМА на результаты стратегии. Для этого используем самую простую стратегию на двух ЕМА (быстрая 25 и медленная 50). Когда быстрая пересекает медленную вверх, входим в лонг, обратное пересечение и мы входим. Только лонг.

Рисунок 8. Результат при расчете ЕМА по всей истории (типичный случай).

Рисунок 9. Результат при расчете ЕМА по ограниченной истории в 2 периода.

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

 

выводы

  • обязательно изучать индикаторы, которые вы применяете, и особо осторожно подходить к использующим ЕМА внутри себя.

  • как при тестировании так и в реальной торговле ваши торговые роботы должны оперировать одинаковой глубиной исторических данных при расчете ЕМА. Если это обеспечить невозможно, подаем не меньше чем 5 периодов ЕМА в МТС.

  • запрещается применять ЕМА на глубине исторических данных меньше чем 5 периодов ЕМА. Аналогом является WMA, которая не имеет бесконечной памяти и может применяться без ограничений ЕМА.

PS: все расчеты и графики выполнены в программе TSLab с применением TSLab API.


comments powered by HyperComments

Павел Дуков
2015-11-30 19:14:58
спасибо
Bogdan Nekrasov
2016-09-03 10:37:22
спс за статью
Maks Usanin
2016-10-13 15:18:33
Почему редко используешь ЕМА, что предпочитаешь вместо?
ra81
2016-10-17 14:21:17
wma обладает схожими характеристиками но нет бесконечной памяти и результат не будет отличаться от теста так сильно как с ЕМА, с ней вообще одно время была куча проблем. Потом либо люди поумнели либо просто до меня проблемы не доходят.
14
Июл
2017

Доверительное управление. Результаты в июне 2017 года.

Доверительное управление. Результаты в июне 2017 года. Июнь индекс РТС вновь провел преимущественно в боковых движениях, а… »

11
Июн
2017

Доверительное управление. Результаты в мае 2017 года.

Доверительное управление. Результаты в мае 2017 года. В мае “болтанка” индекса РТС продолжилась, на паре… »

7
Май
2017

Доверительное управление. Результаты в апреле 2017 года.

Доверительное управление. Результаты в апреле 2017 года. В апреле мы наблюдали очередной месяц “боковика” по… »

2
Апр
2017

Доверительное управление. Результаты в марте 2017 года.

Доверительное управление. Результаты в марте 2017 года. В марте волатильность на рынке несущественно выросла. Все… »

7
Мар
2017

Доверительное управление. Результаты в феврале 2017 года.

Доверительное управление. Результаты в феврале 2017 года. Февраль был самым коротким торговым месяцем, к тому же… »