Appliquer un modèle MA
Les allers-retours du prix de l'action entre le cours acheteur et le cours vendeur entraînent une autocorrélation négative au premier retard, mais aucune autocorrélation pour des retards supérieurs à 1. Vous obtenez le même profil d'ACF avec un modèle MA(1). Vous allez donc ajuster un modèle MA(1) aux données intrajournalières de l'exercice précédent.
La première étape consiste à calculer les rendements minute par minute à partir des prix dans intraday, puis à tracer la fonction d'autocorrélation. Vous devriez constater que l'ACF ressemble à celle d'un processus MA(1). Ensuite, ajustez un modèle MA(1) aux données, comme vous l'avez fait pour des données simulées.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Importez les modules
plot_acfetARIMAde statsmodels - Calculez les rendements d'une minute à l'autre à partir des prix :
- Calculez les rendements avec la méthode
.pct_change() - Utilisez la méthode pandas
.dropna()pour supprimer la première ligne de rendements, qui est NaN
- Calculez les rendements avec la méthode
- Tracez la fonction ACF avec des retards allant jusqu'à 60 minutes
- Ajustez un modèle MA(1) aux rendements et affichez le paramètre MA(1)
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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])