Aan de slagGa gratis aan de slag

Een MA-model toepassen

Het schommelen van de aandelenkoers tussen bied en laat veroorzaakt een negatieve autocorrelatie van orde 1, maar geen autocorrelaties bij vertragingen hoger dan 1. Je krijgt hetzelfde ACF-patroon met een MA(1)-model. Daarom ga je een MA(1)-model fitten op de intraday-aandeelgegevens uit de vorige oefening.

De eerste stap is om minuut-tot-minuutrendementen te berekenen uit de koersen in intraday, en de autocorrelatiefunctie te plotten. Je zou moeten zien dat de ACF eruitziet zoals bij een MA(1)-proces. Pas daarna de data aan met een MA(1), op dezelfde manier als je deed voor gesimuleerde data.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in Python

Cursus bekijken

Oefeninstructies

  • Importeer de modules plot_acf en ARIMA uit statsmodels
  • Bereken minuut-op-minuutrendementen uit prijzen:
    • Bereken rendementen met de methode .pct_change()
    • Gebruik de pandas-methode .dropna() om de eerste rij met rendementen (NaN) te verwijderen
  • Plot de ACF met vertragingen tot 60 minuten
  • Fit de rendementen op een MA(1)-model en print de MA(1)-parameter

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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])
Code bewerken en uitvoeren