Výpočet kovariancí pro volatilitu
V MPT kvantifikujeme riziko prostřednictvím volatility. Matematika výpočtu volatility portfolia je komplexní a vyžaduje kovariance denních výnosů. Nyní projdeme smyčkou každý měsíc v DataFrame returns_monthly a vypočítáme kovarianci denních výnosů.
Pomocí datetime indexů v pandas lze přistupovat k měsíci a roku přes df.index.month a df.index.year. Využijeme toho k vytvoření masky pro returns_daily, která nám v každém cyklu smyčky vrátí denní výnosy pro aktuální měsíc a rok. Masku pak použijeme k filtrování DataFrame: df[mask]. Tím získáme záznamy z returns_daily, které patří do aktuálního měsíce a roku v daném průchodu smyčkou. Nakonec použijeme metodu .cov() z pandas k výpočtu kovariance denních výnosů.
Toto cvičení je součástí kurzu
Machine Learning for Finance in Python
Pokyny k cvičení
- Projdi smyčkou index
returns_monthly. - Vytvoř masku pro
returns_daily, která využívá aktuální měsíc a rok zreturns_monthlya porovnává je s aktuálním měsícem a rokem z proměnnéiv smyčce. - Aplikuj masku na
returns_dailya vypočítej kovariance pomocí.cov().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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])