上線前如何回測 AI 交易智能體
一套逐一穿越市場週期的方法,用來回測智能體策略;那些真正重要的報告數字;以及為什麼 LLM 驅動的回測會自我美化。

一個你用大白話提示詞打造出來的智能體,在它正確複述你的策略那一刻,感覺就像已經測試過了。其實沒有。複述是理解;回測才是證據。在任何智能體動用真實資金之前,你會想知道它那一套確切的規則,若走過多年的真實市場歷史會如何表現;而要把 AI 交易智能體回測好,你需要三樣東西:釘得夠緊、緊到可以重播的規則、惡劣到有意義的測試期間,以及以批評者而非粉絲的姿態去解讀報告的紀律。這篇指南三者都會談,外加一個 LLM 驅動策略獨有的失敗模式。
把規則釘死到一台機器都能重播
回測會把你的邏輯拿去對歷史資料一根 K 棒、一根 K 棒地重播。這件事只有在你的智能體所做的每一個決策,都能從當下那一刻已存在的資料計算出來時,才行得通。「當日線 RSI(14) 收在 30 以下、且價格在 200 日移動平均之上時買進」可以完美重播。「當新聞感覺反應過度時買進」則不行,因為「感覺」不在任何一根 K 棒裡。
所以第一項工作,是把你智能體複述出來的條件,變成一份完整的規格。有一個好用的測試:一張裝著歷史價格和你規則的試算表,能不能決定每一次進場、每一次出場、每一個部位大小,而不留下任何需要主觀判斷的地方?如果一條規則需要詮釋,回測引擎就會用某種方式去詮釋它,而它的詮釋會在未經你同意下,變成你的策略。
也要盯緊那些安靜的參數。滑價與費用假設、訂單類型(市價單會成交;限價單有時不會),以及對股票而言,盤外時段的訊號會怎麼處理。如果你對這些引擎大致如何運作還不熟悉,我們的回測軟體指南涵蓋了基礎;這篇文章專注在智能體有什麼不同。而如果你還沒為你的策略定義好進場、出場、部位大小與失效條件,先做那件事;那是打造 AI 交易智能體的第二步。
如何跨市場週期回測 AI 交易智能體
一個只在近期歷史上測試過的策略,是一場「近期會延續下去」的賭注。修正方式是刻意為之的:挑選會壓迫不同失敗模式的測試窗口,並要求智能體撐過其中大多數。過去十年裡的四種週期,就覆蓋了相當大的範圍:
| 期間 | 那是什麼 | 它壓迫的是什麼 |
|---|---|---|
| 2018 | 磨人的空頭(加密下跌約 80%、股市第四季急挫) | 出場紀律、DCA 的痛苦忍受度、千刀萬剮之死 |
| 2020 年 2–3 月 | 垂直崩跌,接著 V 型反彈 | 停損在跳空與滑價下的表現、你是重新進場還是嚇到不敢動 |
| 2021 | 持續的緩漲噴出 | 放空與均值回歸規則會不會跟大盤對作、過早獲利了結 |
| 2022 | 升息帶來的回撤,股票與加密一起下跌 | 相關性假設、趨勢過濾、回撤上限 |
把智能體的規則分別走過每一個窗口,而不是只看一個很長的平均。一條逢低買進的規則可以在 2020 和 2021 大放異彩,然後在 2022 把一切全數吐回去;單一的加總數字會把這個故事藏起來。你要求的不是在四種週期裡都獲利。你要求的是事先知道:哪一種週期會傷到你的智能體,以及它的失效規則會不會在傷害滾大之前就觸發。
這正是工具在實務上重要的地方:在 Obside,回測引擎能在幾分鐘內重播多年的歷史資料,滑價假設也已內建,所以測試四個窗口,是午餐前跑完的四趟,而不是一個週末的專案。無論你用哪個引擎,原則都成立:看週期,不看平均。
像對手一樣解讀報告
一份回測報告,是你自己的期望寫出來的推銷話術。逐一解讀每個數字能告訴你什麼、又不能告訴你什麼。
Sharpe 比率衡量每單位波動所帶來的報酬。對多數散戶策略而言,大約在 0.5 到 1.5 之間是誠實的區間;回測裡 Sharpe 高於 3,更常是一個 bug、一種偏誤或一次過度擬合,而不是一項發現。
最大回撤是最深的峰谷跌幅。拿它和你真正坐得住的水準比一比,然後假設實盤會更糟,因為歷史上的最壞情況是地板,不是天花板。
勝率單看毫無意義。90% 的勝率,配上小小的獲利和罕見的災難性虧損,描述的是一個在壓路機前撿硬幣的策略;在你欣賞它之前,先把它和平均盈虧比放在一起看。
交易次數是你的樣本數。少於約 30 筆交易,你手上的是一則軼事。少於 10 筆,你手上的是一個故事。
曝險告訴你,為了賺到那份報酬,資金在市場裡待了多久——那是權益曲線沒有顯示出來的風險。
接著跑一次壓力變化:把滑價與費用假設加倍再跑一遍。頻繁交易、或交易冷門資產的策略,可能就在這單一測試裡看著自己的優勢蒸發。如果小小的參數變動(RSI 30 對比 32、停損 4% 對比 5%)就讓結果崩盤,你八成正盯著曲線擬合;整個這類失敗,我們在回測過度擬合指南裡有詳細解剖。
LLM 的但書:當模型早已知道結局
智能體策略帶來了一種傳統機器人從來沒有的失敗模式。如果一個大型語言模型在回測迴圈裡面做決策(挑選資產、拿捏進場時機、衡量新聞),它的訓練資料裡可能就含有你正在測試的那段歷史。模型不是在預測 2021 年;它是在回憶 2021 年。
這不是假設。針對 LLM 投資策略的研究發現,回測被記憶和前視所膨脹:訓練資料與測試窗口重疊的模型,能回想起股票代號、日期與價格波動,而其績效在樣本外往往會惡化(「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 正是這樣打造的:copilot 詮釋你的語言,但回測是拿固定的條件去對歷史 K 棒重播,所以迴圈裡沒有任何模型能記住答案。
畢業標準:一份及格的回測長什麼樣
在往下走之前,先寫下「及格」是什麼意思,然後冷冷地拿報告去對照。一個合理的門檻:
- 在四種週期裡撐過至少三種,意思是虧損留在失效規則之內,即使在它不獲利的地方也是如此。
- 最大回撤等於或低於你在跑測試之前宣告可以忍受的數字。
- 整個測試至少有 30 筆交易,足以具備意義。
- 把成本假設加倍後仍為正。
- 鄰近的參數值給出相近的結果,是一片高原,而不是單一的神奇尖峰。
- 你能用大白話解釋它最糟的連敗:是什麼市場條件造成的,以及為什麼這個策略依然站得住腳。
漏掉一項標準,你手上是一個要重新設計的目標。漏掉三項,你要找的是另一套策略。而就算全數及格,也還不是上線的許可:回測無法測試你意圖在實盤資料上的翻譯、執行時機、或你自己看著真實回撤時的行為。那是下一階段的用途,而同一份智能體定義應該原封不動地搬過去;相關論述與檢查清單在我們的讓 AI 智能體做紙上交易指南裡。
接下來往哪走
回測一個智能體,與其說是為了找到漂亮的數字,不如說是為了便宜地買到資訊:哪一種週期會弄壞你的規則、你最糟的月份長什麼樣、成本會不會吃掉優勢。這每一項發現,在回測裡都不花錢,在實盤上卻要花真金白銀。把規則釘死、跑完那四種週期、像對手一樣解讀報告、並讓任何 LLM 都遠離重播迴圈。當你想要一個能在幾分鐘內重播多年、內建滑價、並能一步就把同一個智能體升級到紙上交易的引擎,就在 Obside 上跑你的下一次回測。
僅供教育參考,不構成投資建議。交易存在風險,可能導致本金損失。
FAQ
久到至少包含一次空頭、一次崩盤、和一次強勁反彈;對多數策略而言,這意味著五年以上。長度不如多樣性重要:涵蓋 2020 到 2022 的三年,教會你的比八年平穩多頭還多。對較快的策略,也要確認樣本數,因為在統計數字開始有意義之前,30 筆以上是一個合理的下限。