回测回答的是一个很窄的问题:在这些假设下,把这套规则用在这段数据上,究竟会发生什么? 它不会告诉你接下来会发生什么。读好一份报告,就是要知道哪些数字有分量,哪些数字很容易被美化。
先看假设,而不是收益
在看任何结果之前,先确认测试是怎么跑的。在 Backte.st 中,每份报告都会在 数据与假设 中列出:
- 信号使用已完成的 K 线。 规则只能在一根 K 线收盘之后才对它作出反应。
- 订单在下一根 K 线开盘时成交,绝不会在触发信号的收盘价成交。
- 每次进场和出场都计入成本:佣金和滑点,以每边基点计。
- 一次只持有一个仓位,没有杠杆、止损或止盈目标。
如果你在别处看到的报告没有说明成交规则和成本,请把它的收益最多当作一个上限。
净收益与买入持有
净收益是扣除成本后账户价值的变化。单看它意义不大,因为大多数市场都有趋势。所以每份报告还会显示 相同仓位比例下的买入持有:如果你的策略每笔交易投入 20% 的资金,那么对比基准就是整个期间都把 20% 的资金放在市场里。
一个跑赢买入持有的策略,如果靠的是多得多的交易(更多成本和税费)或更深的回撤,实际上可能更差。
最大回撤:你真正会感受到的数字
最大回撤是账户价值从峰值到谷底的最大跌幅。真实的人能否坚持一个策略,往往取决于这个数字。收益相同的两个策略,如果其中一个途中让账户腰斩,感受会完全不同。
记住,回测中的回撤只是 那一个特定交易顺序 下的最大跌幅。打乱交易顺序 能显示它在合理范围内可能有多糟。
交易次数:证据够吗?
寥寥几笔交易靠运气几乎可以产生任何收益。Backte.st 不会假装能判断,而是把这类检验标记为 交易太少。如果你的报告只有几笔已平仓交易,在下结论之前,试试更长的历史、更小的 K 线或更多市场。
稳健性检验
主要结果只是在一组假设下跑了一次。检验会在更苛刻的条件下重新运行同一套规则:
- 未见期间:单独评估历史中最后 30% 的部分。参见 样本外测试。
- 成本翻倍:佣金和滑点加倍。参见 交易成本。
- 邻近参数:每个指标周期调整 ±10% 和 ±20%。参见 参数稳健性。
- 延迟入场:每笔订单晚一根 K 线成交。参见 前视偏差与成交时机。
- 去掉最佳交易:去掉收益最高的五笔交易。参见 过拟合。
- 交易顺序打乱:把交易顺序打乱 200 次。参见 蒙特卡洛。
在该条件下策略收益仍为正,检验就判定为 经受住了;判定至少需要 10 笔已平仓交易(打乱检验需要 20 笔)。弱点 并不意味着这个想法毫无价值,而是告诉你结果在哪里依赖于脆弱的东西。全部 经受住了 是个好的开始,但不能证明存在优势。
报告无法告诉你的
- 它看不到未来。市场状态会变化。
- 它只测试你选的市场。如果你选它们是因为它们涨了,请阅读 幸存者偏差。
- 未见期间只“未见”一次。每当你看过它之后再调整规则,它就成了训练数据的一部分。
用回测来快速、低成本地 淘汰 想法,这时它最诚实。