IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa i moduli plot_acf e ARIMA da 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
  • 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])
Modifica ed esegui il codice