Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Loopa igenom indexet för returns_monthly.
  • Skapa en mask för returns_daily som använder aktuell månad och år från returns_monthly och matchar dessa mot aktuell månad och år från i i loopen.
  • Applicera masken på returns_daily och 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])
Redigera och kör kod