1. Nauka
  2. /
  3. Kursy
  4. /
  5. Uczenie maszynowe w finansach z Pythonem

Connected

ćwiczenie

Obliczanie portfeli

Teraz wygenerujemy portfele, aby znaleźć najlepszy z nich dla każdego miesiąca. Funkcja random.random() z biblioteki numpy generuje losowe liczby z rozkładu jednostajnego – następnie normalizujemy je tak, by sumowały się do 1, używając operatora /=. Na podstawie tych wag obliczamy zwroty i zmienność. Zwroty to sumy iloczynów wag i indywidualnych zwrotów poszczególnych akcji. Zmienność jest bardziej złożona i uwzględnia kowariancje między różnymi akcjami.

Na koniec zapiszemy wartości w słownikach do późniejszego wykorzystania – jako klucze posłużą daty miesięcy.

W tym ćwiczeniu generujemy tylko 10 portfeli dla każdej daty, żeby kod działał szybciej. W prawdziwym zastosowaniu warto generować od 1000 do 5000 losowych portfeli dla kilku akcji.

Instrukcje

100 XP
  • Wygeneruj 3 losowe liczby dla wag, używając np.random.random().
  • Oblicz returns, wyznaczając iloczyn skalarny (np.dot(); mnoży elementy parami i sumuje dwie tablice) weights z miesięcznymi zwrotami dla bieżącej date w pętli.
  • Użyj metody .setdefault(), aby dodać pustą listę ([]) do słownika portfolio_weights dla bieżącej date, a następnie dołącz weights do tej listy.