Modele GARCH w Pythonie
Chelsea Yang
Data Science Instructor
Zasada nr 1: Nigdy nie trać pieniędzy
Zasada nr 2: Nigdy nie zapominaj o zasadzie nr 1
-- Warren Buffett

VaR oznacza Value at Risk
Trzy składniki:
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

Bardziej realistyczne szacowanie VaR z GARCH
VaR = średnia + (zmienność GARCH) * kwantyl
VaR = mean_forecast.values + np.sqrt(variance_forecast).values * quantile
# 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')
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
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)
Kwantyle szacowane na podstawie zaobserwowanego rozkładu zestandaryzowanych reszt GARCH
q_empirical = std_resid.quantile(0.05)
Modele GARCH w Pythonie