22. 曲面评估指标:MAE、RMSE、光滑度指标、无套利检验

做波动率曲面插值,最怕什么?

怕你插出来的曲面看着挺漂亮,一放到定价引擎里就崩了。或者更惨——回测时赚得盆满钵满,实盘时亏得底裤都不剩。

我早年就吃过这个亏。当时用了一个光滑度极好的样条曲面,回测曲线美如画,结果实盘第一天就被套利者盯上了。后来才发现,曲面虽然光滑,但局部出现了明显的蝶式套利机会。

所以这一章,咱们就来聊聊怎么给曲面做「体检」。说白了,就是四个维度:拟合精度、光滑程度、无套利性质、以及计算效率

22.1 拟合精度指标:MAE 与 RMSE

这两个指标是基本功。你插值出来的曲面,跟原始市场报价到底差多少?

MAE(平均绝对误差)

MAE = (1/n) * Σ|σ_model - σ_market|

RMSE(均方根误差)

RMSE = sqrt((1/n) * Σ(σ_model - σ_market)²)

我个人习惯两个都看。MAE 告诉你平均偏差,RMSE 对大的偏离更敏感。

实战经验:我在做沪深300期权曲面时,发现RMSE比MAE大很多。一查,原来是深度虚值期权那边出了幺蛾子。RMSE帮我抓住了这个异常点。

一般来说,MAE 在 0.5 个波动率点以内算合格。但具体要看市场。比如标普500期权流动性好,我通常要求 MAE < 0.3。而某些新兴市场,1 个点以内也能接受。

22.2 光滑度指标

光滑度这东西,说起来玄乎,其实有量化方法。

常用指标:

  • 二阶导数范数:计算曲面上每个点的二阶偏导,然后取平均。值越小越光滑。
  • 曲率变化率:衡量曲面弯曲程度的突变情况。
  • 局部极值数量:曲面上的「小疙瘩」越多,越不光滑。

举个例子,我常用的光滑度计算代码:

def compute_smoothness(surface, strikes, maturities):
    """
    计算波动率曲面的光滑度
    surface: (n_strikes, n_maturities) 的波动率矩阵
    """
    dS = np.gradient(surface, axis=0)  # 对行权价求导
    dT = np.gradient(surface, axis=1)  # 对期限求导
    
    d2S = np.gradient(dS, axis=0)
    d2T = np.gradient(dT, axis=1)
    
    # 二阶导数的 Frobenius 范数
    smoothness = np.sqrt(np.mean(d2S**2 + d2T**2))
    return smoothness

小技巧:光滑度不是越低越好。太光滑可能意味着过拟合,把市场结构都磨平了。我一般会跟原始数据的粗糙度做个对比,控制在原始粗糙度的 1.5 倍以内。

22.3 无套利检验

这是最关键的环节。曲面再漂亮,有套利就是废纸。

三类核心套利检验:

  1. 蝶式套利检验:检查是否存在凸性违反。对于同一期限,不同行权价的期权价格必须满足凸性。
  2. 日历套利检验:检查不同期限之间是否存在套利。一般来说,长期波动率不应该低于短期波动率(除非有特殊事件)。
  3. 箱体套利检验:结合看涨看跌平价关系,检查是否存在跨品种套利。

我曾经在检验一个神经网络插值模型时,发现蝶式套利违反率高达 15%。当时团队差点就要上线了,还好我多留了个心眼。

避坑指南:无套利检验不能只看「有没有违反」,还要看「违反的程度」。比如蝶式价差只差了 0.01 元,可能只是四舍五入误差。但如果差了 0.5 元,那就是真有问题了。

蝶式套利检验的代码示例:

def butterfly_arbitrage_check(call_prices, strikes):
    """
    检查蝶式套利
    call_prices: 同一期限不同行权价的看涨期权价格
    strikes: 对应的行权价
    """
    violations = []
    for i in range(1, len(strikes)-1):
        # 蝶式价差 = C(K-ΔK) - 2*C(K) + C(K+ΔK)
        butterfly = call_prices[i-1] - 2*call_prices[i] + call_prices[i+1]
        if butterfly < -1e-6:  # 允许微小误差
            violations.append((strikes[i], butterfly))
    return violations

22.4 综合评估框架

光看单个指标不够。我习惯做一个综合评分卡:

指标 权重 合格标准 优秀标准
MAE 25% < 0.5 vol < 0.2 vol
RMSE 25% < 0.8 vol < 0.3 vol
光滑度 20% < 原始粗糙度×2 < 原始粗糙度×1.2
无套利违反率 30% < 1% 0%

这个权重是我个人经验总结的。无套利检验权重最高,因为这是底线。光滑度权重最低,因为可以后期调整。

22.5 知识体系总览

下面这张图,把曲面评估的四个维度串起来了:

波动率曲面评估体系 拟合精度 MAE:平均绝对误差 RMSE:均方根误差 衡量与市场报价的偏差 光滑度 二阶导数范数 曲率变化率 避免过拟合与过度光滑 无套利检验 蝶式套利 / 日历套利 箱体套利 底线指标,必须通过 计算效率 插值耗时 / 内存占用 批量定价吞吐量 高频场景下尤为重要

这四个维度缺一不可。拟合精度差,曲面不准确;光滑度差,greeks 不稳定;有套利,模型就是废的;效率低,生产环境跑不动。

我的习惯:每次做完一个新插值模型,先跑无套利检验。通过了再看拟合精度。光滑度最后调。这个顺序帮我省了不少时间。

嗯,曲面评估这块就聊到这儿。记住一句话:能赚钱的曲面,不一定漂亮;但漂亮的曲面,一定要能赚钱


公众号:蓝海资料掘金营,微信deep3321