2026年十月23日 · 研究

数据变差时,你的策略夏普比率反而可能提高

数据变差时,你的策略夏普比率反而可能提高

让数据变得更糟之后,回测结果看起来反而可能更有说服力。删掉难看的成交记录,用整齐的价格填补缺口,夏普比率或许就会上升。这种改善可能是个警示:清洗规则也许抹去了策略赖以生存的特定市场状况。

数据质量很重要。交叉报价或重复成交可能制造出没人实际能获得的成交。但让不利观测消失的过滤器,本身也是一种模型选择。对待它时,也应该像对待新信号特征一样保持审慎。

什么情况下,错误价格才算错误数据?

首先要弄清楚这条观测代表什么。远离当时市场主流价格的成交,可能是损坏的记录、流动性稀薄时真实发生的大额扫单,也可能是某个交易场所特有的事件。成交量为零的1分钟K线,可能意味着没有发生交易;而缺失的K线,则可能意味着行情源故障。这些情况应该分别处理。

来看一个简单的均值回归策略:当价格低于短期移动平均线1%时买入,在价格回到均线时退出。在流动性稀薄的隔夜时段,一笔成交的价格比前一笔低1.2%,随后市场迅速反弹。如果这笔成交是真实的,挂着限价单的策略可能已经成交。如果这是一个没有任何可执行报价支撑的错误跳价,把这笔成交算进去就凭空创造了优势。

删掉这根K线并不一定更安全。策略可能仍有订单挂在市场中,下一笔真实成交也可能触发该订单。要做出站得住脚的行情重放,就必须模拟策略能观察到什么,以及订单可能以什么价格成交。

清洗规则会怎样影响结果?

采用明确的数据处理方式运行策略,并比较结果变化。保留原始数据源,并记录每项剔除或修正及其原因。然后报告结果有多少取决于这些决定。

数据处理方式潜在好处对回测的风险
剔除超出交易所书面说明的错误范围的成交记录避免已知无效记录造成极端值快速行情期间,规则可能把合法成交误判为异常
在缺失区间沿用上一笔价格避免指标因数据缺口而无法计算生成一个可能根本没有发生过交易的价格
使用整合后的报价,而非最新成交价更准确地反映显示出来的可执行价格报价规模、交易场所准入和排队位置仍然很重要
按统计阈值剔除所有异常K线降低结果对极端值的敏感度可能会删掉策略亏损最严重的真实压力时期

假设未过滤数据的回测夏普比率为0.9,而剔除0.8%的K线后,夏普比率升至1.4。这本身并不能证明数据质量得到了改善。要检查被剔除的K线是否集中在波动率飙升期间、这些K线是否贡献了显著比例的盈亏,以及你是否在看到结果之前就已经确定了剔除规则。

维护数据例外台账:记录数据源、时间戳、受影响字段、采取该操作的原因,以及决定是在查看策略表现之前还是之后作出的。

怎样检验清洗是否改变了策略优势?

固定策略,并在相同日期范围内比较几种合理的数据处理方式。尽可能纳入原始数据重放、书面记录的修正方案,以及针对仍有歧义观测的保守成交情景。每次运行都要报告交易笔数、换手率、回撤,以及受影响区间对盈亏的贡献,同时列出夏普比率。

然后检查发生变化的交易。如果排除少量可疑成交记录后,策略收益最高的交易消失了,就逐条查看这些记录。如果消失的是亏损交易,也要同样仔细审查。只有在规则损害回测结果时才认真检查,这本身就说明它已经在影响研究。

为了让研究可复现,应对供应商文件或其校验和、清洗代码以及例外列表进行版本管理。供应商可能会修订历史数据;下一次运行时,你应该能够判断究竟是策略变了,还是输入数据变了。

可是,清洗不是必需的吗?

是的。保留明显损坏的记录可能凭空制造一笔交易、扭曲波动率,或导致指标失效。也没人应该把原始行情源当作绝对真相。实际要点更具体:清洗可能改变回测所声称代表的市场,因此需要证据、固定规则和敏感性检查。

数据修正让表现变好时,要问问它删掉了什么观测,以及如果没有看到权益曲线,你是否还会作出同样的决定。如果答案不确定,就把两个版本都保留在研究记录中。它们之间的差异也是结果的一部分。

数据质量回测量化研究过拟合
← 全部文章