MA як індикатори тренду

Фінансовий трейдинг у Python

Chelsea Yang

Data Science Instructor

Що таке технічні індикатори?

  • Математичні розрахунки на основі історичних ринкових даних
  • Припускають ефективний ринок: ціна враховує всю публічну інформацію
  • Допомагають зрозуміти минулі цінові патерни
Фінансовий трейдинг у Python

Типи індикаторів

  • Індикатори тренду: вимірюють напрям або силу тренду
    • Приклад: ковзні середні (MA), Average Directional Movement Index (ADX)
  • Індикатори імпульсу: вимірюють швидкість руху ціни
    • Приклад: Relative Strength Index (RSI)
  • Індикатори волатильності: вимірюють величину відхилень ціни
    • Приклад: смуги Боллінджера
Фінансовий трейдинг у Python

Пакет TA-Lib

TA-Lib : бібліотека технічного аналізу

  • Містить 150+ реалізацій технічних індикаторів
import talib
Фінансовий трейдинг у Python

Індикатори ковзної середньої

  • SMA: Simple Moving Average (проста ковзна середня)
  • EMA: Exponential Moving Average (експоненційна ковзна середня)

 

  • Властивості:
    • Рухаються разом із ціною
    • Згладжують дані, щоб краще показати напрям ціни
Фінансовий трейдинг у Python

Проста ковзна середня (SMA)

$ SMA = (P_1+P_2+...+P_n)/n $

# Обчисліть дві SMA
stock_data['SMA_short'] = talib.SMA(stock_data['Close'], timeperiod=10)
stock_data['SMA_long'] = talib.SMA(stock_data['Close'], timeperiod=50)

# Виведіть останні пʼять рядків print(stock_data.tail())
             Close  SMA_short  SMA_long
Date                                   
2020-11-24 1768.88    1758.77   1594.74
2020-11-25 1771.43    1760.65   1599.75
2020-11-27 1793.19    1764.98   1605.70
2020-11-30 1760.74    1763.35   1611.71
2020-12-01 1798.10    1765.02   1619.05

Фінансовий трейдинг у Python

Побудова SMA

import matplotlib.pyplot as plt

# Побудуйте SMA разом із ціною
plt.plot(stock_data['SMA_short'], 
         label='SMA_short')
plt.plot(stock_data['SMA_long'], 
         label='SMA_long')
plt.plot(stock_data['Close'], 
         label='Close')

# Налаштуйте та покажіть графік
plt.legend()
plt.title('SMAs')
plt.show()

Графік SMAs

Фінансовий трейдинг у Python

Експоненційна ковзна середня (EMA)

$EMA_n = P_n \times multiplier + \text{previous EMA} \times (1-multiplier)$

$multiplier = 2 / (n + 1)$

# Обчисліть дві EMA
stock_data['EMA_short'] = talib.EMA(stock_data['Close'], timeperiod=10)
stock_data['EMA_long'] = talib.EMA(stock_data['Close'], timeperiod=50)
# Виведіть останні пʼять рядків
print(stock_data.tail())
             Close  EMA_short  EMA_long
Date                                   
2020-11-24 1768.88    1748.65   1640.98
2020-11-25 1771.43    1752.79   1646.09
2020-11-27 1793.19    1760.13   1651.86
2020-11-30 1760.74    1760.24   1656.13
2020-12-01 1798.10    1767.13   1661.70
Фінансовий трейдинг у Python

Побудова EMA

import matplotlib.pyplot as plt
# Побудуйте EMA разом із ціною
plt.plot(stock_data['EMA_short'], 
         label='EMA_short')
plt.plot(stock_data['EMA_long'], 
         label='EMA_long')
plt.plot(stock_data['Close'], 
         label='Close')

# Налаштуйте та покажіть графік
plt.legend()
plt.title('EMAs')
plt.show()

Графік EMA

Фінансовий трейдинг у Python

SMA vs. EMA

EMA чутливіша до найсвіжішого руху ціни

Графік для порівняння SMA та EMA з однаковим вікном перегляду

Фінансовий трейдинг у Python

Давайте потренуємось!

Фінансовий трейдинг у Python

Preparing Video For Download...