Měření rizika

Kvantitativní řízení rizik v Pythonu

Jamsheed Shorish

CEO, Shorish Research

Ztrátová distribuce

  • Příklad – forex:
    • Hodnota portfolia v amerických dolarech: USD 100
    • Rizikový faktor = kurz EUR / USD
    • Hodnota portfolia v EUR, pokud 1 EUR = 1 USD: USD 100 x EUR 1 / USD 1 = EUR 100.
    • Hodnota portfolia v EUR, pokud r EUR = 1 USD: = USD 100 x EUR r / 1 USD = EUR 100 x r
    • Ztráta = EUR 100 - EUR 100 x r = EUR 100 x (1 - r)
  • Ztrátová distribuce: náhodné realizace r => distribuce ztrát portfolia v budoucnosti

Histogram forexových ztrát

Kvantitativní řízení rizik v Pythonu

Maximum loss

  • What is the maximum loss of a portfolio?
  • Losses cannot be bounded with 100% certainty
  • Confidence Level: replace 100% certainty with likelihood of upper bound
  • Can express questions like "What is the maximum loss that would take place 95% of the time?"
    • Here the confidence level is 95%.
Kvantitativní řízení rizik v Pythonu

Value at Risk (VaR)

  • VaR: statistic measuring maximum portfolio loss at a particular confidence level
  • Typical confidence levels: 95%, 99%, and 99.5% (usually represented as decimals)
  • Forex Example: If 95% of the time EUR / USD exchange rate is at least 0.40, then:
    • portfolio value is at least USD 100 x 0.40 EUR / USD = EUR 40,
    • portofio loss is at most EUR 40 - EUR 100 = EUR 60,
    • so the 95% VaR is EUR 60.

Time series of EUR/USD exchange rate with 0.40 cutoff

Kvantitativní řízení rizik v Pythonu

Conditional Value at Risk (CVaR)

  • CVaR: measures expected loss given a minimum loss equal to the VaR
  • Equals expected value of the tail of the loss distribution:
    • $$\textnormal{CVaR}(\alpha) := \frac{1}{1-\alpha}\mathbb{E} \int_{\textnormal{VaR}(\alpha)}^{\bar{x}} x f(x) dx,$$
    • $f(\cdot)$ = loss distribution pdf
    • $\bar{x}$ = upper bound of the loss (can be infinity)
    • $\textnormal{VaR}(\alpha)$ = VaR at the $\alpha$ confidence level.
  • Forex Example:
    • 95% CVaR = expected loss for 5% of cases when portfolio value smaller than EUR 40

Plot of the loss distribution, showing the VaR and CVaR tail dependence

Kvantitativní řízení rizik v Pythonu

Výpočet VaR

  1. Stanovte hladinu spolehlivosti, např. 95 % (0,95)
  2. Vytvořte řadu loss pozorování
  3. Vypočítejte loss.quantile() na dané hladině spolehlivosti
  4. VaR = vypočítaný .quantile() na požadované hladině spolehlivosti

  5. scipy.stats ztrátová distribuce: lze použít funkci percentilových bodů .ppf()

loss = pd.Series(observations)

VaR_95 = loss.quantile(0.95) print("VaR_95 = ", VaR_95)
Var_95 = 1.6192834157254088
Kvantitativní řízení rizik v Pythonu

Výpočet CVaR

  1. Stanovte hladinu spolehlivosti, např. 95 % (0,95)
  2. Vytvořte nebo použijte vzorek ze ztrátové distribuce
  3. Vypočítejte VaR na dané hladině spolehlivosti, např. 0,95.
  4. Vypočítejte CVaR jako očekávanou ztrátu (normální distribuce: scipy.stats.norm.expect() to provede).
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
Kvantitativní řízení rizik v Pythonu

Vizualizace VaR

  • Histogram ztrátové distribuce pro 1000 výběrů z N(1,3)

Histogram normálně rozdělených ztrát

Kvantitativní řízení rizik v Pythonu

Vizualizace VaR

  • Histogram ztrátové distribuce pro 1000 výběrů z N(1,3)
    • VaR$_{95}$ = 5,72, i.e. VaR at 95% confidence

Histogram ztrát s 95% VaR

Kvantitativní řízení rizik v Pythonu

Vizualizace VaR

  • Histogram ztrátové distribuce pro 1000 výběrů z N(1,3)
    • VaR$_{95}$ = 5,72, tj. VaR na hladině spolehlivosti 95 %
    • VaR$_{99}$ = 7,81, tj. VaR na hladině spolehlivosti 99 %

Histogram ztrát s 95% a 99% VaR

Kvantitativní řízení rizik v Pythonu

Vizualizace VaR

  • Histogram ztrátové distribuce pro 1000 výběrů z N(1,3)
    • VaR$_{95}$ = 5,72, tj. VaR na hladině spolehlivosti 95 %
    • VaR$_{99}$ = 7,81, tj. VaR na hladině spolehlivosti 99 %
    • VaR$_{99.5}$ = 8,78, tj. VaR na hladině spolehlivosti 99,5 %
  • The VaR measure increases as the confidence level rises

Histogram ztrát s 95%, 99% a 99,5% VaR

Kvantitativní řízení rizik v Pythonu

Let's practice!

Kvantitativní řízení rizik v Pythonu

Preparing Video For Download...