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>Instructions de l’exercice
- Parcourez l'index de
returns_monthly. - Créez un masque pour
returns_dailyqui utilise le mois et l'année courants issus dereturns_monthly, et faites-les correspondre au mois et à l'année courants deidans la boucle. - Appliquez le masque à
returns_dailyet 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])