ПочатиПочніть безкоштовно

Обчислення коваріацій для волатильності

У 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])
Редагувати та запускати код