Python 中的 GARCH 模型
Chelsea Yang
Data Science Instructor
規則一:別賠錢
規則二:別忘了規則一
—— 華倫・巴菲特

VaR 是「在險價值」
三個要素:
_1-day 5% VaR of $1 million _
在 1 天內有 5% 的機率,投組損失達 100 萬美元或更多。
10-day 1% VaR of $9 million
在 10 天內有 1% 的機率,投組損失達 900 萬美元或更多。

用 GARCH 估計更貼近市場的 VaR
VaR = mean + (GARCH vol) * 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')
步驟 2:用 GARCH 取得前瞻均值與波動度
mean_forecast = gm_forecast.mean['2019-01-01':]
variance_forecast = gm_forecast.variance['2019-01-01':]
步驟 3:依信賴水準取得分位數
根據 GARCH 假設的標準化殘差分配來估計分位數
# Assume a Student's t-distribution
# ppf(): Percent point function
q_parametric = garch_model.distribution.ppf(0.05, nu)
根據 GARCH 標準化殘差的觀察分配來估計分位數
q_empirical = std_resid.quantile(0.05)
Python 中的 GARCH 模型