CommencerCommencer gratuitement

Une stratégie populaire basée sur l’autocorrélation

Une anomalie déroutante sur les actions est que les investisseurs ont tendance à surréagir aux nouvelles. Après de fortes hausses ou baisses, les cours ont tendance à se retourner. On parle de retour à la moyenne des cours : après de grands mouvements, les prix rebondissent ou reviennent vers leurs niveaux précédents, un phénomène observé sur des horizons d’environ une semaine. D’un point de vue plus mathématique, on dit que les rendements des actions sont négativement autocorrélés.

Cette idée simple est en fait à la base d’une stratégie populaire de hedge fund. Si vous êtes curieux d’en savoir plus sur cette stratégie (ce n’est pas nécessaire pour la suite du cours), consultez ici.

Vous allez examiner l’autocorrélation des rendements hebdomadaires de l’action MSFT de 2012 à 2017. Vous partirez d’un DataFrame MSFT de prix quotidiens. Vous devez utiliser la méthode .resample() pour obtenir des prix hebdomadaires, puis calculer les rendements à partir des prix. Utilisez la méthode pandas .autocorr() pour obtenir l’autocorrélation et montrer qu’elle est négative. Notez que la méthode .autocorr() ne fonctionne que sur les Series, pas sur les DataFrames (même avec une seule colonne) ; vous devrez donc sélectionner la colonne dans le DataFrame.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • Utilisez la méthode .resample() avec rule='W' suivie de la fonction .last() pour convertir les données quotidiennes en données hebdomadaires.
  • Créez un nouveau DataFrame, returns, des variations en pourcentage des prix hebdomadaires à l’aide de la méthode .pct_change().
  • Calculez l’autocorrélation avec la méthode .autocorr() sur la série des cours de clôture ajustés, c’est-à-dire la colonne 'Adj Close' du DataFrame returns.

Exercice interactif pratique

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

# Convert the daily data to weekly data
MSFT = MSFT.resample(___).___

# Compute the percentage change of prices
returns = MSFT.___

# Compute and print the autocorrelation of returns
autocorrelation = returns[___].___
print("The autocorrelation of weekly returns is %4.2f" %(autocorrelation))
Modifier et exécuter le code