回测详解
回测是在历史数据上模拟策略。目标是判断策略是否有足够的优势值得实盘运行。回测输出是盈亏曲线、回撤特征和交易统计——操作者据此决定部署、重新调参或放弃。
回测的问题不在于它们撒谎。而在于它们讲述一种非常特定的真实——"策略在这段历史上这些假设下的表现如何"——而操作者一贯地将这种真实误解为预测。
诚实的回测报告什么
| 指标 | 告诉您什么 | 不告诉您什么 |
|---|---|---|
| 总收益 | 样本期内的累计盈亏 | 路径的波动程度 |
| 夏普比率 | 每单位波动率的收益 | 尾部风险;下行与上行波动率 |
| 最大回撤 | 样本内最差峰谷回撤 | 样本外可能的回撤 |
| 胜率 | 盈利交易占比 | 盈亏规模分布 |
| 盈利因子 | Sum(盈利) / Sum(亏损) | 该比率随时间的稳定性 |
| 持仓时间 | 资金处于工作状态的时间百分比 | 闲置资金的机会成本 |
| 交易次数 | 结果的样本量 | 所有成交是否真实 |
| 滑点 + 手续费核算 | 扣除成本后的盈利能力 | 在该订单规模下真实盘口深度 |
如果回测不报告所有这些,它是广告,不是回测。
击垮散户回测的四大偏差
1. 前瞻偏差
策略使用了决策时刻实际不可用的数据。经典案例是在当前 K 线收盘时计算指标,然后在同一根 K 线内交易。还常见:针对用今天存在的代币知识选定的品种池进行再平衡(由此产生"幸存者偏差")。
修正方法:时间 t 的决策必须仅使用 t 时刻可用的数据。通过将所有信号至少移位一根 K 线,并在下一根 K 线开盘时交易而非当前 K 线收盘时来强制执行。
2. 幸存者偏差
您测试的品种池是今天存在的品种池。每个被下架的代币、每个倒闭的交易所、每个失败的协议都不在其中。一个在今天品种池上"有效"的均值回归策略,若面对五年前存在的品种池,早就被摧毁了,因为失败者已经消失。
修正方法:针对时间点品种池进行测试——每个日期可交易的资产集合——对于加密货币来说成本高昂,对于长尾代币几乎不可能。次优修正是将回测范围限制在流动性前 N 名资产,承认偏差的存在,并相应调整仓位。
3. 样本期偏差
回测窗口是市场历史的一个切片,您选择的切片对结果的影响超过策略本身。2023-01 至 2024-01 的 BTC/USDT 网格回测看起来完美(横盘)。2024-02 至 2025-04 的同一网格回测看起来很糟糕(趋势)。两个窗口都没错;两个都不完整。
修正方法:报告多个样本外窗口的结果,包括完整的牛熊牛周期。报告分布,而非单一数字。
4. 滑点低估
回测以历史中间价成交。实盘市场以价差对冲您,当盘口薄或波动快时甚至更差。对于每天执行数百笔交易的网格机器人,5 个基点的滑点误差会复利成差异巨大的最终资金。
修正方法:模拟真实成交:
- 吃单订单以该时刻请求规模下最差的可见价格成交。
- 挂单订单仅在价格穿越挂单价位时成交,而非仅触碰。
- 在高波动 K 线期间加宽价差模型;在低流动性时段,将订单规模限制在 K 线成交量的合理比例内。
没有公开的回测引擎能完美处理所有这些。务实的方法是运行回测,然后对结果打折扣——预期收益降低 20–40%,回撤提高 30–50%——以得到更接近实盘策略实际表现的数字。
前推验证
诚实替代"在所有历史上训练,声称它有效"的方法是前推验证:
- 选择样本内窗口(如 2021-01 至 2022-01)并在其上调参。
- 选择样本外窗口(2022-01 至 2022-04),对调参后的策略进行测试,不做进一步调参。
- 滑动窗口向前(2021-04 至 2022-04 样本内,2022-04 至 2022-07 样本外)并重复。
- 拼接所有样本外盈亏。该拼接结果是策略实际可期待产生的结果。
前推验证通常使报告收益比单窗口拟合低 30–60%。不运行前推验证的操作者得到的是过拟合的数字。
加密货币特有的陷阱
- 交易所迁移。 2019 年起的 BTC/USDT 在交易所 A 的回测,可能拼接了已不存在的交易所数据。流动性和价差不可迁移。
- 稳定币脱锚。 使用 USDT 作为计价货币的策略假设每根 K 线 USDT = $1。这在较长窗口内曾是错误的(2022 年 5 月、2023 年 3 月),而回测通常不对此修正。
- 代币稀释 / 空投。 代币供给的持续变化在长周期内悄然改变"价格"。
- 手续费计划变更。 交易所每季度更改挂单/吃单手续费。使用 2026 年手续费的 2020 年回测是乐观的。
- 期货资金费率基线。 随着流动性成熟,资金费率自 2021 年以来呈下降趋势;2018 年的资金套利回测不是 2026 年的预测。
各策略专项说明
- 网格交易策略 — 单区间网格回测总是看起来完美。在 2022 年熊市和 2024 年 Q1 突破行情中重新回测同一网格;数字差异很大。
- DCA 机器人策略 — DCA 回测最诚实,但路径依赖于开始日期。多起始日期回测是解决方案。
- 套利机器人 — 回测忽略交易对手风险和转账延迟,而这两者是最大的实盘亏损来源。
- 信号交易机器人 — 信号提供者的回测几乎总是受幸存者偏差影响;使用操作者自己的执行策略重新运行。
更广泛的纪律在 自动交易中的风险管理 中有所介绍:无论回测精度多高,都无法消除实盘账户上限的必要性,因为回测无法模拟的唯一变量是操作者本身。
本知识库延伸阅读
- 什么是加密货币自动交易? — 更广泛的类别。
- 自动交易中的风险管理 — 无论回测怎么说,都能限制任何策略下行的上限。