1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Machine Learning for Finance in Python

Connected

Cvičení

Výpočet portfolií

Teď vygenerujeme portfolia, abychom pro každý měsíc našli to nejlepší. Funkce random.random() z knihovny numpy generuje náhodná čísla z rovnoměrného rozdělení. Následně je normalizujeme tak, aby jejich součet byl 1 – pomocí operátoru /=. Tato váhy pak použijeme k výpočtu výnosů a volatility. Výnosy jsou součtem součinů vah a jednotlivých výnosů. Volatilita je složitější a zahrnuje kovariance různých akcií.

Nakonec uložíme hodnoty do slovníků pro pozdější použití – jako klíče budou sloužit data jednotlivých měsíců.

V tomto příkladu generujeme pro každé datum jen 10 portfolií, aby kód běžel rychleji. V praxi by sis pro několik málo akcií chtěl/a vygenerovat spíše 1 000 až 5 000 náhodných portfolií.

Pokyny

100 XP
  • Vygeneruj 3 náhodná čísla pro váhy pomocí np.random.random().
  • Vypočítej returns jako skalární součin (np.dot(); vynásobí prvky po složkách a výsledky sečte) vektoru weights a měsíčních výnosů pro aktuální date v cyklu.
  • Pomocí metody .setdefault() přidej do slovníku portfolio_weights prázdný seznam ([]) pro aktuální date a poté do tohoto seznamu přidej weights metodou append.