Applicare un modello MA
Il rimbalzo del prezzo tra bid e ask induce un’autocorrelazione negativa al primo ordine, ma nessuna autocorrelazione a ritardi superiori a 1. Ottieni lo stesso andamento dell’ACF con un modello MA(1). Perciò, adatterai un modello MA(1) ai dati intraday dell’azione dell’esercizio precedente.
Il primo passo è calcolare i rendimenti minuto per minuto a partire dai prezzi in intraday e tracciare la funzione di autocorrelazione. Dovresti osservare che l’ACF assomiglia a quella di un processo MA(1). Poi, adatta i dati a un MA(1), come hai fatto con i dati simulati.
Questo esercizio fa parte del corso
Analisi delle serie temporali in Python
Istruzioni dell'esercizio
- Importa i moduli
plot_acfeARIMAda statsmodels - Calcola i rendimenti minuto per minuto a partire dai prezzi:
- Calcola i rendimenti con il metodo
.pct_change() - Usa il metodo di pandas
.dropna()per eliminare la prima riga dei rendimenti, che è NaN
- Calcola i rendimenti con il metodo
- Traccia la funzione ACF con ritardi fino a 60 minuti
- Adatta i rendimenti a un modello MA(1) e stampa il parametro MA(1)
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import plot_acf and ARIMA modules from statsmodels
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.tsa.arima.model import ARIMA
# Compute returns from prices and drop the NaN
returns = intraday.___
returns = returns.___
# Plot ACF of returns with lags up to 60 minutes
plot_acf(___, ___)
plt.show()
# Fit the data to an MA(1) model
mod = ARIMA(___, order=(0,0,1))
res = mod.fit()
print(res.params[1])