Moderní teorie portfolia

Kvantitativní řízení rizik v Pythonu

Jamsheed Shorish

Computational Economist

Kompromis mezi rizikem a výnosem

  • Rizikové faktory: zdroje nejistoty ovlivňující výnos
  • Intuitivně: větší nejistota (vyšší riziko) je kompenzována vyšším výnosem
  • Výnos nelze zaručit: nutná míra očekávaného výnosu
    • průměrný (střední) historický výnos: proxy pro očekávaný budoucí výnos
Kvantitativní řízení rizik v Pythonu

Chuť investora k riziku

  • Průzkum investorů: minimální požadovaný výnos pro danou míru rizika?
  • Odpověď vytváří datový bod rizikového profilu (riziko, výnos)
  • Změna úrovně rizika => sada bodů (riziko, výnos)
  • Chuť investora k riziku: definuje kvantifikovaný vztah mezi rizikem a výnosem
Kvantitativní řízení rizik v Pythonu

Volba vah portfolia

  • Změna vah portfolia pro dané portfolio => vytváří sadu párů (riziko, výnos)
  • Změna vah = začátek řízení rizik!
  • Cíl: změnit váhy pro maximalizaci očekávaného výnosu při dané míře rizika
    • Ekvivalentně: minimalizovat riziko při dané úrovni očekávaného výnosu
  • Změna vah = úprava rizikové expozice investora
Kvantitativní řízení rizik v Pythonu

Moderní teorie portfolia

  • Efektivní portfolio: portfolio s vahami generujícími nejvyšší očekávaný výnos pro danou míru rizika
  • Moderní teorie portfolia (MPT), 1952
    • H. M. Markowitz (Nobelova cena 1990)
  • Vektor vah efektivního portfolia $w^\star$ řeší:

Rovnice optimalizačního problému pro nalezení efektivního portfolia

Kvantitativní řízení rizik v Pythonu

Efektivní hranice

  • Výpočet mnoha efektivních portfolií pro různé úrovně rizika
  • Efektivní hranice: množina párů (riziko, výnos) efektivních portfolií
  • Knihovna PyPortfolioOpt: optimalizované nástroje pro MPT
    • Třída EfficientFrontier: generuje jedno optimální portfolio najednou
    • Třída Constrained Line Algorithm (CLA): generuje celou efektivní hranici
      • Vyžaduje kovarianční matici výnosů
      • Vyžaduje proxy pro očekávané budoucí výnosy: průměrné historické výnosy
Kvantitativní řízení rizik v Pythonu

Portfolio investiční banky 2005–2010

  • Očekávané výnosy: historická data
  • Kovarianční matice: Covariance Shrinkage zlepšuje přesnost odhadu
  • Objekt Constrained Line Algorithm CLA
  • Portfolio s minimální variancí: cla.min_volatility()
  • Efektivní hranice: cla.efficient_frontier()

 

expected_returns = mean_historical_return(prices)

efficient_cov = CovarianceShrinkage(prices).ledoit_wolf()
cla = CLA(expected_returns, efficient_cov)
minimum_variance = cla.min_volatility()
(ret, vol, weights) = cla.efficient_frontier()
Kvantitativní řízení rizik v Pythonu

Vizualizace efektivní hranice

  • Bodový graf párů (volatilita, výnos)

Graf efektivní hranice jako série párů (riziko, výnos)

Kvantitativní řízení rizik v Pythonu

Vizualizace efektivní hranice

  • Bodový graf párů (volatilita, výnos)
  • Portfolio s minimální variancí: nejnižší volatilita ze všech efektivních portfolií

Portfolio s minimální variancí zvýrazněné na grafu efektivní hranice

Kvantitativní řízení rizik v Pythonu

Vizualizace efektivní hranice

  • Bodový graf párů (volatilita, výnos)
  • Portfolio s minimální variancí: nejnižší volatilita ze všech efektivních portfolií
  • Rostoucí chuť k riziku: pohyb podél hranice

Pohyb podél efektivní hranice znázorněný šipkou směřující k vyššímu riziku a výnosu

Kvantitativní řízení rizik v Pythonu

Pojďme si procvičit!

Kvantitativní řízení rizik v Pythonu

Preparing Video For Download...