Skip to content
全部期权指南
回测中的数据窥探校正阅读约12分钟

交易规则的 White Reality Check 与 Hansen SPA 检验

比较 Reality Check 与 SPA 如何检验搜索过的交易规则集合,了解全局零假设、联合自助抽样以及结果解释的边界。

本指南内容回测排名第一的规则为何不能当作单一预设策略检验

简短摘要

White 的 Reality Check(RC)和 Hansen 的 SPA(Superior Predictive Ability)检验,关注搜索过的候选集合中是否至少有一条规则优于事先选定的基准。两者都会考虑在同一份样本中挑选最佳结果这一事实,但都不会认证某条具体规则,更不保证未来获利。

回测排名第一的规则为何不能当作单一预设策略检验

如果在查看数据前只确定了一种策略,单一的策略与基准比较可能符合你的问题。但如果先试过许多规则、查看结果,再把排名第一的规则当成一开始就唯一确定的候选来检验,分析就遗漏了搜索过程。即使每条规则都没有真实优势,在一堆带有噪声的估计值中取最大值,也可能仅仅因为它是最大值而大于零。针对预先确定的单一策略设计的 p 值,没有计入同一份数据曾被反复用来挑选赢家。

RC 与 SPA 回答的是候选集合层面的问题:考虑已经尝试过的候选后,是否有证据表明至少一个候选在预先选择的表现指标上优于基准?候选集合可以由技术交易规则、预测模型或其他策略构成。White 提出数据窥探检验框架,用来检验搜索规格后表现最好的模型是否优于给定基准 (White, 2000)。Sullivan、Timmermann 与 White 把这种方法应用于大范围技术交易规则 (1999年的研究)。校正范围应包括对结果选择产生过影响的候选,而不是最后留下的赢家一条。多重检验与 FDR 指南讨论相关但不同的问题。

先固定基准、候选集合和差值定义

用 k 表示候选集合 K 中的一条规则,用 t 表示所有候选与基准共同评估的日期。比较收益时,可把每期差值定义为:

d(k,t) = 候选 k 的净收益 − 基准的净收益

正值表示候选表现较好。若比较预测损失,则应反过来定义为基准损失减去候选损失,这样正值仍表示候选更好。所有候选和日期都应使用相同的正负号约定。评估前还要固定候选集、基准、日期、成本处理方法,以及“更好”的具体含义。平均净收益差本身不等于风险调整收益,也没有直接衡量最大回撤。

将候选 k 的期望差记为 μ(k)=E[d(k,t)],全局假设为:

H0: max(k∈K) μ(k) ≤ 0 H1: max(k∈K) μ(k) > 0

这是一个较弱的全局零假设:没有任何候选具有正的期望优势,但候选的真实差值可以是负数。检验针对整个集合的一个联合结论,而不是为每条规则分别提供一组独立结论。假设中的基准和表现指标必须明确,否则同一个检验结果可能被误读成回答另一个问题。

实际构造零分布时,不能只把观察到的赢家拿出来重复抽样。通常会按零假设对每个候选序列作中心化,再在每次重复中重新计算所有候选的最大统计量。这样,搜索步骤也进入参考分布。中心化方式、候选列的联合抽样方式和区块设计共同决定这个分布;任何一个环节改变,都可能改变检验的校准。因此应说明所用实现,而不是只写“做了 bootstrap”。

Reality Check 使用完整集合中的最大值

设候选 k 在 n 个评估日期的平均差为 d̄(k)。在简单的平均差设定下,RC 统计量是:

T_RC = max(k∈K) sqrt(n) × d̄(k)

随后将这个最大值与在零假设下构造的自助分布比较。White 的方法采用复合零假设中最不利的边界:构造零分布时,将每个候选的真实期望差都设为零。零假设本身也允许一些候选的真实差值为负;全零边界却让每个候选都恰好与基准持平,因此可能较保守。如果集合中有很多较差的候选,临界值可能上升,检验更难拒绝零假设。上面的 RC 公式直接取样本平均差的最大值,不另外用零对统计量作截断。

这里的关键是最大值来自一次搜索。问题不是“排名第一的规则若作为唯一规则检验,会不会显得特殊”,而是“对整个候选集合进行同样搜索后,观察到如此大的最大值是否少见”。如果只对赢家套用预先指定单一候选的参考分布,就没有处理挑选赢家所产生的影响。

ω̂(k) 的作用不只是把数字换一种尺度。若某条规则的收益差更不稳定,较大的均值估计可能也伴随较大的抽样误差;标准化统计量把这类差异纳入比较。因为时间序列可能自相关,长期标准差还需要反映跨期协方差,不能简单认为每一天彼此独立。SPA 的具体版本还可能区分较低、较高或一致的 p 值计算方式,报告时应写清采用哪一种,避免把不同实现的数字当作同一结果。

SPA 通过标准化统计量和样本依赖零分布作调整

Hansen 的 SPA 检验保留相同的基准相对差值和全局零假设,但改变统计量和零分布的构造方式。其统计量可写成:

