Risico meten

Kwantitatief risicobeheer in Python

Jamsheed Shorish

CEO, Shorish Research

De verliesverdeling

  • Forex-voorbeeld:
    • Portefeuillewaarde in Amerikaanse dollars is USD 100
    • Risicofactor = wisselkoers EUR / USD
    • Portefeuille in EURO als 1 EUR = 1 USD: USD 100 x EUR 1 / USD 1 = EUR 100.
    • Portefeuille in EURO als r EUR = 1 USD: = USD 100 x EUR r / 1 USD = EUR 100 x r
    • Verlies = EUR 100 - EUR 100 x r = EUR 100 x (1 - r)
  • Verliesverdeling: Willekeurige realisaties van r => verdeling van toekomstige portefeuilleverliezen

Histogram van forex-verliezen

Kwantitatief risicobeheer in Python

Maximumverlies

  • Wat is het maximumverlies van een portefeuille?
  • Verliezen zijn niet met 100% zekerheid te begrenzen
  • Betrouwbaarheidsniveau: vervang 100% zekerheid door kans op bovengrens
  • Vragen als: "Wat is het maximumverlies dat 95% van de tijd optreedt?"
    • Hier is het betrouwbaarheidsniveau 95%.
Kwantitatief risicobeheer in Python

Value at Risk (VaR)

  • VaR: statistiek voor het maximale portefeuilleverlies bij een gegeven betrouwbaarheidsniveau
  • Gangbare niveaus: 95%, 99% en 99,5% (meestal als decimalen)
  • Forex-voorbeeld: Als 95% van de tijd de EUR/USD minstens 0,40 is, dan:
    • portefeuillewaarde is minimaal USD 100 x 0,40 EUR/USD = EUR 40,
    • portefeuilleverlies is maximaal EUR 40 - EUR 100 = EUR 60,
    • dus de 95% VaR is EUR 60.

Tijdreeks van EUR/USD met drempel 0,40

Kwantitatief risicobeheer in Python

Conditional Value at Risk (CVaR)

  • CVaR: meet het verwachte verlies, gegeven een minimumverlies gelijk aan de VaR
  • Gelijk aan de verwachte waarde van de staart van de verliesverdeling:
    • $$\textnormal{CVaR}(\alpha) := \frac{1}{1-\alpha}\mathbb{E} \int_{\textnormal{VaR}(\alpha)}^{\bar{x}} x f(x) dx,$$
    • $f(\cdot)$ = pdf van de verliesverdeling
    • $\bar{x}$ = bovengrens van het verlies (kan oneindig zijn)
    • $\textnormal{VaR}(\alpha)$ = VaR bij betrouwbaarheidsniveau $\alpha$.
  • Forex-voorbeeld:
    • 95% CVaR = verwacht verlies voor de 5% gevallen waarin de portefeuillewaarde lager is dan EUR 40

Plot van de verliesverdeling met VaR en CVaR-staart

Kwantitatief risicobeheer in Python

De VaR afleiden

  1. Kies een betrouwbaarheidsniveau, bijv. 95% (0,95)
  2. Maak een Series met loss-observaties
  3. Bereken loss.quantile() op het gekozen betrouwbaarheidsniveau
  4. VaR = uitkomst van .quantile() bij het gewenste niveau

  5. scipy.stats-verliesverdeling: percent point function .ppf() kan ook

loss = pd.Series(observations)

VaR_95 = loss.quantile(0.95) print("VaR_95 = ", VaR_95)
Var_95 = 1.6192834157254088
Kwantitatief risicobeheer in Python

De CVaR afleiden

  1. Kies een betrouwbaarheidsniveau, bijv. 95% (0,95)
  2. Maak of gebruik een steekproef uit de verliesverdeling
  3. Bereken VaR op het gekozen niveau, bijv. 0,95
  4. Bereken CVaR als verwachte verlies (Normaal: scipy.stats.norm.expect() doet dit).
losses = pd.Series(scipy.stats.norm.rvs(size=1000))

VaR_95 = scipy.stats.norm.ppf(0.95)
CVaR_95 = (1/(1 - 0.95))*scipy.stats.norm.expect(lambda x: x, lb = VaR_95)
print("CVaR_95 = ", CVaR_95)
CVaR_95 = 2.153595332530393
Kwantitatief risicobeheer in Python

De VaR visualiseren

  • Histogram van verliesverdeling voor 1000 trekkingen uit N(1,3)

Histogram van normaal verdeelde verliezen

Kwantitatief risicobeheer in Python

De VaR visualiseren

  • Histogram van verliesverdeling voor 1000 trekkingen uit N(1,3)
    • VaR$_{95}$ = 5,72, d.w.z. VaR bij 95% betrouwbaarheid

Histogram van verliezen met de 95% VaR

Kwantitatief risicobeheer in Python

De VaR visualiseren

  • Histogram van verliesverdeling voor 1000 trekkingen uit N(1,3)
    • VaR$_{95}$ = 5,72, d.w.z. VaR bij 95% betrouwbaarheid
    • VaR$_{99}$ = 7,81, d.w.z. VaR bij 99% betrouwbaarheid

Histogram van verliezen met de 95% en 99% VaR

Kwantitatief risicobeheer in Python

De VaR visualiseren

  • Histogram van verliesverdeling voor 1000 trekkingen uit N(1,3)
    • VaR$_{95}$ = 5,72, d.w.z. VaR bij 95% betrouwbaarheid
    • VaR$_{99}$ = 7,81, d.w.z. VaR bij 99% betrouwbaarheid
    • VaR$_{99.5}$ = 8,78, d.w.z. VaR bij 99,5% betrouwbaarheid
  • De VaR neemt toe als het betrouwbaarheidsniveau stijgt

Histogram van verliezen met de 95%, 99% en 99,5% VaR

Kwantitatief risicobeheer in Python

Laten we oefenen!

Kwantitatief risicobeheer in Python

Preparing Video For Download...