Odhad rizika ocasů

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

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Odhad rizika ocasů

Riziko ocasů je riziko extrémních investičních výsledků, zejména na záporné straně rozdělení.

  • Historický pokles
  • Value at Risk
  • Podmíněná Value at Risk
  • Simulace Monte Carlo
Úvod do řízení portfoliového rizika v Pythonu

Historický pokles

Pokles je procentuální ztráta oproti historickému maximu kumulativního výnosu.

$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$

  • $r_t$: Kumulativní výnos v čase t
  • $RM$: Průběžné maximum
Historický pokles ETF USO Oil

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

Historický pokles v Pythonu

Předpokládejme, že cum_rets je np.array kumulativních výnosů v čase

running_max = np.maximum.accumulate(cum_rets)
running_max[running_max < 1] = 1
drawdown = (cum_rets) / running_max - 1
drawdown
Date        Return
2007-01-03    -0.042636
2007-01-04    -0.081589
2007-01-05    -0.073062
Úvod do řízení portfoliového rizika v Pythonu

Historická Value at Risk

Value at Risk, neboli VaR, je prahová hodnota s danou hladinou spolehlivosti, že ztráty nepřekročí (přesněji: historicky nepřekročily) určitou úroveň.

VaR se obvykle uvádí pro kvantily 95, 99 a 99,9.

Příklad: VaR(95) = -2,3 %

S 95% jistotou ztráty nepřekročí -2,3 % za daný den na základě historických hodnot.

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

Historická Value at Risk v Pythonu

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
Úvod do řízení portfoliového rizika v Pythonu

Historický očekávaný deficit

Podmíněná Value at Risk, neboli CVaR, odhaduje průměrné ztráty v nejhorších 1 - x % scénářů.

CVaR se obvykle uvádí pro kvantily 95, 99 a 99,9.

 

Příklad: CVaR(95) = -2,5 %

 

V nejhorších 5 % případů ztráty historicky průměrně přesahovaly -2,5 %.

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

Historický očekávaný deficit v Pythonu

Předpokládejme, že StockReturns je časová řada výnosů akcií.

Výpočet historického CVaR(95):

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Úvod do řízení portfoliového rizika v Pythonu

Lass uns üben!

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

Preparing Video For Download...