仅凭“用历史走势检验新策略”这一提法,无法推出该策略能不能赚钱,也无法推出任何买卖、加减仓或资金安排动作。历史走势只能回答“在特定假设和特定数据下,这套规则过去会得到什么结果”,它既不能证明未来收益,也不能替读者决定是否采用某个策略。要判断一次检验是否有参考价值,至少还需要知道:策略规则是否被完整、无歧义地写下来,历史数据来自哪里、覆盖什么范围、是否包含退市与停牌等情形,以及回测中如何设定交易成本与成交价格。
回测到底在检验什么
回测是把一套事先写死的规则,放到历史行情里逐笔模拟,得到一个结果序列。它检验的是“规则与这段历史数据的匹配程度”,而不是“策略的赚钱能力”本身。
需要区分两个层面:
- 规则层面:入场、出场、仓位、标的范围等条件是否明确到可以被程序或人工无歧义执行。规则里如果留有“看情况”“感觉不对就撤”这类判断,回测结果就无法被复现。
- 数据层面:用的是哪一类价格(收盘价、开盘价、复权价)、哪个市场、哪段时间、什么频率的数据。不同选择会得到不同结果,这属于定义差异,不是策略优劣。
因此,看到一份回测结果时,先要问的不是“赚了多少”,而是“它到底模拟了什么”。
结果偏离实盘的常见来源
回测结果与真实交易之间通常存在差距,原因可能同时存在,需要分别核对:
- 交易成本与摩擦:手续费、印花税、滑点、冲击成本是否计入,按什么标准计入。未计入或低估时,结果会偏乐观。
- 成交假设:信号出现后按哪个价格成交、能否成交。若假设总能以理想价格成交,在流动性不足的标的上会失真。
- 数据偏差:是否使用了当时尚不可得的信息,是否剔除了已退市或长期停牌的标的,是否存在复权处理带来的失真。这类问题会让历史结果看起来比实际更好。
- 参数选择:规则中的参数是否是在同一段历史上反复调整后挑出来的。若是,则这段历史已不再是“未见过的数据”。
- 样本区间:区间是否只覆盖单一市场环境。不同区间的结果差异,本身说明结论对环境的依赖程度。
这些因素无法由题述信息判断是否存在,只能通过核对回测所用的数据源、成本设定和规则文档来确认。
需要核对的公开事实与判断边界
要评估一次历史检验的可信度,可以核对以下可查证信息:
- 策略规则原文:是否完整、可复现,是否存在事后补充的条件。
- 数据来源说明:数据商、复权方式、是否含退市标的、时间范围。
- 成本与成交假设:写在回测说明里的具体设定,而非口头描述。
- 样本外表现:是否有独立于调参区间之外的数据结果。若只有一段区间的结果,结论的适用范围就仅限于该区间所代表的环境。
结论的适用边界在于:历史回测能排除一部分明显不可行的规则,但无法确认未来收益;它能说明“在这段数据和这些假设下结果如何”,不能说明“换个市场环境会怎样”。任何把回测结果直接等同于未来盈利的推断,都超出了历史数据能支持的范围。
常见问题
历史回测赚钱,是否说明策略未来也能赚钱?
不能。回测只反映规则与特定历史区间的匹配结果,未来市场结构、参与者和成本条件都可能变化。要判断稳健性,需要看是否有独立样本外的结果,以及结果对参数和区间的敏感程度。
回测中哪些偏差最容易让结果偏乐观?
常见的是使用了当时不可得的信息、忽略交易成本与滑点、以及在同一段数据上反复调参。这些都会让历史结果好于可执行的真实情况。核对回测说明中的数据来源、成本设定和参数调整记录,有助于识别这类问题。
该选多长的历史区间来检验策略?
区间长度没有统一标准,取决于策略逻辑所依赖的市场条件是否在区间内出现过。更关键的是区间是否覆盖了不同的市场环境,以及是否有独立于调参区间的数据用于验证。只看单一区间的结果,结论的适用范围就受限于该区间。