11.1 为什么要回测
回测不是为了证明策略未来必然盈利,而是为了回答:
- 这个规则在历史上有没有重复出现?
- 胜率、盈亏比、回撤大概是什么范围?
- 亏损连续出现时能否承受?
- 加入手续费和滑点后是否还有效?
- 哪些市场状态下策略表现差?
没有回测的策略,往往只是几张漂亮截图。
11.2 回测的基本要素
一个基本回测至少要定义:
交易品种:
时间周期:
样本区间:
入场规则:
出场规则:
止损规则:
止盈规则:
仓位规则:
手续费:
滑点:
最大同时持仓:
不交易条件:
规则越模糊,回测越容易自欺。比如“看到强势K线入场”就不够明确,必须定义强势K线是什么。
11.3 常见回测陷阱
过拟合:
为了让历史结果好看,不断调整参数。过拟合策略在历史上漂亮,在未来可能失效。
幸存者偏差:
只回测现在还活着或表现好的品种,忽略已经退市或失败的样本。
未来函数:
回测时使用了当时不可能知道的信息,例如用当天收盘后才确认的数据做盘中入场。
忽略成本:
不计手续费、滑点、点差和资金费率,会显著高估短线策略。
样本太少:
几个成功案例不能证明策略有效。至少要积累足够交易次数,并跨不同市场状态观察。
模拟成交过于理想:
回测如果默认每次都按信号价完整成交,会低估真实交易难度。尤其是突破、开盘、新闻后和低流动性品种,真实成交可能包含滑点、部分成交、点差扩大和无法成交。
11.4 样本外验证
把数据分成两部分:
- 样本内:用于设计和调整规则。
- 样本外:用于验证规则是否仍然有效。
如果策略只在样本内表现好,样本外明显失效,很可能只是拟合历史噪音。
也可以做前向测试:用很小仓位或模拟账户按真实时间执行,观察执行成本、心理压力和滑点是否符合回测假设。
样本外数据要提前锁定,不能反复修改参数直到样本外也变好。只要你根据样本外结果继续调参,样本外就会变成新的样本内,验证意义会下降。
11.5 策略评估指标
除了总收益,还要看:
- 最大回撤。
- 盈亏比。
- 胜率。
- 期望值。
- 连续亏损次数。
- Profit Factor。
- 平均持仓时间。
- 单笔最大亏损。
- 收益是否来自少数极端交易。
一个策略收益高但最大回撤巨大,可能并不适合真实执行。适合你的策略,不仅要数学上成立,还要心理上能坚持。
回测结果还要看稳定性。若收益主要来自少数几笔极端行情,或参数稍微变化结果就大幅恶化,说明策略可能依赖偶然样本。真实交易前,应检查不同年份、不同波动环境、不同成本假设下结果是否仍能接受。
11.6 本章练习
选择一个最简单的模型,例如“上升趋势中回踩20EMA后出现看涨吞没入场”。手工回测最近100次样本,记录:
- 入场是否严格符合规则。
- 每笔最大亏损和最大盈利。
- 实际能否成交。
- 加入手续费滑点后的R倍数。
- 连续亏损最长几次。
这比反复观看碎片化交易内容更接近真实进步。