Modelli GARCH in Python
Chelsea Yang
Data Science Instructor
Regola n. 1: non perdere mai denaro
Regola n. 2: non dimenticare la regola n. 1
-- Warren Buffett

VaR sta per Value at Risk
Tre ingredienti:
VaR a 1 giorno al 5% di $1 milione
5% di probabilità che il portafoglio perda 1 milione di dollari o più in 1 giorno
VaR a 10 giorni all'1% di $9 milioni
1% di probabilità che il portafoglio perda 9 milioni di dollari o più in 10 giorni

Stima VaR più realistica con GARCH
VaR = media + (vol GARCH) * quantile
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')
Passo 2: usa GARCH per ottenere media e volatilità prospettiche
mean_forecast = gm_forecast.mean['2019-01-01':]
variance_forecast = gm_forecast.variance['2019-01-01':]
Passo 3: ottieni il quantile in base al livello di confidenza
Stima i quantili dalla distribuzione assunta dei residui standardizzati del GARCH
# Assume a Student's t-distribution
# ppf(): Percent point function
q_parametric = garch_model.distribution.ppf(0.05, nu)
Stima i quantili dalla distribuzione osservata dei residui standardizzati del GARCH
q_empirical = std_resid.quantile(0.05)
Modelli GARCH in Python