4. 历史模拟法原理
历史模拟法(Historical Simulation, HS)是VaR计算中最直观、也最容易被业务方理解的一类方法。它的核心思想只有一句话:用资产组合在过去一段真实历史中的损益分布,来近似它未来可能面临的损益分布。与参数法假设收益率服从正态分布不同,历史模拟法不预设分布形态,而是让历史数据自己“说话”。本节将围绕全历史模拟的机制、排序分位数的计算、经验分布的含义,以及它的优缺点与适用场景展开。
一、核心原理:让历史重演
历史模拟法假设“历史会以相似的方式重演”,因此把过去N个交易日的市场因子变动,逐一施加到当前组合上,得到N个假想的组合损益,从而构造出一个经验分布。其基本逻辑可以拆成三步:
- 收集历史市场因子:如股票价格、利率、汇率、商品价格等,取过去N个交易日的数据。
- 计算历史变动:求出每个因子每日的收益率或绝对变动量。
- 重估当前组合:把每一个历史变动应用到当前持仓上,得到N个模拟损益。
这N个损益就构成了组合未来损益的“经验分布”。VaR就是该分布左尾的某个分位数。例如95%置信水平下,VaR对应第5百分位(或按损失排序后的第5%个最差损失)。
关键点:历史模拟法不需要估计协方差矩阵,也不需要假设正态分布,因此能自然捕捉厚尾、偏度和非线性结构(如期权的Gamma效应)。
二、方法流程:从数据到VaR
下面用一个简化的单资产例子说明完整流程。假设当前持有100万元某股票,取过去250个交易日的历史收益率,计算95%置信水平下的1日VaR。
步骤1:获取历史收益率序列 r_1, r_2, ..., r_250
步骤2:将每个 r_i 乘以当前头寸价值 V_0 = 1,000,000
得到模拟损益 P_i = V_0 * r_i
步骤3:将 P_i 从小到大排序
步骤4:取第 5% 分位数(250 * 5% = 12.5,取第13个最差损失)
步骤5:VaR_95 = -P_(13) (取正数表示损失)
对于多资产组合,流程相同,只是每个历史日需要同时取所有因子的变动,重新定价整个组合。这也是历史模拟法计算量较大的原因:每个历史日都要做一次完整重估。
三、排序分位数与经验分布
历史模拟法得到的分布是经验分布,它由有限个历史情景构成,因此分位数的计算依赖排序。设N个模拟损益从小到大排列为 P_(1) ≤ P_(2) ≤ ... ≤ P_(N),置信水平为c,则VaR对应的序号为:
k = floor((1 - c) * N)
VaR_c = -P_(k) (若k为0则取P_(1))
例如N=500,c=99%,则k = floor(0.01 * 500) = 5,VaR取第5个最差损失。经验分布的优点是不依赖分布假设,缺点是尾部由少数极端样本决定,样本量不足时VaR估计会不稳定。
四、优缺点与适用场景
历史模拟法并非万能,它的优势与局限同样鲜明。下表做了系统对比:
| 维度 | 历史模拟法表现 |
|---|---|
| 分布假设 | 不依赖正态假设,自然反映厚尾、偏度 |
| 非线性头寸 | 支持期权等非线性工具,只需完整重估 |
| 数据要求 | 需要足够长的历史窗口,且数据质量要求高 |
| 尾部估计 | 极端分位数依赖少数样本,稳定性较差 |
| 计算成本 | 每个历史日都要重估组合,计算量较大 |
| 市场变化 | 历史窗口外的极端事件无法被捕捉 |
适用场景:组合包含期权等非线性产品、市场因子分布明显非正态、监管或内部模型允许使用历史数据、且历史窗口能覆盖代表性压力事件时,历史模拟法是首选。反之,若历史数据过短、市场结构发生断裂,或需要计算极高分位数(如99.9%),则应考虑与参数法或蒙特卡洛法结合。
五、常见误区与复盘
- 误区一:历史窗口越长越好。窗口过长会混入早已失效的市场结构,窗口过短又无法覆盖极端事件。实践中常用250~500个交易日,并配合压力测试。
- 误区二:把历史模拟法当成“无假设”。它其实隐含了“历史分布代表未来分布”的假设,这本身就是一种强假设。
- 误区三:忽略数据频率与对齐。多资产组合中,不同市场休市日不同,若不做日期对齐,会引入虚假相关性。
- 误区四:分位数取整随意。k = floor((1-c)N) 与插值方法会影响VaR数值,需在模型中固定并披露。
复盘提示:历史模拟法的VaR在极端行情后往往“跳变”,因为新加入的极端样本会显著改变左尾。回测时应关注VaR序列的稳定性,并结合Kupiec检验等工具判断模型是否仍有效。
总结来说,历史模拟法以“真实历史重演”为核心,通过全历史模拟构造经验分布,再用排序分位数提取VaR。它直观、灵活、能处理非线性,但对历史数据依赖强、尾部估计不稳定。理解这些特性,才能在后续与参数法、蒙特卡洛法的对比中做出正确选择。