Kovarianzen für Volatilität berechnen
In der MPT quantifizieren wir Risiko über die Volatilität. Die Mathematik zur Berechnung der Portfolio-Volatilität ist komplex und benötigt Kovarianzen der täglichen Renditen. Wir gehen nun Monat für Monat durch das DataFrame returns_monthly und berechnen die Kovarianz der täglichen Renditen.
Mit Datetime-Indizes in pandas können wir mit df.index.month und df.index.year auf Monat und Jahr zugreifen. Damit erstellen wir eine Maske für returns_daily, die uns im Loop die täglichen Renditen für den aktuellen Monat und das aktuelle Jahr liefert. Anschließend nutzen wir die Maske, um das DataFrame so zu subsetten: df[mask]. So erhalten wir in jedem Durchlauf die Einträge in returns_daily, die im aktuellen Monat und Jahr liegen. Zum Schluss verwenden wir die pandas-Methode .cov(), um die Kovarianz der täglichen Renditen zu berechnen.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Iteriere über den Index von
returns_monthly. - Erstelle eine Maske für
returns_daily, die den aktuellen Monat und das aktuelle Jahr ausreturns_monthlynutzt und diese mit dem aktuellen Monat und Jahr ausiim Loop abgleicht. - Wende die Maske auf
returns_dailyan und berechne die Kovarianzen mit.cov().
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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])