Medie mobili come indicatori di trend

Trading finanziario con Python

Chelsea Yang

Data Science Instructor

Cosa sono gli indicatori tecnici?

  • Calcoli matematici su dati storici di mercato
  • Presuppongono un mercato efficiente: il prezzo incorpora tutta l'informazione pubblica
  • Aiutano a capire gli schemi dei prezzi passati
Trading finanziario con Python

Tipi di indicatori

  • Indicatori di trend: misurano direzione o forza del trend
    • Esempio: medie mobili (MA), Average Directional Movement Index (ADX)
  • Indicatori di momentum: misurano la velocità del movimento dei prezzi
    • Esempio: Relative Strength Index (RSI)
  • Indicatori di volatilità: misurano l'ampiezza delle deviazioni dei prezzi
    • Esempio: Bande di Bollinger
Trading finanziario con Python

Il pacchetto TA-Lib

TA-Lib : Technical Analysis Library

  • Include oltre 150 implementazioni di indicatori tecnici
import talib
Trading finanziario con Python

Indicatori di media mobile

  • SMA: Simple Moving Average
  • EMA: Exponential Moving Average

 

  • Caratteristiche:
    • Si muovono con il prezzo
    • Smussano i dati per indicare meglio la direzione del prezzo
Trading finanziario con Python

Simple Moving Average (SMA)

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

# Calcola due SMA
stock_data['SMA_short'] = talib.SMA(stock_data['Close'], timeperiod=10)
stock_data['SMA_long'] = talib.SMA(stock_data['Close'], timeperiod=50)

# Stampa le ultime cinque righe 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

Trading finanziario con Python

Rappresentare la SMA

import matplotlib.pyplot as plt

# Traccia le SMA con il prezzo
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')

# Personalizza e mostra il grafico
plt.legend()
plt.title('SMAs')
plt.show()

Grafico delle SMA

Trading finanziario con Python

Exponential Moving Average (EMA)

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

$multiplier = 2 / (n + 1)$

# Calcola due EMA
stock_data['EMA_short'] = talib.EMA(stock_data['Close'], timeperiod=10)
stock_data['EMA_long'] = talib.EMA(stock_data['Close'], timeperiod=50)
# Stampa le ultime cinque righe
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
Trading finanziario con Python

Rappresentare la EMA

import matplotlib.pyplot as plt
# Traccia le EMA con il prezzo
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')

# Personalizza e mostra il grafico
plt.legend()
plt.title('EMAs')
plt.show()

Grafico delle EMA

Trading finanziario con Python

SMA vs. EMA

L'EMA è più sensibile ai movimenti di prezzo recenti

Un grafico che mostra SMA vs EMA calcolate con la stessa finestra di lookback

Trading finanziario con Python

Esercitiamoci!

Trading finanziario con Python

Preparing Video For Download...