T_SPA = max(0, max(k∈K) sqrt(n) × d̄(k) / ω̂(k))

ω̂(k) 估计 √n d̄(k) 的长期标准差。标准化把变动程度不同的候选放到与均值不确定性相关的尺度上,避免只比较原始均值差。外层的 max(0, …) 确保 SPA 统计量不会小于零;这与上面没有正部截断的 RC 公式不同。

另一个变化是零分布依赖于样本。以一致版本为例,观察到的均值差足够负的候选,在构造零分布时会继续以负均值保留;看起来合理且可能接近零边界的候选则以零为中心。SPA 并非简单地把表现差的规则从检验家族里删掉。这样做的目的是降低明显较差的候选对零分布的影响,而 RC 的最不利边界会把所有候选都当作真实均值为零。Hansen 的论文指出,标准化与样本依赖零分布可以提高检验力,并降低对较差或无关候选的敏感度 (Hansen, 2005)。但在所有数据和条件下,SPA 并不总是优于 RC。

联合抽样保留的不只是收益序列的先后顺序,也包括同一日期所有规则面对的共同市场冲击。例如,多条均线规则可能在同一轮下跌时同时亏损;如果各列各自抽日期,重复样本会制造原本不存在的组合。最大统计量会受到候选之间这种重叠影响。使用共同时间索引后,区块内部可以保留局部持续性,但区块边界仍会拼接不同片段,因此仍需检查区块长度和样本是否足以支撑近似。

按同一时间索引联合抽取所有候选的向量

不同规则在同一天经历相同市场环境,候选差值之间常常存在同期相关性。每条规则的序列也可能有时间依赖。如果分别独立地抽取每个候选的收益列,会破坏同期协方差,进而改变最大值的零分布。因此,每个日期都应把 d_t=(d(1,t),…,d(K,t)) 作为一个整体,并对所有候选应用相同时间索引或相同的一串区块。

区块方法可以保留部分时间顺序。例如,定态自助法会连接长度服从几何分布的区块;Politis 与 Romano 的研究讨论了对弱依赖定态观测进行推断 (Politis and Romano, 1994)。但任何区块设计都不能保证正确表示所有依赖结构。它仍依赖过程足够稳定、依赖足够弱等条件。若样本中存在结构断点或市场状态变化,把全段数据当成同一稳定过程重抽样并不能解决问题。区块自助法指南进一步解释固定统计量的区块设计。

许多路径汇聚到一座山峰旁,画面还包括天平、两个抽象分布和成排的时间区块,没有文字。
这是策略搜索与不确定性分布比较的概念图,不代表任何检验结果或实际观察到的市场收益。

240条规则只是用于演示乘法的假设例子

这里只用一组假设数字说明候选数如何计算:12种回看期、4种入场过滤器和5种退出设定,完整组合为12×4×5=240种。如果所有组合都使用相同日期、相同费用规则,并以事先确定的买入并持有策略为基准,就可以对每个候选计算净收益差,并在完整的240条规则中取最大值。

240只是算术示例,不代表任何实际检验结果。这里没有编造收益、p 值或胜出策略。在真实研究中,曾经试过的市场、持有期、指标、费用假设、样本窗口和基准也可能影响候选选择。若这些尝试曾参与决策,只报告最后整理出来的参数网格会低估实际搜索范围。

“表现更好”的指标也要在查看结果前固定。如果选用平均净收益差,检验就没有同时回答波动率、最大回撤或资金占用是否更优。各候选的交易日期、成交规则、手续费、融资或借券费用都应按一致口径计算,否则结果可能反映假设差异而非规则差异。

两类方法的输出也不同:FDR通常帮助决定一组具体假设中哪些结果可以称为发现;RC或SPA的拒绝只表明候选族的最大值相对基准有整体证据,并不直接给出可靠的候选排名。固定策略的区块置信区间则给一个预先选定统计量的抽样范围。即使这个区间不含零,也不能自动回答“从240个候选中选中的冠军是否经过搜索校正”。需要回答的推断问题不同,不能只因都出现p值或bootstrap就互换。

这个乘法还隐含“完整交叉”的假设:12个回看期、4个过滤器和5个退出设置都能组合且都被运行,才是240个候选。若有些组合因规则冲突而不可用,实际集合应按真正测试过的版本记录;如果研究者看过结果后又增删窗口或改过滤阈值,最终表格的行数未必能说明曾经发生过多少次搜索。测试的关键不是机械地把所有可能组合都算进去,而是诚实列出哪些结果曾参与决策。

候选数量也不等于相互独立的检验次数。例如,相邻回看期或只差一个退出条件的规则,收益序列可能高度相关;不能据此把240个候选想成240个独立市场实验。联合时间抽样会保留样本中观察到的部分同期相关结构,再用全体候选的最大值形成参考分布。不过,若这种关系随市场状态改变,历史样本中的协方差未必适用于其他阶段。

FDR 与固定统计量的区块置信区间回答不同问题

