金融風險管理中的 VaR

Python 中的 GARCH 模型

Chelsea Yang

Data Science Instructor

風險管理心態

規則一:別賠錢

規則二:別忘了規則一

—— 華倫・巴菲特

巴菲特漫畫

Python 中的 GARCH 模型

什麼是 VaR

  • VaR 是「在險價值」

  • 三個要素:

    1. 投資組合
    2. 期間
    3. 機率
Python 中的 GARCH 模型

VaR 範例

_1-day 5% VaR of $1 million _

在 1 天內有 5% 的機率,投組損失達 100 萬美元或更多。

10-day 1% VaR of $9 million

在 10 天內有 1% 的機率,投組損失達 900 萬美元或更多。

Python 中的 GARCH 模型

風險管理中的 VaR

  • 設定風險上限
  • VaR 超越:實際虧損超過 VaR 值

VaR 超越

Python 中的 GARCH 模型

以 GARCH 做動態 VaR

  • 用 GARCH 估計更貼近市場的 VaR

  • VaR = mean + (GARCH vol) * quantile

VaR = mean_forecast.values + np.sqrt(variance_forecast).values * quantile
Python 中的 GARCH 模型

動態 VaR 計算

  • 步驟 1:用 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')
Python 中的 GARCH 模型

動態 VaR 計算(續)

  • 步驟 2:用 GARCH 取得前瞻均值與波動度

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

     

  • 步驟 3:依信賴水準取得分位數

    1. 參數式 VaR
    2. 經驗式 VaR
Python 中的 GARCH 模型

參數式 VaR

根據 GARCH 假設的標準化殘差分配來估計分位數

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

q_parametric = garch_model.distribution.ppf(0.05, nu)
Python 中的 GARCH 模型

經驗式 VaR

根據 GARCH 標準化殘差的觀察分配來估計分位數

q_empirical = std_resid.quantile(0.05)
Python 中的 GARCH 模型

一起來練習吧!

Python 中的 GARCH 模型

Preparing Video For Download...