Skatta svansrisk

Introduktion till portföljriskhantering i Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Skatta svansrisk

Svansrisk är risken för extrema investeringsutfall, framför allt på förlustsidan av en fördelning.

  • Historiskt drawdown
  • Value at Risk
  • Conditional Value at Risk
  • Monte Carlo-simulering
Introduktion till portföljriskhantering i Python

Historiskt drawdown

Drawdown är den procentuella förlusten från det högsta kumulativa historiska värdet.

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

  • $r_t$: Kumulativ avkastning vid tidpunkt t
  • $RM$: Löpande maximum
Historiskt drawdown för USO Oil ETF

Introduktion till portföljriskhantering i Python

Historiskt drawdown i Python

Förutsatt att cum_rets är en np.array med kumulativ avkastning över tid

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
Introduktion till portföljriskhantering i Python

Historisk Value at Risk

Value at Risk, eller VaR, är ett tröskelvärde med en given konfidensnivå som anger att förluster inte kommer att överstiga en viss nivå (mer exakt: inte historiskt har överstigit den).

VaR anges vanligtvis med kvantiler som 95, 99 och 99,9.

Exempel: VaR(95) = -2,3%

95% säkert att förlusterna inte överstiger -2,3% under en given dag, baserat på historiska värden.

Introduktion till portföljriskhantering i Python

Historisk Value at Risk i Python

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
Introduktion till portföljriskhantering i Python

Historisk förväntad förlust

Conditional Value at Risk, eller CVaR, är en skattning av den förväntade förlusten i de värsta 1 - x% av scenarierna.

CVaR anges vanligtvis med kvantiler som 95, 99 och 99,9.

 

Exempel: CVaR(95) = -2,5%

 

I de värsta 5% av fallen översteg förlusterna i genomsnitt -2,5% historiskt.

Introduktion till portföljriskhantering i Python

Historisk förväntad förlust i Python

Förutsatt att du har ett objekt StockReturns som är en tidsserie med aktieavkastningar.

Så här beräknar du historisk CVaR(95):

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Introduktion till portföljriskhantering i Python

Nu kör vi en övning!

Introduktion till portföljriskhantering i Python

Preparing Video For Download...