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。步骤清晰:

  1. 构建历史收益率序列:取最近N个交易日(通常250~500天)的组合收益率。
  2. 排序:将收益率从小到大排列。
  3. 取分位点:95%VaR对应第 N × (1-α) 个最小值。
流式适配:历史模拟法天然支持滚动窗口,但需维护一个固定长度的有序数组。在流式计算中,可使用滑动窗口聚合(如Flink的SlidingWindow)配合近似分位数算法(如TDigest)降低内存开销。

2.3 蒙特卡洛模拟法

蒙特卡洛法通过随机抽样生成大量未来价格路径,计算组合损益分布。标准流程包含三步:

  1. 随机路径生成:假设价格服从几何布朗运动,使用Cholesky分解处理资产间相关性。
  2. 组合估值:对每条路径计算期末组合价值。
  3. 分位数提取:从模拟损益中取指定置信度下的分位数。
# 单资产蒙特卡洛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在线更新) 中(需维护滑动窗口) 低(仅离线或批处理)
归因可解释性 高(解析梯度) 中(需重跑排序) 低(随机噪声干扰)
三种VaR计算方法流程对比 参数法(方差-协方差) 估计均值μ、协方差Σ 解析计算:VaR = μ + z_α·σ 输出:单一数值VaR 历史模拟法 取N个历史收益率 排序:从小到大排列 取第α分位数 输出:经验分位数VaR 蒙特卡洛模拟法 生成N条随机路径 每条路径计算损益 汇总损益分布 输出:模拟分位数VaR 流式决策推荐:参数法(在线EWMA)→ 历史模拟法(TDigest近似)→ 蒙特卡洛法(离线重定价)

2.5 流式场景下的方法选择策略

在实时风控流水线中,不同方法对应不同的计算层级:

  • 微秒级(交易前检查):参数法,协方差矩阵通过EWMA增量更新,单笔VaR计算仅需O(n)次乘法。
  • 秒级(组合监控):历史模拟法,使用TDigest维护近似分位数,避免全量排序。
  • 分钟级(压力测试):蒙特卡洛法,仅在市场剧烈波动或新增复杂衍生品时触发。
关键结论:VaR归因在流式决策中的核心挑战并非计算精度,而是计算延迟与内存边界。参数法提供最快的归因梯度,历史模拟法提供最稳健的非参数估计,蒙特卡洛法则作为校准基准。三者组合使用,才能满足“在线计算、离线校准”的流式风控架构。