如何负责任地回测波动率比率?
如何负责任地回测波动率比率?
负责任地回测波动率比率意味着将其视为一种依赖数据和假设的可度量指标,并在能够反映实际收益实现条件的环境下进行测试。目标不是“证明”未来的绩效,而是检验你在历史数据中观察到的关系是否能经受住数据问题、交易成本和过拟合的严格控制。
一个负责任的工作流程包含四个层次:(1)对比率及其所用数据的精确定义,(2)明确的成本和执行假设,(3)防止针对历史噪声调参的偏差控制,以及(4)在样本外周期和简单基准上的验证。
机制与定义:你正在回测的是什么
波动率比率是一种基于波动率的统计量,用于比较当前窗口的波动率与参考窗口(或另一波动率指标)的波动率。常见的结构如下:
- 计算“当前”回溯窗口内的波动率。
- 计算“参考”回溯窗口内的波动率。
- 构建比率(例如,当前除以参考)。
在任何测试之前,必须明确定义以下内容,因为更改其中任何一项都会改变该统计量的性质:
- 价格序列:你使用的价格类型(例如中间价、买卖价中点,或收盘价-收盘价代理)。
- 收益率定义:波动率计算中使用的收益率公式(简单收益率 vs 对数收益率)。
- 波动率估计器:收益率的标准差,或其他离散度量方法。
- 窗口长度:当前和参考回溯窗口的长度。
- 采样频率:K线周期(例如日线 vs 小时线),以及缺失数据的处理方式。
如果你不准确记录这些设定,你的结果将无法被独立验证。
通过现实回测获取证据:数据、成本与示例
即使波动率比率的计算正确,回测仍常因实际交易条件与理想化历史计算之间的差异而失败。
为了使回测具有证据导向性,请做到以下几点:
-
使用可审计的假设
- 明确说明波动率窗口如何与时间戳对齐。
- 说明比率是否仅使用决策时刻可获得的信息进行计算。
- 如果使用K线数据,需定义如何处理初始不完整的窗口。
-
加入摩擦假设 基于中间价或收盘价计算的历史收益可能过于乐观。负责任的方法至少应建模:
- 点差或买卖价差影响(即使采用保守的固定假设)。
- 佣金/费用(若你的数据现实情况中存在)。
- 执行延迟(若比率基于K线收盘计算,但交易假设在之后发生)。
-
将统计量与绩效声明分开 你可以研究该比率是否倾向于与后续实现的波动率共动,或是否改变波动特征。但应避免将该比率视为独立的入场/出场指令。
-
使用基准进行比较 将你的发现与简单替代方案进行比较:
- 使用恒定预期的“无比率”基准。
- 使用未经比率归一化的原始波动率作为基准。
一个小示例(含明确假设)
假设你使用对数收益率在两个窗口上计算波动率估计值,然后在每个K线上仅使用先前数据计算比率。在评估时,你选择一个目标周期,并使用相同的收益率定义计算该周期内的已实现波动率。你的证据问题变为:在考虑摩擦且不重新调参的情况下,特定区间的比率是否对应显著不同的已实现波动率?
这将任务从“预测盈利”重新定义为“在透明假设下检验该统计量是否与可测量的波动率结果相关”。
局限性与风险:回测可能失败的方式
至少有一种常见的重要失效模式存在于基于波动率的统计指标中:
- 市场机制变化(Regime shifts):当市场动态发生变化时,波动率比率与未来波动率(或风险)之间的映射关系可能失效。
- 估计器不稳定性:波动率估计可能具有噪声,尤其是在短窗口或低波动时期。
- 幸存者偏差与数据伪影:缺失K线、公司行为或数据来源不一致可能扭曲波动率。
- 参数调优导致的过拟合:如果窗口长度或阈值被选择以最大化历史表现,该关系可能是虚假的。
其他实际不确定性包括不同交易场所和时间的执行差异,以及实际结果是否依赖于成本,以及实施方法是否与回测时间一致。
验证与后续检查:偏差控制与样本外测试
为降低回测仅反映噪声的可能性:
- 前向滚动 / 滚动验证(Walk-forward / rolling validation) 仅使用训练期数据拟合或选择任何参数,然后在下一个周期进行评估,并随时间重复此过程。