Aan de slagBegin gratis

Covarianties berekenen voor volatiliteit

In MPT kwantificeren we risico via volatiliteit. De wiskunde voor het berekenen van portefeuillevermogen is complex en vereist covarianties van dagelijkse rendementen. We gaan nu door elke maand in de DataFrame returns_monthly loopen en de covariantie van de dagelijkse rendementen berekenen.

Met datetime-indexen in pandas kun je de maand en het jaar benaderen met df.index.month en df.index.year. We gebruiken dit om een mask voor returns_daily te maken dat ons de dagelijkse rendementen geeft voor de huidige maand en het huidige jaar in de lus. Vervolgens gebruiken we het mask om de DataFrame te subsetten zoals: df[mask]. Dit levert de rijen op in de DataFrame returns_daily die binnen de huidige maand en het huidige jaar vallen in elke cyclus van de lus. Tot slot gebruiken we de pandas-methode .cov() om de covariantie van de dagelijkse rendementen te berekenen.

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Loop door de index van returns_monthly.
  • Maak een mask voor returns_daily dat de huidige maand en het huidige jaar uit returns_monthly gebruikt, en dit matcht met de huidige maand en het huidige jaar van i in de lus.
  • Pas het mask toe op returns_daily en bereken de covarianties met .cov().

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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])
Code bewerken en uitvoeren