什么是回测?完整指南
回测是把交易策略的规则应用到历史价格数据上,模拟它在过去会有怎样的表现,从而在投入真实资金之前评估策略的过程。可信的回测在每个时间点只使用当时可得的数据,真实地建模交易成本,并用从未参与优化的样本外数据进行验证。
回测是系统化交易的基础。任何专业量化基金在把资金投入一个策略之前,都会把规则放到多年的历史数据上运行,以了解这种方法在过去会有怎样的表现。本指南解释回测是什么、如何运作,以及让大多数业余回测失效的错误。
核心思想
交易策略就是一套规则。条件 A 成立时买入。B 发生时卖出。按规则 C 确定仓位大小。回测把这些规则应用到一个历史数据集上——一段来自过去的价格、成交量和其他市场数据序列——并模拟如果你在那段时期严格遵循这些规则会发生什么。
结果是一份模拟的业绩记录:一系列带有入场价、出场价和持仓时长的假设交易。由此你可以计算总收益、夏普比率、最大回撤和胜率等绩效指标。这些指标帮助你在冒真实资金风险之前,判断这个策略是否有价值。
关键词是模拟。回测不是交易,而是交易的模型。模拟的质量取决于历史数据的质量、交易成本假设的真实程度,以及是否存在制造虚假优势的编码错误。
为什么回测很重要
没有回测,要在部署前评估一个策略,要么靠实盘交易(代价高昂——你在用真实资金交学费),要么靠主观看图(“这个形态看起来通常有效”)。两者都不严谨。
回测可以让你:
- 了解策略在不同市场状态下的表现
- 估计预期回撤,以便规划仓位大小,并为亏损期的心理现实做好准备
- 客观比较相互竞争的策略变体
- 识别参数敏感性——策略只在某个特定参数值下有效,还是在一个范围内都有效?
- 在逻辑错误造成损失之前发现它们
机构量化基金在配置资金之前,会花数月时间对策略进行回测和压力测试。跳过这一步的散户交易者处于系统性劣势。
回测如何运作
回测的机制遵循以下顺序:
- 加载历史数据。测试期内各资产的 OHLCV(开盘价、最高价、最低价、收盘价、成交量)K线。
- 计算指标。计算各种衍生信号——移动平均线、RSI、成交量均值——在每个时间点只使用当时可得的数据(不前视)。
- 生成信号。在每根K线上判断入场或出场条件是否满足。
- 模拟执行。信号触发时,以符合实际的价格记录入场(通常是下一根K线的开盘价,或收盘价加滑点模型),并扣除佣金。
- 跟踪组合状态。在每根K线上维护现金余额和持仓价值。
- 计算绩效指标。最后把所有交易汇总成统计摘要。
关键局限:前视偏差
当你的回测使用了在做出交易决策时本不可能获得的信息时,就会产生前视偏差。这是回测看起来很好、实盘却失败的最常见原因。
前视偏差的常见来源:
- 用今天的收盘价生成信号,然后以今天的收盘价执行(你不可能同时做到这两件事)
- 使用拆股复权或分红复权的历史价格,却不考虑这些调整在何时才会被知晓
- 先在整个数据集上计算指标,再逐根遍历K线(第 100 根K线上的指标值包含了第 101–500 根K线的数据)
- 对基本面数据(盈利、分析师预期修正)使用提交备案日期,而不是公告日期
过拟合:更隐蔽的问题
即使回测实现得完全正确,过拟合——也称曲线拟合(curve-fitting)——仍然是一个重大风险。如果你在同一数据集上测试足够多的参数组合,其中一些纯粹出于偶然就会产生出色的结果。危险在于把这种随机拟合误认为真正的优势。
标准的解决办法是样本外(out-of-sample)测试:把历史数据分成训练期(用于优化参数)和测试期(在策略最终确定之前完全不碰)。只有测试期的结果才可信。如果两个时期的表现相近,说明策略具有泛化能力,可能是稳健的。如果样本外时期表现大幅落后,说明策略对训练数据过拟合了。
需要评估的关键指标
回测报告的不应只有总收益。最重要的指标有:
- CAGR(复合年增长率):年化收益——在不同长度的时期之间比总收益更有意义
- 夏普比率:CAGR 除以年化波动率——衡量风险调整后收益
- 最大回撤:期间从峰值到谷底的最大亏损——决定你在心理上能否现实地承受这个策略
- 卡玛比率(Calmar Ratio):CAGR / 最大回撤——便于比较不同策略的回撤效率
- 胜率和盈利因子:交易盈利的频率,以及盈利交易能否压过亏损交易
如何开始
传统回测需要编程知识——用 Python 搭配 pandas 和 backtrader,或在 TradingView 中使用 Pine Script。但 AI 驱动的工具改变了这一点。QuantPrompt 让你用日常语言描述策略,无需编写代码即可运行完整的历史回测。这大大降低了系统化测试的门槛,让懂市场但不是软件工程师的交易者也能使用。
无论使用哪种工具,纪律都比平台更重要:使用足够的历史数据,进行样本外测试,真实地建模交易成本,并且在断定一个策略具有真正优势之前,始终把结果与买入并持有(buy-and-hold)基准进行比较。
常见问题
参考资料
- Harvey, C. R. & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management.
- Bailey, D. H. & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality. The Journal of Portfolio Management.
- QuantConnect. Backtesting (Cloud Platform documentation).