CommencezCommencez gratuitement

Une stratégie populaire fondée sur l'autocorrélation

Un phénomène intriguant avec les actions est que les investisseurs ont tendance à réagir de façon excessive aux nouvelles. Après de grands écarts, à la hausse comme à la baisse, les cours ont tendance à se renverser. On parle alors de retour à la moyenne des prix boursiers : après de fortes variations, les prix reviennent ou « rentrent » vers leurs niveaux antérieurs, ce qu'on observe sur des horizons d'environ une semaine. Une façon plus mathématique de décrire ce retour à la moyenne est de dire que les rendements boursiers présentent une autocorrélation négative.

Cette idée simple est en fait à la base d'une stratégie populaire de fonds spéculatif. Si vous êtes curieux d'en savoir plus sur cette stratégie (ce n'est toutefois pas nécessaire pour la suite du cours), consultez ce document.

Vous examinerez 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() fonctionne uniquement sur des Series, et non sur des DataFrame (même à une seule colonne), vous devrez donc sélectionner la colonne dans le DataFrame.

Cette activité fait partie du cours

Analyse des séries chronologiques en Python

Voir le cours

Instructions de l’exercice

  • 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, soit la colonne 'Adj Close' du DataFrame returns.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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