Benjamini–Hochberg 等错误发现率(FDR)方法处理多个个别假设的 p 值,并在适用条件下控制被拒绝结果中的预期错误比例。RC 与 SPA 是针对相对基准的家族最大值进行一次全局检验。它们都涉及多重性,但不能互相替代。多重检验与 FDR 指南介绍的是后一类以外的错误发现率目标。

一般的区块自助置信区间也不是 RC 或 SPA。它可以估计一个预先固定统计量的抽样不确定性,例如单条策略的平均收益或 Sharpe 比率。如果策略是看过大量候选的结果后才挑出来的,这个单统计量区间不会自动校正赢家选择。RC 与 SPA 的关键是每次都在整个候选集合上重新计算最大统计量,并使用按零假设构造的分布。区块抽样是处理时间依赖的一种计算设计;“用了 bootstrap”本身不等于完成了搜索校正。

p 值是以所定义的零假设、样本和检验设计为条件,对最大统计量极端程度的衡量,不是策略未来亏损的概率,也不是零假设为真的概率。全局拒绝给出集合层面的证据后,仍需面对选择哪一条规则的问题。应在独立或前瞻数据上设定新的选择程序,且不能反复用这份确认数据调参,再把结果称作独立确认。验证只能提供额外证据,不能消除市场制度变化或执行成本不确定性。

Purged Cross-Validation(净化交叉验证)处理的是另一类问题:在按时间排序的数据中,减少训练样本与测试样本之间的时间信息泄漏。它不检验候选规则族的最大值是否超过基准;这是 RC/SPA 的全局检验问题。Purged CV 与 embargo 指南进一步说明如何处理这种时间隔离。

拒绝零假设不等于找到了赢家或保证未来收益

若 RC 或 SPA 拒绝全局零假设,结论仅限于指定的候选集、基准、评估样本、表现指标、零分布设计和假设:有家族层面的证据表明至少一个候选优于基准。它不会指出哪个规则的真实表现最好,不会自动证明最终选中的一条规则单独显著,也不表示所有候选都获胜。未能拒绝也不等于证明规则完全相同或毫无价值,只表示在这份样本和这个设计下证据不足。

这类检验不预测未来收益,也不保证回测能在实盘重现。未记录的尝试、前视偏差、幸存者偏差、不现实的成本、市场冲击和非平稳性都需要另行处理。若看过结果后再修改候选集,检验所针对的搜索范围也会改变。若要选择具体规则,可采用适合候选层面推断的方法,并使用没有参与筛选的数据另行验证;验证仍不能保证未来市场状态与历史相同。

在解读统计显著性时,也要区分估计目标与操作决策:全局拒绝支持“某个候选可能优于基准”的集合层面判断,但应用中最终仍要在候选间取舍。若根据同一份回测继续挑参数,随后又把该结果称作确认性证据,就重新引入了选择。可以事先规定新的确认阶段、评价指标和停止规则,并把该阶段与原始发现分开记录。即使确认结果支持候选,也只是对另一个样本和流程的证据,不会改变 RC 或 SPA 不是收益保证这一点。

报告设计细节以便复现

报告应说明基准、完整候选集合及其形成过程、评估日期和频率、净收益或损失差定义、费用、指标、所用检验名称和 p 值。若使用 SPA,还应标明实现版本和 p 值类型。另需说明自助抽样方法、区块长度或期望长度、重复次数、时间向量如何联合抽取,以及零分布如何构造。

记录在选出赢家前尝试过的参数范围、过滤器、市场、持有期、成本假设和重跑过程。如果检验时使用了筛选后的子集,要解释筛选过程及其使用过的数据。这些信息能让读者判断检验是否覆盖了实际选择流程。RC 或 SPA 只针对所描述的样本与假设给出条件性的家族层面证据,不能替代对交易执行和策略后续表现的观察。

常见问题

Q1SPA 是否总是比 Reality Check 更有检验力?

不是。SPA 的标准化和样本依赖零分布可以降低较差候选的影响并提高检验力,但结果取决于数据和假设,两种方法不存在无条件的统一优劣。

Q2SPA 显著是否告诉我该采用哪条规则?

不会。它提供的是整个候选集相对基准的全局证据。若要挑选具体规则,还需适合候选层面的推断程序和未用于筛选的数据验证。

Q3可以把表现差的尝试从检验集合中删掉吗?

如果它们曾参与选择赢家,排除可能低估搜索范围。解释校正结果前,应界定并记录所有影响选择的相关候选。 主要研究 - White, “A Reality Check for Data Snooping” (2000) - Hansen, “A Test for Superior Predictive Ability” (2005) - Sullivan, Timmermann, and White, “Data-Snooping, Technical Trading Rule Performance, and the Bootstrap” (1999) - Politis and Romano, “The Stationary Bootstrap” (1994)

资料来源与延伸阅读

报告问题

我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈

快速检查

读完指南后,用 3 道题检查一下

问题 1 / 3

问题 01

RC 与 SPA 的全局零假设表示什么?

选择答案即可查看解释

期权术语表