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
Instrucțiuni pentru exercițiu
- Parcurge în buclă indexul lui
returns_monthly. - Creează o mască pentru
returns_dailycare să folosească luna și anul curent dinreturns_monthlyși să le compare cu luna și anul diniî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])