Hitung kovarians untuk volatilitas
Dalam MPT, kita mengukur risiko melalui volatilitas. Perhitungan matematis untuk volatilitas portofolio cukup kompleks dan memerlukan kovarians return harian. Sekarang kita akan melakukan loop untuk setiap bulan dalam DataFrame returns_monthly, dan menghitung kovarians return harian.
Dengan indeks datetime di pandas, kita dapat mengakses bulan dan tahun dengan df.index.month dan df.index.year. Kita akan menggunakannya untuk membuat mask pada returns_daily yang memberikan return harian untuk bulan dan tahun saat ini dalam loop. Lalu kita gunakan mask tersebut untuk mengambil subset DataFrame seperti ini: df[mask]. Ini akan mengambil entri dalam DataFrame returns_daily yang berada pada bulan dan tahun saat ini pada setiap siklus loop. Terakhir, kita akan menggunakan metode .cov() dari pandas untuk memperoleh kovarians return harian.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
- Lakukan loop melalui indeks
returns_monthly. - Buat mask untuk
returns_dailyyang menggunakan bulan dan tahun saat ini darireturns_monthly, dan cocokkan dengan bulan dan tahun saat ini dariidalam loop. - Gunakan mask pada
returns_dailydan hitung kovarians menggunakan.cov().
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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])