金融风险管理中的 VaR

Python 中的 GARCH 模型

Chelsea Yang

Data Science Instructor

风险管理思维

规则一:永远不要亏钱

规则二:别忘了规则一

—— 沃伦·巴菲特

巴菲特漫画

Python 中的 GARCH 模型

什么是 VaR

  • VaR 指在险价值(Value at Risk)

  • 三要素:

    1. 组合
    2. 持有期
    3. 概率
Python 中的 GARCH 模型

VaR 示例

1 天 5% VaR:100 万美元

在 1 天内,组合价值下跌至少 100 万美元的概率为 5%

10 天 1% VaR:900 万美元

在 10 天内,组合价值下跌至少 900 万美元的概率为 1%

Python 中的 GARCH 模型

VaR 于风险管理中的应用

  • 设定风险限额
  • VaR 超越:组合亏损超过 VaR

VaR 超越

Python 中的 GARCH 模型

基于 GARCH 的动态 VaR

  • 使用 GARCH 更贴近现实地估计 VaR

  • VaR = 均值 +(GARCH 波动)× 分位数

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 模型

Passons à la pratique !

Python 中的 GARCH 模型

Preparing Video For Download...