В этой статье я покажу вам, как можно рассчитать экспоненциальную скользящую среднюю акции с помощью Python.

Шаг 1. Установите модули

Модули, которые нам понадобятся, перечислены ниже, и вы можете просто установить их с помощью pip3 install….

numpy==1.20.0
pandas==1.1.4
pandas-datareader==0.9.0
matplotlib==3.3.3

Шаг 2. Что такое экспоненциальная скользящая средняя

Хотя я не буду слишком углубляться в концепцию EMA (экспоненциальной скользящей средней), я дам вам краткий обзор того, что это такое. EMA - это тип индикатора скользящей средней, который придает больший вес или важность предыдущим ценам на акции. Существенное различие между EMA и SMA заключается в том, что EMA быстрее реагирует на восходящее движение цены по сравнению с SMA. Формула расчета EMA следующая.

Коэффициент сглаживания можно изменить по желанию, но обычно для этой переменной выбирается 2, и мы будем использовать именно его. При расчете EMA трейдеры используют различную длину дня, но обычно используется 10-дневный период, который мы и будем использовать.

Шаг 3. Как рассчитать EMA

На шаге 2 мы установили, что будем рассчитывать EMA для каждых 10 дней наблюдений. Первым шагом к вычислению EMA является фактическое вычисление SMA постоянной длины дня. В нашем случае мы сначала рассчитаем SMA первых 10 цен акций. Затем мы будем считать 10-дневную SMA нашим первым значением EMA. Теперь мы рассчитаем EMA для цены 11-го дня по формуле, которую я упоминал ранее. Вы можете повторять процесс использования формулы EMA несколько раз, пока не закончите расчет для всех цен акций.

Шаг 3.1. Пример

В этом примере мы будем вычислять 5-дневную EMA следующего набора чисел со значением сглаживания 2.

10, 11, 11.5, 10.75, 12, 11.75, 12.25, 14, 16, 17, 15.6, 15.75, 16, 14, 16.5, 17, 17.25, 18, 18.75, 20

Первое, что мы сделаем, это найдем SMA первых 5 чисел.

EMA = []
(10 + 11 + 11.5 + 10.75 + 12) / 5 = 11.05

Давайте добавим 11,05 в наш список EMA.

EMA = [11.05]

Теперь воспользуемся формулой EMA, чтобы рассчитать EMA для 6-го числа.

(11.75 x (2 / (1 + 5))) + 11.05 x (1 - (2 / (1 + 5))) = 11.28
Add 11.28 to our list of EMA: [11.05, 11.28]

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

11.05, 11.28, 11.61, 12.40, 13.60, 14.73, 15.02, 15.26, 15.51, 15.01, 15.50, 16.00, 16.42, 16.95, 17.55, 18.36

Шаг 4. Настройка кодирования

Пришло время начать кодирование. Мы можем начать с настройки основных вещей, которые нам понадобятся.
1. Импортируйте все необходимые модули
2. Создайте пустую функцию calculate_ema(prices, days, smoothing=2)
3. Получите данные о ценах на определенные акции. - (MSFT, 2015–01–01, 2016–01–01)

Шаг 5. Расчет EMA

Помните, что первый шаг к вычислению EMA набора чисел - это найти SMA первых чисел в константе длины дня. Есть два простых способа сделать это.

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

К концу этого шага ваш код должен выглядеть примерно так.

Шаг 6. Нанесение результатов

Мы можем построить график фактических цен на акции и рассчитанную EMA с помощью matplotlib.

Ваш сюжет должен выглядеть примерно так.

Заключение. Как использовать EMA для акций?

Хотя есть много способов использовать экспоненциальную скользящую среднюю акции для технического анализа, основное ее использование - это распознавание сигнала на покупку, когда линия EMA проходит под линией акции и направляется вверх. Сигнал на продажу можно распознать, когда линия EMA пересекает линию акций и направляется вниз. В заключение, я надеюсь, что вы узнали что-то новое и полезное из этой статьи, которую вы сможете использовать позже в своих проектах Python.