Oynaklık için kovaryansları hesapla
MPT'de riski oynaklıkla ölçeriz. Portföy oynaklığını hesaplama matematiği karmaşıktır ve günlük getirilerin kovaryanslarını gerektirir. Şimdi returns_monthly DataFrame'indeki her ayı döngüyle gezeceğiz ve günlük getirilerin kovaryansını hesaplayacağız.
pandas datetime indeksleriyle, aya ve yıla df.index.month ve df.index.year ile erişebiliriz. Bunu, döngüdeki geçerli ay ve yıla ait günlük getirileri veren bir maske oluşturmak için returns_daily üzerinde kullanacağız. Daha sonra maskeyi şu şekilde DataFrame'i alt kümelemek için kullanırız: df[mask]. Bu, döngünün her turunda returns_daily DataFrame'inde geçerli ay ve yılda olan girdileri getirir. Son olarak, günlük getirilerin kovaryansını almak için pandas'ın .cov() metodunu kullanacağız.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
returns_monthlyindeksinde döngü yap.returns_dailyiçin,returns_monthly'den geçerli ay ve yılı kullanarak ve döngüdekii'nin ay ve yılıyla eşleştirerek bir maske oluştur.- Maskeyi
returns_dailyüzerinde kullan ve.cov()ile kovaryansları hesapla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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])