Скользящие средние (moving average)

Теги: market-stocks 

Статья на вики

Общее название для семейства функций, значения которых в каждой точке определения равны некоторому среднему значению исходной функции за предыдущий период. Математически - это один из видов свертки.

Используются (в том числе) в аналитике [market-stocks]. На базе скольязих средних построен алгоритм [arima-alghoritm]. Основная задача - сглаживание краткосрочных колебаний во временных рядах.

Виды скользящих средних:

  • Простые скользящие средние (SMA)
  • Экспоненциальные скользящие средние (EMA)
  • Взвешенное скользящее среднее (WMA)

SMA - это среднее за некоторый период

\[SMA = \frac{A_1 + A_2 + ... + A_n}{n}\]

SMA для конкретной точки легко получить из предыдущего значения, что упрощает его расчет (позволяет избежать суммирования по всем значениям)

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

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

EMA - разновидность WMA, использует веса, которые убывают экспоненциально и никогда не равны нулю.

\[EMA = (Value_{today} * (\frac{Smothing}{1 + Days})) + EMA_{Yesteday} * (1 - (\frac{Smothing}{1 + Days}))\]

Здесь $Smothing$ - сглаживающий вес

Возможны EMA произвольного порядка.

Кроме того, применяются:

  • MMA (модифицированные скользящие средние)
  • MA на основе других усредняющих функций (среднее степенное, среднее квадратическое, среднее гармоническое и т.д., к примеру скользящая медиана SMM)
  • динамические MA
  • CMA (совокупные или кумулятивные скользящие средние) - среднее арифметическое значений итсходной функции за весь период наблюдений
  • кумулятивная сумма - сумма всех значений ряда нарастающим итогом

Пример реализации на python

pyEx - поставщик данных

смотри ссылку

Смотри [pandas-rolling-window]