Markowitzova portfolia

Úvod do řízení portfoliového rizika v Pythonu

Dakota Wixom

Quantitative Analyst | QuantCourse.com

100 000 náhodně vygenerovaných portfolií

Úvod do řízení portfoliového rizika v Pythonu

Sharpeho poměr

Sharpeho poměr měří výnos upravený o riziko.

Výpočet Sharpeho poměru (verze z roku 1966):

$$ S = \frac{ R_a - r_f }{\sigma_a} $$

  • S: Sharpeho poměr
  • $ R_a $: Výnos aktiva
  • $ r_f $: Bezriziková míra výnosu
  • $ \sigma_a $: Volatilita aktiva
Úvod do řízení portfoliového rizika v Pythonu

Efektivní hranice

Úvod do řízení portfoliového rizika v Pythonu

Markowitzova portfolia

Každý bod na efektivní hranici představuje optimální portfolio.

Tyto dva běžné body se nazývají Markowitzova portfolia:

  • MSR: portfolio s maximálním Sharpeho poměrem
  • GMV: portfolio s globální minimální volatilitou

Úvod do řízení portfoliového rizika v Pythonu

Výběr portfolia

Jak zvolit nejlepší portfolio?

  • Vyberte portfolio na hranici efektivní hranice
  • Vyšší výnos je dostupný za cenu vyššího rizika
Úvod do řízení portfoliového rizika v Pythonu

Výběr MSR v Pythonu

Za předpokladu, že DataFrame df náhodných portfolií obsahuje sloupce Volatility a Returns:

numstocks = 5
risk_free = 0
df["Sharpe"] = (df["Returns"] - risk_free) / df["Volatility"]
MSR = df.sort_values(by=['Sharpe'], ascending=False)
MSR_weights = MSR.iloc[0, 0:numstocks]
np.array(MSR_weights)
array([0.15, 0.35, 0.10, 0.15, 0.25])
Úvod do řízení portfoliového rizika v Pythonu

Minulá výkonnost nezaručuje budoucí výnosy

Přestože portfolio s maximálním Sharpeho poměrem zní lákavě, v praxi je predikce výnosů velmi obtížná.

Úvod do řízení portfoliového rizika v Pythonu

Výběr GMV v Pythonu

Za předpokladu, že DataFrame df náhodných portfolií obsahuje sloupce Volatility a Returns:

numstocks = 5
GMV = df.sort_values(by=['Volatility'], ascending=True)
GMV_weights = GMV.iloc[0, 0:numstocks]
np.array(GMV_weights)
array([0.25, 0.15, 0.35, 0.15, 0.10])
Úvod do řízení portfoliového rizika v Pythonu

Pojďme cvičit!

Úvod do řízení portfoliového rizika v Pythonu

Preparing Video For Download...