Скользящие средние (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]