CommencerCommencer gratuitement

Appliquer un modèle MA

Les allers-retours du cours entre le bid et l’ask induisent une autocorrélation négative d’ordre 1, 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 observer que l’ACF ressemble à celle d’un processus MA(1). Ensuite, ajustez les données à un MA(1), comme vous l’avez fait pour des données simulées.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • Importez les modules plot_acf et ARIMA depuis statsmodels
  • Calculez les rendements minute à minute à 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
  • Tracez la fonction ACF avec des retards allant jusqu’à 60 minutes
  • Ajustez les rendements à un modèle MA(1) et affichez le paramètre MA(1)

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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])
Modifier et exécuter le code