上线之前,如何回测一个 AI 交易智能体
一套逐一穿越不同市场行情的智能体策略回测方法、报告里真正重要的那几个数字,以及为什么 LLM 驱动的回测总在自欺欺人。

一个你用一句大白话提示词搭出来的智能体,在它正确复述你的策略那一刻,感觉就像已经通过了测试。其实并没有。复述是理解,回测才是证据。在任何智能体碰到真实资金之前,你想知道的是:它那套确切的规则,在过去多年的真实市场历史里会有怎样的表现。要把一个 AI 交易智能体回测好,你需要三样东西:钉得足够紧、紧到可以重放的规则;恶劣到值得一测的测试区间;以及像批评者而非粉丝一样解读报告的纪律。本文覆盖这三点,外加一个 LLM 驱动策略独有的失败模式。
把规则钉到机器能够重放的程度
回测会拿你的逻辑对着历史数据一根一根 K 线地重放。这只有在你的智能体所做的每一个决策,都能由那一刻已经存在的数据算出来时才成立。“当日线 RSI(14) 收盘跌破 30 且价格在 200 日均线之上时买入”可以完美重放。“当新闻反应显得过头时买入”则不行,因为“显得”不在任何一根 K 线里。
所以第一项工作,是把智能体复述出来的条件变成一份完整的规格说明。一个好用的检验:一张装着历史价格和你的规则的电子表格,能否决定每一次入场、每一次出场、每一个仓位大小,而不留下任何需要临场判断的地方?如果某条规则需要解读,回测引擎总会以某种方式去解读它,而它的解读会在你未同意的情况下变成你的策略。
也要盯住那些安静的参数。滑点和费用假设、订单类型(市价单会成交;限价单有时不会),以及股票在盘后时段收到信号时会发生什么。如果你对这类引擎的一般运作还不熟悉,我们的回测软件指南讲了基础,本文只专注于智能体有何不同之处。而如果你还没为自己的策略定义好入场、出场、仓位大小和失效条件,先把那一步做完;那是创建 AI 交易智能体的第二步。
如何让 AI 交易智能体穿越各种市场行情做回测
一个只在近期历史上测过的策略,是一场“近期会延续下去”的赌注。修正的办法很明确:挑选能压出不同失败模式的测试窗口,并要求智能体在其中大多数里活下来。过去十年里的四种行情就覆盖了很大范围:
| 时期 | 那是什么 | 它压出什么 |
|---|---|---|
| 2018 | 磨人的熊市(加密下跌约 80%、股市第四季度急挫) | 出场纪律、定投的忍痛能力、千刀万剐式的耗损 |
| 2020 年 2—3 月 | 垂直崩盘,随后 V 形反弹 | 止损在跳空行情和滑点下的表现,你是重新入场还是被吓住 |
| 2021 | 持续的融涨行情 | 做空和均值回归规则是否在与趋势对抗、过早止盈 |
| 2022 | 加息周期的回撤,股票与加密同步下跌 | 相关性假设、趋势过滤、回撤上限 |
让智能体的规则分别穿过每一个窗口,而不是只看一个长长的平均值。一条抄底规则可以在 2020 和 2021 大放异彩,再在 2022 把一切悉数吐回去;单一的汇总数字会把这段故事藏起来。你并不是要求它在四种行情里全都盈利。你要求的是提前知道:哪一种行情会伤到你的智能体,以及它的失效规则会不会在损失累积成灾之前触发。
这正是工具在实操上见真章的地方:在 Obside 上,回测引擎在几分钟内重放数年历史数据,滑点假设已内建其中,于是测四个窗口不过是午饭前跑完的四次运行,而不是一个周末的工程。无论你用哪个引擎,原则不变:看行情,别看平均。
像对手一样解读报告
一份回测报告,是你自己的希望写下的一份销售说辞。逐一解读每个数字,看清它能告诉你什么、又不能告诉你什么。
Sharpe 比率衡量每单位波动率带来的回报。对大多数散户策略来说,大致 0.5 到 1.5 之间是诚实区间;回测里高于 3 的 Sharpe,更多时候是一个 bug、一处偏差或一次过拟合,而不是一项发现。
最大回撤是从峰到谷最深的那一次亏损。把它对照你真正能坐得住的幅度,然后假定实盘会更糟,因为历史上的最坏情况是地板,不是天花板。
胜率单独看毫无意义。90% 的胜率配上小额盈利和罕见的灾难性亏损,描述的是一个在压路机前捡钢镚的策略;欣赏它之前,先把它和平均盈亏比放在一起看。
成交笔数是你的样本量。低于约 30 笔,你手里的是一则轶事。低于 10 笔,你手里的是一个故事。
**在场时间(Exposure)**告诉你资金在市场里待了多久才赚到这份回报,那是权益曲线不显示的风险。
然后跑一次压力变体:把滑点和费用假设翻倍,重跑一遍。交易频繁、或交易薄流动性资产的策略,可能在这一次测试里眼看着优势蒸发。如果小幅的参数改动(RSI 30 对比 32、止损 4% 对比 5%)就让结果崩塌,你八成正盯着一次曲线拟合;那一整类失败在我们的回测过拟合指南里被逐一剖开。
LLM 的警告:当模型早已知道结局
智能体策略引入了一个经典交易机器人从未有过的失败模式。如果一个大语言模型在回测循环内部做决策(挑选资产、把握入场时机、权衡新闻),它的训练数据里可能就包含着你正拿来测试的那段历史。模型不是在预测 2021,而是在回忆 2021。
这并非假设。针对基于 LLM 的投资策略的研究发现,回测被记忆和前视(lookahead)所夸大:训练数据与测试窗口重叠的模型,能回忆起代码、日期和价格走势,而表现在样本外常常退化(“Can LLM-based Financial Investing Strategies Outperform the Market?”,arXiv:2505.07078, 2025)。一项后续的记忆受控基准显示,当被记住的市场历史被恰当地剔除后,LLM 交易智能体表面上的技巧会急剧下降(arXiv:2605.28359, 2026)。一篇该领域的综述在众多研究中标出同一模式:测试窗口过短、标的池过小、以及前视风险(arXiv:2408.06361, 2024)。
两道实用的防线。第一,如果由 LLM 来决定交易,只信任其训练截止之后的测试窗口,这通常给你留下的是数月而非数年的数据。第二,对多数散户用途更好:干脆把 LLM 排除在重放循环之外。让它把你的策略一次性翻译成确定性规则,然后用经典方式回测这些规则。Obside 正是这样搭建的:副驾解读你的语言,但回测拿固定条件对着历史 K 线重放,于是循环里没有一个能记住答案的模型。
毕业标准:一次通过的回测长什么样
在往下走之前,先写清“通过”意味着什么,然后冷冷地拿报告去对照。一个合理的门槛:
- 在四种行情里至少熬过三种,也就是即便某种行情里不盈利,亏损也守在失效规则之内。
- 最大回撤等于或低于你在跑测试之前声明可以承受的数字。
- 整个测试里至少 30 笔成交,多到足以说明点问题。
- 在把成本假设翻倍之后仍为正。
- 相邻的参数取值给出相近的结果,是一片高原,而不是一座孤零零的魔术尖峰。
- 你能用大白话讲清它最糟的那段连亏:是什么市场状况造成的,以及为什么这套策略依然成立。
差在一个标准上,你手里的是一个待重新设计的目标。差在三个上,你要找的是另一套策略。而全部通过,仍不是上线的许可:回测测不出你的意图在实盘数据上的翻译、执行时机,或你自己看着真实回撤时的行为。那正是下一阶段要做的,而同一份智能体定义应当原封不动地挪过去;理由和检查清单都在我们的让 AI 智能体做纸面交易指南里。
从这里往哪走
回测一个智能体,与其说是为了找到漂亮的数字,不如说是为了廉价地买到信息:哪种行情会击穿你的规则、你最糟的一个月长什么样、成本会不会吃掉优势。这些发现在回测里一分钱不花,在实盘里却是真金白银。把规则钉住,跑那四种行情,像对手一样读报告,并让任何 LLM 都离重放循环远远的。当你想要一个能在几分钟内重放数年、把滑点内建进去、并一步就把同一个智能体升级到纸面交易的引擎时,就在 Obside 上跑你的下一次回测。
仅供教育参考,不构成投资建议。交易存在风险,可能导致本金损失。
FAQ
久到至少包含一轮熊市、一次崩盘和一段强势上涨;对大多数策略来说,这意味着五年或更久。长度不如多样性重要:涵盖 2020 到 2022 的三年,比八年稳定牛市教会你的更多。对更快的策略,还要确认样本量,因为在统计开始有意义之前,30 笔以上是个合理的下限。