PULSAR.INK

回测详解

阅读时间: 7 分钟 更新于: 2026-04-24
回测对历史数据运行策略,以估算其过去的表现。本文介绍前推验证、前瞻偏差、幸存者偏差、真实滑点,以及加密货币策略回测系统性高估结果的具体原因。

回测是在历史数据上模拟策略。目标是判断策略是否有足够的优势值得实盘运行。回测输出是盈亏曲线、回撤特征和交易统计——操作者据此决定部署、重新调参或放弃。

回测的问题不在于它们撒谎。而在于它们讲述一种非常特定的真实——"策略在这段历史上这些假设下的表现如何"——而操作者一贯地将这种真实误解为预测。

诚实的回测报告什么

指标告诉您什么不告诉您什么
总收益样本期内的累计盈亏路径的波动程度
夏普比率每单位波动率的收益尾部风险;下行与上行波动率
最大回撤样本内最差峰谷回撤样本外可能的回撤
胜率盈利交易占比盈亏规模分布
盈利因子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 个基点的滑点误差会复利成差异巨大的最终资金。

修正方法:模拟真实成交

没有公开的回测引擎能完美处理所有这些。务实的方法是运行回测,然后对结果打折扣——预期收益降低 20–40%,回撤提高 30–50%——以得到更接近实盘策略实际表现的数字。

前推验证

诚实替代"在所有历史上训练,声称它有效"的方法是前推验证

  1. 选择样本内窗口(如 2021-01 至 2022-01)并在其上调参。
  2. 选择样本外窗口(2022-01 至 2022-04),对调参后的策略进行测试,不做进一步调参
  3. 滑动窗口向前(2021-04 至 2022-04 样本内,2022-04 至 2022-07 样本外)并重复。
  4. 拼接所有样本外盈亏。该拼接结果是策略实际可期待产生的结果。

前推验证通常使报告收益比单窗口拟合低 30–60%。不运行前推验证的操作者得到的是过拟合的数字。

加密货币特有的陷阱

各策略专项说明

更广泛的纪律在 自动交易中的风险管理 中有所介绍:无论回测精度多高,都无法消除实盘账户上限的必要性,因为回测无法模拟的唯一变量是操作者本身。

本知识库延伸阅读