CommencerCommencez gratuitement

Calculer les covariances pour la volatilité

En MPT, nous quantifions le risque via la volatilité. Le calcul de la volatilité d'un portefeuille est complexe et nécessite les covariances des rendements quotidiens. Nous allons maintenant parcourir chaque mois dans le DataFrame returns_monthly et calculer la covariance des rendements quotidiens.

Avec des index datetime pandas, vous pouvez accéder au mois et à l'année avec df.index.month et df.index.year. Nous allons utiliser cela pour créer un masque pour returns_daily qui nous donne les rendements quotidiens pour le mois et l'année en cours dans la boucle. Nous utiliserons ensuite le masque pour sous-sélectionner le DataFrame ainsi : df[mask]. Cela récupère les entrées du DataFrame returns_daily qui appartiennent au mois et à l'année en cours à chaque itération de la boucle. Enfin, nous utiliserons la méthode .cov() de pandas pour obtenir la covariance des rendements quotidiens.

Cet exercice fait partie du cours

<cours>Machine Learning pour la finance en Python</cours>
Voir le cours

Instructions de l’exercice

  • Parcourez l'index de returns_monthly.
  • Créez un masque pour returns_daily qui utilise le mois et l'année courants issus de returns_monthly, et faites-les correspondre au mois et à l'année courants de i dans la boucle.
  • Appliquez le masque à returns_daily et calculez les covariances avec .cov().

Exercice interactif pratique

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

# Daily covariance of stocks (for each monthly period)
covariances = {}
rtd_idx = returns_daily.index
for i in returns_monthly.____:    
    # Mask daily returns for each month and year, and calculate covariance
    mask = (rtd_idx.month == i.month) & (rtd_idx.____ == i.____)
    
    # Use the mask to get daily returns for the current month and year of monthy returns index
    covariances[i] = returns_daily[____].cov()

print(covariances[i])
Modifier et exécuter le code