ÎncepețiÎncepe gratuit

Calculează covarianțele pentru volatilitate

În MPT, cuantificăm riscul prin volatilitate. Matematica pentru calculul volatilității unui portofoliu este complexă și necesită covarianțele randamentelor zilnice. Vom parcurge în buclă fiecare lună din DataFrame-ul returns_monthly și vom calcula covarianța randamentelor zilnice.

Cu indici datetime în pandas, putem accesa luna și anul cu df.index.month și, respectiv, df.index.year. Vom folosi acest lucru pentru a crea o mască pentru returns_daily care să ne ofere randamentele zilnice pentru luna și anul curent din buclă. Apoi aplicăm masca pentru a filtra DataFrame-ul astfel: df[mask]. Aceasta extrage intrările din returns_daily corespunzătoare lunii și anului curent din fiecare iterație a buclei. În final, vom folosi metoda .cov() din pandas pentru a obține covarianța randamentelor zilnice.

Acest exercițiu face parte din cursul

Machine Learning pentru finanțe în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Parcurge în buclă indexul lui returns_monthly.
  • Creează o mască pentru returns_daily care să folosească luna și anul curent din returns_monthly și să le compare cu luna și anul din i în buclă.
  • Aplică masca pe returns_daily și calculează covarianțele folosind .cov().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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])
Editează și rulează codul