2. 传统VaR计算方法:参数法、历史模拟法与蒙特卡洛模拟法
在流式决策场景中,VaR(Value at Risk)的计算需要在毫秒级窗口内完成。理解三种经典方法的数学原理、适用场景与计算瓶颈,是设计流式归因引擎的前提。本节从公式、步骤、优缺点三个维度展开对比。
2.1 参数法(方差-协方差法)
参数法假设资产收益率服从多元正态分布,仅需估计均值向量与协方差矩阵即可解析计算VaR。其核心公式为:
VaR(α) = μ · Δt + z_α · σ · √Δt
其中 z_α 为标准正态分布分位数(95%置信度下为1.645,99%下为2.326),σ 为组合收益标准差,Δt 为持有期。
适用前提:收益率近似正态分布、线性风险敞口、资产间相关性稳定。在流式场景中,协方差矩阵可通过指数加权移动平均(EWMA)在线更新。
2.2 历史模拟法
历史模拟法不假设分布形态,直接使用过去N个交易日的实际收益率排序,取第 α 分位数作为VaR。步骤清晰:
- 构建历史收益率序列:取最近N个交易日(通常250~500天)的组合收益率。
- 排序:将收益率从小到大排列。
- 取分位点:95%VaR对应第
N × (1-α)个最小值。
流式适配:历史模拟法天然支持滚动窗口,但需维护一个固定长度的有序数组。在流式计算中,可使用滑动窗口聚合(如Flink的SlidingWindow)配合近似分位数算法(如TDigest)降低内存开销。
2.3 蒙特卡洛模拟法
蒙特卡洛法通过随机抽样生成大量未来价格路径,计算组合损益分布。标准流程包含三步:
- 随机路径生成:假设价格服从几何布朗运动,使用Cholesky分解处理资产间相关性。
- 组合估值:对每条路径计算期末组合价值。
- 分位数提取:从模拟损益中取指定置信度下的分位数。
# 单资产蒙特卡洛VaR伪代码
for i in range(10000):
epsilon = np.random.normal()
S_T = S_0 * exp((μ - 0.5*σ²)*Δt + σ*√Δt*epsilon)
PnL[i] = S_T - S_0
VaR_95 = np.percentile(PnL, 5)
流式瓶颈:蒙特卡洛法计算量最大,单次模拟需数万条路径。在流式决策中,通常仅在重定价或压力测试时触发,不可用于每笔交易的实时归因。
2.4 三种方法对比总表
| 维度 | 参数法 | 历史模拟法 | 蒙特卡洛法 |
|---|---|---|---|
| 分布假设 | 正态分布 | 无(经验分布) | 可自定义(如t分布、跳跃扩散) |
| 计算速度 | 极快(O(n²)协方差更新) | 中等(排序O(N log N)) | 慢(O(路径数×资产数)) |
| 尾部风险捕捉 | 弱(正态尾部过薄) | 依赖历史极端值 | 强(可模拟肥尾) |
| 流式适用性 | 高(EWMA在线更新) | 中(需维护滑动窗口) | 低(仅离线或批处理) |
| 归因可解释性 | 高(解析梯度) | 中(需重跑排序) | 低(随机噪声干扰) |
2.5 流式场景下的方法选择策略
在实时风控流水线中,不同方法对应不同的计算层级:
- 微秒级(交易前检查):参数法,协方差矩阵通过EWMA增量更新,单笔VaR计算仅需O(n)次乘法。
- 秒级(组合监控):历史模拟法,使用TDigest维护近似分位数,避免全量排序。
- 分钟级(压力测试):蒙特卡洛法,仅在市场剧烈波动或新增复杂衍生品时触发。
关键结论:VaR归因在流式决策中的核心挑战并非计算精度,而是计算延迟与内存边界。参数法提供最快的归因梯度,历史模拟法提供最稳健的非参数估计,蒙特卡洛法则作为校准基准。三者组合使用,才能满足“在线计算、离线校准”的流式风控架构。