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
Oefeninstructies
- Importeer de modules
plot_acfenARIMAuit 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
- Bereken rendementen met de methode
- 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])