Обчислення коваріацій для волатильності
У MPT ризик кількісно оцінюють через волатильність. Математика обчислення волатильності портфеля є складною й потребує коваріацій денних доходностей. Тепер ми проітеруємося по кожному місяцю в датафреймі returns_monthly й обчислимо коваріацію денних доходностей.
За допомогою індексів з датою й часом у pandas можна звертатися до місяця та року через df.index.month і df.index.year. Ми використаємо це, щоб створити маску для returns_daily, яка дасть нам денні доходності для поточного місяця та року в циклі. Потім застосуємо маску, щоб підмножити датафрейм так: df[mask]. Це дістане записи з датафрейму returns_daily, що відповідають поточним місяцю та року на кожній ітерації циклу. Нарешті, скористаємося методом pandas .cov(), щоб отримати коваріацію денних доходностей.
Ця вправа є частиною курсу
Machine Learning для фінансів у Python
Інструкції до вправи
- Проітеруйтеся по індексу
returns_monthly. - Створіть маску для
returns_daily, яка використовує поточні місяць і рік зreturns_monthlyта співвідносить їх із поточними місяцем і роком зiу циклі. - Застосуйте маску до
returns_dailyй обчисліть коваріації за допомогою.cov().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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])