仅凭“怎么用历史数据测一下新策略”这一句提问,无法推出某个策略是否有效,也无法推出任何买卖、加减仓或资金安排动作。历史回测能回答的是“这套规则在已发生的数据里会呈现什么结果”,不能回答“未来会不会赚钱”。要让它具备参考价值,至少还缺三类关键信息:策略规则是否被完整、无歧义地写下来;所用数据是否真实可得、是否包含退市与停牌等情形;评价标准是事前设定还是看到结果后倒推。

回测到底在测什么

回测是把一套事先写死的规则,放到历史行情或历史财务数据上跑一遍,看它在过去会触发哪些交易、产生什么盈亏路径。它检验的是规则与数据的一致性,不是策略的“正确性”。

这里有个常被混淆的分工:回测适合验证逻辑是否自洽、是否可执行、在哪些环境下会失效;它不适合用来“找参数”——反复调整参数直到历史曲线好看,得到的往往是对过去的精确描述,而非对未来的判断。参数越多、规则越复杂,这种风险越大。

结果可能来自哪些并存的原因

同一份回测曲线,背后可能有好几种解释,它们并不互斥:

  • 策略逻辑确实捕捉到了某种可重复的结构。要区分这一点,需要看它在不同市场状态、不同标的、不同时间段是否表现一致,而不是只看总收益。
  • 过拟合。规则被反复修改到贴合某段历史,换一段数据就失效。可核对的线索是:参数数量与样本长度的比例、参数微小变动后结果是否剧烈变化。
  • 幸存者偏差。如果标的池只包含今天还在交易的品种,那些中途退市、被并购、长期停牌的就被悄悄剔除了,历史收益会被系统性高估。需要核对的是数据源是否包含已退市标的及其退市前的完整数据。
  • 数据与执行假设过于理想。用收盘价成交、忽略停牌无法卖出、忽略涨跌停无法成交、忽略交易成本与冲击成本,都会让纸面结果偏离可执行结果。需要核对的是成交价假设、费用假设、停牌与涨跌停的处理方式。
  • 前视偏差。用了当时还拿不到的信息,比如用当天收盘后才公布的财报去决定当天买入。需要核对的是每个信号在时间点上是否真的可得。

把这些并列列出,是因为单看一条漂亮的净值曲线,无法判断它属于哪一种。能区分它们的,是规则的可复现性和数据处理的透明度,而不是曲线本身。

需要核对的公开事实与适用边界

要判断一份回测是否值得参考,可以核对以下可查证的信息:

  • 规则文档:入场、出场、仓位、标的范围是否被完整写出,是否存在“视情况而定”这类无法复现的表述。
  • 样本区间:是否覆盖了上涨、下跌、震荡等不同状态,区间是事前选定还是事后挑选。区间越短、状态越单一,结论的适用范围越窄。
  • 风险指标:除收益外,最大回撤、连续亏损次数、单笔最大亏损等是否披露。这些指标描述的是过程中的承受路径,不是未来承诺。
  • 成本与可执行性假设:手续费、滑点、停牌与涨跌停处理是否写明。
  • 数据来源:是否包含退市标的,财报数据的公布时点是否被正确使用。

需要说明的是,即便以上都核对无误,回测结论的适用边界仍然有限:它成立的前提是“未来与所选历史区间在结构上足够相似”,而这个前提本身无法被历史数据证明。历史表现不构成对未来收益的保证,这一点在规则层面就成立,与策略好坏无关。

常见问题

回测结果好,是否说明策略未来也能赚钱?

不能。回测只描述规则在过去数据上的表现,未来市场结构、参与者、交易规则都可能变化。结果好可能是逻辑有效,也可能是过拟合、幸存者偏差或理想化执行假设造成的,需要逐项核对才能区分。

为什么样本区间不能只挑一段?

单一区间往往只对应一种市场状态,策略在其中表现好,可能只是恰好适配了那种状态。覆盖不同状态的区间,才能看出它在环境变化时是否稳定,以及失效发生在什么条件下。

怎么判断回测有没有过拟合?

可以看参数数量相对样本长度是否过多、参数小幅变动后结果是否剧烈变化、换一段未参与调整的数据后表现是否崩塌。这些是判断线索,不是判定标准,最终仍需结合规则文档与数据处理方式一起核对。