仅凭“拿历史数据测策略”这一句话,无法判断某个回测结果是否可信,也无法据此推出任何买卖、加减仓或策略上线动作。要判断一个回测结论能不能当参考,至少还缺几类关键信息:数据来源与清洗口径、样本区间和标的范围、策略规则是否在看过数据后才确定、交易成本与成交假设、以及是否做过样本外或滚动检验。下面只解释这些坑分别是什么、为什么会并存,以及该去核对哪些公开信息。

回测里常见的几类数据偏差

回测的第一层问题往往不在策略,而在数据本身。同一套规则跑出不同结果,常见原因是数据口径不一致。

  • 幸存者偏差:如果标的池只包含今天还存续的品种,那些中途退市、被并购或长期停牌的样本被剔除,历史表现会被系统性抬高。核验方法是确认标的池是否包含当期全部可交易品种,而不是用“现在的名单”回溯。
  • 前视偏差(未来函数):策略在某个时点用到了当时还不可能知道的信息,比如用当天收盘价决定当天开盘买卖,或用后来才修正的财务数据。核验方法是逐条检查信号生成时间与可成交时间是否对齐。
  • 复权与分红处理:不同复权方式会改变价格序列,进而改变均线、涨跌幅等指标。需要核对数据商对分红、送转、停牌的处理规则,以及回测是否与之一致。
  • 时间戳与交易日历:跨市场、跨时区或含节假日的策略,若交易日历不匹配,会出现本不该成交的日期。这类问题只能通过核对原始交易日历发现。

这些偏差不是互斥的,一个回测可能同时踩中多个,所以看到异常亮眼的结果时,先怀疑数据而不是先相信策略。

过拟合与样本区间:为什么“历史很好”不等于“未来可用”

过拟合指的是策略规则被反复调整到刚好贴合某段历史数据,换一段数据就失效。它和样本区间选择是同一类问题的两面。

  • 参数被反复试错:如果同一段历史被用来选参数、选标的、选阈值,那么最终结果里包含了大量“事后挑选”的成分。识别方法是看策略规则是否在接触数据之前就已固定,以及参数附近是否表现剧烈跳变——真正稳健的规则通常对参数不极端敏感。
  • 样本区间过短或过特殊:一段包含单边行情或极端事件的区间,会让某些策略显得特别好或特别差。核验时应确认区间是否覆盖了不同市场状态,而不是只看一段顺风期。
  • 样本外与滚动检验:把数据分成“调参用”和“验证用”,或用滚动窗口反复检验,能部分暴露过拟合。但要注意,如果样本外数据也被反复用来改策略,它就不再是真正的样本外。
  • 多重比较:同时测试大量策略再挑最好的那个,即使全是随机策略,也可能出现看起来不错的结果。核验方法是看测试了多少个变体、是否对“挑选”本身做了校正。

这些机制无法由题述信息证实具体某个策略是否过拟合,只能作为待验证假设,通过核对策略开发记录和检验设计来区分。

需要核对的公开事实与判断边界

要把“回测陷阱”从概念落到可核查,需要看几类信息,而不是只看一条净值曲线。

需要核对的信息能帮助区分什么
数据来源、标的池构成、退市与停牌处理是否存在幸存者偏差、样本覆盖是否完整
信号生成与成交时点的时间对齐是否存在前视偏差
交易成本、滑点、涨跌停与流动性假设回测收益是否被高估
策略规则的确定时间与调参次数过拟合风险高低
样本内/外划分与滚动检验设计结论是否经过独立验证
测试过的策略变体数量是否存在多重比较带来的虚高

判断边界在于:即使以上都核对过,回测也只是对历史的一种描述,不能保证未来重现。回测能回答的是“在这段数据和这些假设下,规则表现如何”,不能回答“接下来该不该用”。涉及具体产品的规则、费用或披露口径,应以交易所、登记结算机构或产品法律文件的原文为准;涉及具体策略的实盘适用性,需要结合实时数据和自身约束另行判断,而不是由一段历史回测直接推出。

常见问题

回测收益很高,是不是就说明策略有效?

不一定。高收益可能来自幸存者偏差、前视偏差、成本假设过于宽松,或对同一段数据的反复调参。要判断有效性,需要核对数据口径、成交假设和是否做过真正的样本外检验,而不是只看收益数字。

样本外检验能完全排除过拟合吗?

不能完全排除。样本外检验能暴露一部分过拟合,但如果样本外数据也被反复用来修改策略,它的独立性就被削弱。更稳妥的做法是核对检验设计是否在接触数据前就已确定,以及测试了多少个策略变体。

怎么判断一个回测结论值不值得参考?

先看它是否说清了数据来源、标的池、成交时点和成本假设,再看策略规则是否在数据之前固定、是否经过独立样本验证。这些信息缺失时,回测结论只能当作待验证的假设,而不是可以直接采信的依据。