2、VaR计算方法概览:参数法、历史模拟法、蒙特卡洛模拟法

说到VaR的计算,市面上方法不少。但真正在量化风控一线常用的,其实就三招:参数法、历史模拟法、蒙特卡洛模拟法。

我个人习惯把这三种方法比作「三把尺子」——有的快但糙,有的准但慢,有的灵活但费劲。你想想看,做风控最怕什么?不是算不准,而是用错了工具还不知道。

2.1 参数法(方差-协方差法)

参数法,说白了就是假设收益率服从正态分布。然后我们只需要知道均值和方差,就能算出VaR。

公式很简单:

VaR = - (μ - z_α * σ) * P

其中z_α是置信水平对应的分位数,比如95%对应1.645,99%对应2.326。

核心假设:资产收益率服从正态分布,且资产间线性相关。

我在项目中遇到过一家基金公司,他们用参数法算债券组合的VaR。结果呢?市场一波动,VaR直接失效。为什么?因为债券收益率明显有厚尾特征,正态分布根本兜不住。

我的经验:参数法适合流动性好、历史数据充足的股票组合。对于含期权的组合,千万别用——非线性风险会把你坑惨。

2.2 历史模拟法

历史模拟法就简单粗暴了。它不假设任何分布,直接用过去N天的收益率数据,排序后取分位数。

比如你有1000天的日收益率数据,要算95% VaR,那就取第50小的那个值(1000 * 5% = 50)。

import numpy as np

def historical_var(returns, confidence=0.95):
    sorted_returns = np.sort(returns)
    index = int(len(returns) * (1 - confidence))
    return -sorted_returns[index]

嗯,这里要注意。历史模拟法有个致命弱点:它假设历史会重演。我见过有人用2008年的数据去预测2017年的风险,结果市场结构早就变了,VaR完全失真。

避坑指南:我曾经帮一家券商做回测,发现历史模拟法在低波动时期表现很好,但一旦市场出现结构性变化(比如利率政策突变),它的预测能力会断崖式下跌。建议至少保留3-5年的数据窗口,并且定期做滚动回测。

2.3 蒙特卡洛模拟法

蒙特卡洛模拟法,说白了就是「暴力求解」。它通过随机生成大量价格路径,模拟出未来收益率的分布,再取分位数。

步骤大致如下:

  1. 设定随机过程(比如几何布朗运动)
  2. 生成N条价格路径(通常10000条以上)
  3. 计算每条路径的收益率
  4. 排序后取分位数
import numpy as np

def monte_carlo_var(S0, mu, sigma, T, n_simulations=10000, confidence=0.95):
    dt = T / 252  # 假设252个交易日
    returns = np.random.normal((mu - 0.5 * sigma**2) * dt, sigma * np.sqrt(dt), n_simulations)
    final_prices = S0 * np.exp(returns)
    portfolio_returns = (final_prices - S0) / S0
    return -np.percentile(portfolio_returns, (1 - confidence) * 100)

核心优势:可以处理任意复杂的资产组合,包括期权、结构化产品等非线性工具。

我记得有一次帮一家私募做压力测试,他们的组合里有一堆奇异期权。参数法算不了,历史模拟法样本不够,最后只能用蒙特卡洛。跑了10万条路径,花了将近半小时,但结果确实靠谱。

我的建议:蒙特卡洛模拟法虽然灵活,但计算量巨大。实际生产中,我通常先用参数法做快速筛查,再用蒙特卡洛做精细校准。别一上来就上蒙特卡洛,服务器会哭的。

2.4 三种方法优缺点对比

方法 优点 缺点
参数法 计算快、实现简单、适合线性组合 假设正态分布、无法处理厚尾、非线性风险失效
历史模拟法 无分布假设、直观易懂、适合非正态数据 依赖历史数据、无法预测结构性变化、样本量要求高
蒙特卡洛模拟法 灵活性强、可处理复杂组合、支持压力测试 计算量大、依赖模型假设、随机误差需控制

你想想看,这三种方法其实没有绝对的好坏。关键看你的应用场景。我个人习惯是:

  • 做快速日报,用参数法
  • 做周度风控报告,用历史模拟法
  • 做季度压力测试或新产品评估,用蒙特卡洛模拟法

重要提醒:无论用哪种方法,回测都是必须的。我见过太多人直接拿VaR结果去交报告,结果回测一跑,失败率超标好几倍。记住,VaR不是算出来的,是「校准」出来的。

VaR计算方法概览 参数法 历史模拟法 蒙特卡洛模拟法 假设:正态分布 假设:历史会重演 假设:随机过程 优点:计算快 缺点:厚尾失效 优点:无分布假设 缺点:依赖历史 优点:灵活性强 缺点:计算量大 选择方法 = 权衡速度、精度与灵活性

专注资料整理