Calculer les covariances pour la volatilité
En MPT, on mesure le risque par 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 du DataFrame returns_monthly et calculer la covariance des rendements quotidiens.
Avec les index datetime de pandas, vous pouvez accéder au mois et à l'année avec df.index.month et df.index.year. Nous allons nous en servir pour créer un masque pour returns_daily qui nous donne les rendements quotidiens du mois et de l'année courants dans la boucle. Nous utilisons ensuite ce masque pour filtrer le DataFrame ainsi : df[mask]. Cela récupère les entrées de 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.
Cette activité fait partie du cours
Machine Learning pour la finance en Python
Instructions de l’exercice
- Parcourez l'index de
returns_monthly. - Créez un masque pour
returns_dailyqui utilise le mois et l'année en cours dereturns_monthlyet les fait correspondre au mois et à l'année 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])