Beräkna kovariansen för volatilitet
I MPT kvantifierar vi risk via volatilitet. Matematiken bakom beräkning av portföljvolatilitet är komplex och kräver kovariansen för dagliga avkastningar. Nu ska du loopa igenom varje månad i returns_monthly-DataFrame:en och beräkna kovariansen för de dagliga avkastningarna.
Med pandas datetime-index kan du komma åt månad och år via df.index.month respektive df.index.year. Det här använder du för att skapa en mask för returns_daily som ger dig de dagliga avkastningarna för aktuell månad och år i loopen. Sedan använder du masken för att filtrera DataFrame:en så här: df[mask]. Det ger dig posterna i returns_daily som tillhör aktuell månad och år i varje iteration av loopen. Slutligen använder du pandas-metoden .cov() för att beräkna kovariansen för de dagliga avkastningarna.
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Loopa igenom indexet för
returns_monthly. - Skapa en mask för
returns_dailysom använder aktuell månad och år frånreturns_monthlyoch matchar dessa mot aktuell månad och år frånii loopen. - Applicera masken på
returns_dailyoch beräkna kovariansen med.cov().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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])