阅读约 16 分钟· 发布于 2025年4月2日· 更新于 2026年5月14日

回测:验证你策略的完整指南

一个在理论上看似出色的策略,可能在实盘中崩溃。回测能将好想法从幻觉中分离出来,前提是必须严谨地进行。本指南为你提供完整方法:数据选择、关键指标、需避免的陷阱以及能够带来差异的工具。

作者 Florent Poux
审校 Benjamin Sultan
一张沙漏图片,寓意回测所需的时间

一个在理论上看似出色的策略,可能在实盘中崩溃。回测能将好想法从幻觉中分离出来,前提是必须严谨地进行。本指南为你提供完整方法:数据选择、关键指标、需避免的陷阱以及能够带来差异的工具。

一句话总结

回测是将策略应用于历史数据,以估计其稳健性的过程。做得好,它能揭示真实回撤、风险/收益比,以及策略失效的条件。做得糟,它会产出在历史上"完美",但在实盘中撑不过一个月的策略。两者的差别,取决于大多数业余交易者忽视的5到6条方法论原则。

部署前为何必须回测

三个根本原因:

  • 过滤掉无价值的想法。 一个在10年中产生60%回撤的策略不具备可行性,无论收益率多高。回测在5分钟内就能揭示这一点。
  • 校准资金管理。 了解交易的真实分布(平均盈利、平均亏损、连续亏损长度)可以让你正确地确定仓位大小。
  • 建立必要的信心。 在没有看过策略历史表现的情况下交易,会导致你在首次回撤时放弃。严谨的回测提供坚持下去所需的背景。

回测并不保证未来表现。恰恰相反:它是过滤错误"好想法"的筛子。一个在回测中失败的策略,在实盘中成功的可能性极低。

一份稳健回测的组成部分

数据

数据类型 典型粒度 应用场景
OHLC日线 每日1根K线 波段、持仓交易
OHLC日内 1分钟到1小时 日内交易
Tick数据 每笔成交 高频、剥头皮
订单簿 盘口快照 做市、套利

对大多数交易者而言,干净的日线或H1数据已足够。可靠来源:Bloomberg、Refinitiv、Polygon.io、Alpaca、EODHD,以及券商自身(Interactive Brokers、MetaTrader)。避免使用从大众网站爬取的数据,这类数据往往不完整。

三项预处理不可或缺:

  • 对股票的股息和拆分进行调整。
  • 在不进行粗糙插值的情况下填补缺口(节假日、停牌)。
  • 检查异常值(从未存在过的50%影线)。

规则

要无歧义地记录每条规则。"RSI低时买入"无法执行。"日线RSI 14跌破30时收盘买入,突破70时卖出"才可测试。

四类规则:

  • 入场:带有水平和时机的精确条件。
  • 出场:止损、止盈、条件出场。
  • 资金管理:仓位大小、单笔风险、最大并行数。
  • 过滤器:趋势、波动率、时段、日期、新闻。

成本

这是最常被忽视的元素。一个每年100笔交易的策略,若回测不计入成本,会高估5%到15%的表现。

需要纳入的构成部分:

  • 佣金:每笔交易0.5至5美元,因券商和品种而异。
  • 点差:主要外汇1-2点,流动性高的期货1个tick,小盘股可高达0.5%。
  • 滑点:日内通常0.5至2个tick,新闻触发的止损会更多。
  • 隔夜融资费:杠杆CFD和加密货币。

关键指标

毛收益率并不够。六个指标用于诚实的评估:

指标 定义 最低可接受门槛
夏普比率 收益 / 波动率(年化) > 1.0(理想 > 1.5)
最大回撤 期间最坏累积亏损 通常 < 20-25%
卡玛比率 年化收益 / 最大回撤 > 0.5(理想 > 1)
胜率 盈利交易% 视R/R而定,通常35-60%
平均R/R 平均盈利 / 平均亏损 通常 > 1.5
盈亏比 盈利总和 / 亏损总和 > 1.5(理想 > 2)

如果平均R/R为3:1,30%胜率的策略也可以非常盈利。反过来,R/R为0.3:1的80%胜率策略是危险的(一笔差交易就能毁掉一长串连胜)。

需要警惕的陷阱

1. 过拟合

这是最阴险的陷阱。你测试了200种参数组合,留下最好的那个,策略在历史上显示出夏普3.5。三个月后实盘亏损15%。

症状:

  • 在优化期内表现出色,其他时期平庸。
  • 对参数极度敏感:EMA 21有效,EMA 22却炸。
  • 可调参数数量 > 4-5个。
  • 表现好到不真实(简单策略夏普 > 3)。

