VaR w zarządzaniu ryzykiem finansowym

Modele GARCH w Pythonie

Chelsea Yang

Data Science Instructor

Podejście do zarządzania ryzykiem

Zasada nr 1: Nigdy nie trać pieniędzy

Zasada nr 2: Nigdy nie zapominaj o zasadzie nr 1

-- Warren Buffett

Rysunek Buffetta

Modele GARCH w Pythonie

Czym jest VaR

  • VaR oznacza Value at Risk

  • Trzy składniki:

    1. portfel
    2. horyzont czasowy
    3. prawdopodobieństwo
Modele GARCH w Pythonie

Przykłady VaR

1-dniowy VaR 5% wynoszący 1 mln USD

5% prawdopodobieństwo, że portfel straci co najmniej 1 milion dolarów w ciągu 1 dnia

10-dniowy VaR 1% wynoszący 9 mln USD

1% prawdopodobieństwo, że portfel straci co najmniej 9 milionów dolarów w ciągu 10 dni

Modele GARCH w Pythonie

VaR w zarządzaniu ryzykiem

  • Ustalanie limitów ryzyka
  • Przekroczenie VaR: strata portfela przekracza VaR

Przekroczenia VaR

Modele GARCH w Pythonie

Dynamiczny VaR z GARCH

  • Bardziej realistyczne szacowanie VaR z GARCH

  • VaR = średnia + (zmienność GARCH) * kwantyl

VaR = mean_forecast.values + np.sqrt(variance_forecast).values * quantile
Modele GARCH w Pythonie

Obliczanie dynamicznego VaR

  • Krok 1: Prognoza wariancji za pomocą modelu GARCH
# Specify and fit a GARCH model
basic_gm = arch_model(bitcoin_data['Return'], p = 1, q = 1, 
                      mean = 'constant', vol = 'GARCH', dist = 't')
gm_result = basic_gm.fit()
# Make variance forecast
gm_forecast = gm_result.forecast(start = '2019-01-01')
Modele GARCH w Pythonie

Obliczanie dynamicznego VaR (cd.)

  • Krok 2: Wyznaczenie prognostycznej średniej i zmienności z GARCH

    mean_forecast = gm_forecast.mean['2019-01-01':]
    variance_forecast = gm_forecast.variance['2019-01-01':]
    

     

  • Krok 3: Wyznaczenie kwantyla na podstawie poziomu ufności

    1. VaR parametryczny
    2. VaR empiryczny
Modele GARCH w Pythonie

VaR parametryczny

Kwantyle szacowane na podstawie rozkładu założonego przez GARCH dla zestandaryzowanych reszt

# Assume a Student's t-distribution 
# ppf(): Percent point function

q_parametric = garch_model.distribution.ppf(0.05, nu)
Modele GARCH w Pythonie

VaR empiryczny

Kwantyle szacowane na podstawie zaobserwowanego rozkładu zestandaryzowanych reszt GARCH

q_empirical = std_resid.quantile(0.05)
Modele GARCH w Pythonie

Czas na ćwiczenia!

Modele GARCH w Pythonie

Preparing Video For Download...