Stima del rischio di coda

Introduzione alla gestione del rischio di portafoglio in Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Stima del rischio di coda

Rischio di coda: rischio di esiti estremi d'investimento, soprattutto nel lato negativo della distribuzione.

  • Drawdown storico
  • Value at Risk
  • Conditional Value at Risk
  • Simulazione Monte Carlo
Introduzione alla gestione del rischio di portafoglio in Python

Drawdown storico

Il Drawdown è la perdita percentuale dal massimo cumulato storico.

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

  • $r_t$: Rendimento cumulato al tempo t
  • $RM$: Massimo progressivo
Drawdown storico dell'ETF USO (petrolio)

Introduzione alla gestione del rischio di portafoglio in Python

Drawdown storico in Python

Supponendo che cum_rets sia un np.array di rendimenti cumulati nel tempo

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
Introduzione alla gestione del rischio di portafoglio in Python

Value at Risk storico

Value at Risk (VaR) è una soglia tale che, a un dato livello di confidenza, le perdite non (storicamente) superano un certo livello.

Il VaR è spesso riportato con quantili 95, 99 e 99,9.

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

Con il 95% di confidenza, le perdite non superano -2,3% in un dato giorno sulla base dei valori storici.

Introduzione alla gestione del rischio di portafoglio in Python

Value at Risk storico in Python

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
Introduzione alla gestione del rischio di portafoglio in Python

Expected shortfall storico

Il Conditional Value at Risk (CVaR) stima la perdita media nei peggiori 1 - x% degli scenari.

Il CVaR è spesso riportato con quantili 95, 99 e 99,9.

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

Nel peggior 5% dei casi, storicamente le perdite sono state in media superiori a -2,5%.

Introduzione alla gestione del rischio di portafoglio in Python

Expected shortfall storico in Python

Supponi di avere un oggetto StockReturns, serie temporale dei rendimenti azionari.

Per calcolare il CVaR(95) storico:

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Introduzione alla gestione del rischio di portafoglio in Python

Esercitiamoci!

Introduzione alla gestione del rischio di portafoglio in Python

Preparing Video For Download...