应对方法:

  • 分割数据:70%训练,30%验证。在前者上优化,在后者上验证。
  • 滚动前向分析:在滑动窗口上优化,在下一段上验证。
  • 优先考虑简洁:最多2-3个参数。
  • 在多个标的上测试:在EUR/USD上有效的策略,也必须能撑住GBP/USD。

2. 幸存者偏差

在当前的标普500成分上回测会忽略已被剔除的公司(常因破产)。结果会高估当时的实际表现。对个股策略,使用历史成分库(Compustat、CRSP)。

3. 前视偏差

使用决策时刻无法获得的信息。常见示例:在当前K线尚未结束时,就在该K线上计算移动平均。这种偏差会人为抬高表现。

4. 不具代表性的市场环境

仅在2017-2021年上回测会忽视一个持续上涨的环境。到2022年,许多此类"无敌"策略爆掉了。至少覆盖一个完整周期(包含2008或2020年在内的10-15年)。

一个仅覆盖近期牛市的回测不是回测,而是幻觉。一项测试的价值在于揭示策略在市场对你不利时的表现。

2026年可用的工具

工具 优势 劣势 价格
TradingView(Pine Script) 庞大社区,上手快 免费版有回测时长限制 免费 + 15-60美元/月
MetaTrader(MQL4/5) 外汇标准,券商免费 专有语言,调试痛苦 免费
Python(Backtrader、vectorbt、zipline) 完全灵活,数据科学生态 学习曲线,基础设施 免费 + 数据费用
QuantConnect 云端,多资产,庞大数据宇宙 高级功能需订阅 免费 + 25-200美元/月
Obside 无需代码,20年回测 < 1分钟,AI副驾 面向自主-系统化混合策略设计 免费增值

选择取决于你的技术水平和目标。追求速度和易用性:Obside或TradingView。追求最大灵活性:配合vectorbt或Backtrader的Python。

三种方式:手动、代码化、自动化

手动回测。 你在历史图表上手工应用规则。对理解你的策略有教学价值。对认真的验证而言太慢且易受认知偏差影响(通常3年数据需50-100小时)。

代码化回测。 你编写实现规则的代码(Python、Pine、MQL)。精确、可重现,但需要开发者技能。简单策略预计3-15小时。

AI辅助回测。 你用自然语言描述策略,AI生成代码并运行测试。总耗时数分钟。这是自2024年以来随着先进语言模型而普及的方法。

从回测到上线

经过验证的回测是必要条件,而非充分条件。部署前还有四个步骤:

  1. 模拟交易:30-90天的实时模拟,以验证执行延迟并确认表现。
  2. 滚动前向实盘:用象征性资金(账户的1-5%)运行1-3个月。
  3. 渐进放量:若表现符合预期,每30天将规模翻倍。
  4. 持续监控:出现异常回撤或与预期偏离时发出告警。

这种递进方式可降低令人不快的意外风险(实际滑点比预期更糟、券商延迟、回测未覆盖的事件)。

用Obside在几分钟内测试你的策略

传统回测要花数天:数据采集、写代码、调试、分析。借助Obside,你用自然语言描述策略,在20年多资产历史数据上启动回测,在1分钟内得到夏普、回撤与稳健性。AI副驾解释结果并给出情境化的改进建议。免费创建你的Obside账户,今晚就验证你的第一个策略。

仅供教育用途。不构成投资建议。交易存在风险,包括可能的本金损失。

常见问题

可靠回测最少需要多少年数据?

理想情况下10到15年,至少包含一次重大危机(2008、2020)。5年可以用于快速概念验证,但在此范围内不要得出强结论。日内策略所需绝对年数较少,但需要更细的数据(分钟或tick粒度)。

回测结果好就保证策略能行吗?

不能。回测过滤掉差想法并提供风险框架,但不是保证。即便是历史上最优的策略,如果市场体制改变(长期低波动、央行大规模干预等),也可能失败。

我可以优化多少个参数?

在能上线的策略中最多2-4个。超过这个数量,过拟合风险就变得严重。如果你的策略需要7个"优化过"的参数,它很可能在历史上被曲线拟合。

是否需要在多个标的上回测?

需要,这是稳健性测试中最好的之一。一个只在EUR/USD上有效却在GBP/USD上失败的策略,很可能被曲线拟合。真正的策略至少能在3-5个同类品种上撑住。

滚动前向还是经典回测?

只要可行就选滚动前向。你在一个滑动窗口(例如12个月)上优化,在接下来的一段(3个月)上验证,然后向前滑动并重复。这更贴近周期性调整策略的交易者的现实。

回测对期权也适用吗?

适用,但有复杂性:正确建模隐含波动率、价差上的滑点、到期。对此类情境,专业平台(CBOE LiveVol、OptionsAlpha)优于通用工具。

相关文章

相关文章

在你的投资组合上试用 Obside

连接你的券商,一句话构建你的投资组合。

开始