Zacznij terazZacznij za darmo

Obliczanie kowariancji dla zmienności

W MPT ryzyko mierzymy za pomocą zmienności. Matematyka stojąca za obliczaniem zmienności portfela jest złożona i wymaga macierzy kowariancji dziennych stóp zwrotu. Przejdziemy teraz pętlą przez każdy miesiąc w DataFrame returns_monthly i obliczymy kowariancję dziennych stóp zwrotu.

Przy użyciu indeksów datetime w pandas możemy uzyskać dostęp do miesiąca i roku za pomocą df.index.month oraz df.index.year. Posłuży to do stworzenia maski dla returns_daily, która wyodrębni dzienne stopy zwrotu dla bieżącego miesiąca i roku w pętli. Maskę stosujemy do podzbioru DataFrame w ten sposób: df[mask]. Dzięki temu pobieramy z DataFrame returns_daily tylko wpisy odpowiadające aktualnemu miesiącowi i rokowi w każdym kroku pętli. Na koniec użyjemy metody .cov() z pandas, aby obliczyć kowariancję dziennych stóp zwrotu.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Przejdź pętlą przez indeks returns_monthly.
  • Utwórz maskę dla returns_daily, która używa bieżącego miesiąca i roku z returns_monthly i dopasowuje je do bieżącego miesiąca i roku ze zmiennej i w pętli.
  • Zastosuj maskę na returns_daily i oblicz kowariancje za pomocą .cov().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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])
Edytuj i uruchom kod