AI 預測市場回測:在沒有未來資訊洩漏的情況下測試 LLM 策略
一個 AI 產生的策略不等於一份回測。模型、資訊邊界、決策協定、投資組合狀態,以及可成交的實際成交,全都需要在歷史時鐘上被控制住。
AI 預測市場回測,只用每個歷史時間戳當下可取得的資訊,來評估一條 LLM 產生的規則或模型決策。一份可信的測試會凍結提示詞與市場範圍、封鎖已結算結果與未來事實、依記錄下來的深度重播訂單、保留投資組合狀態,並回報每一個決策、拒絕與成交。
為什麼 AI 回測是一個獨立的問題
一條確定性規則可以逐行審查。一個 LLM 卻可能隨著提示詞、模型版本、上下文、工具結果與取樣設定而改變推理方式。它也可能知道模擬日期之後才發生的事實,因為它的訓練資料或連接的搜尋工具超出了歷史時鐘的範圍。一般的交易回測並不會自動控制這些風險。
預測市場讓資訊洩漏問題格外嚴重。市場問題與最終結算結果在結算後是公開的,因此一個模型可能看似在預測一個事件,實際上卻是在回憶或從更晚的資訊推斷答案。測試必須同時維持市場時間的完整性與模型時間的完整性。
兩種 AI 回測工作流程
DepthFeed 目前公開的工作流程支援第一條路徑:請模型提出一個清楚的假設,把它轉化為預設或自訂規則,凍結參數,再透過 Backtest Lab 執行。這把構想生成與評估分開,讓重播可以重複執行。
模型在迴圈中重播則需要額外的控制:封閉的資訊環境、循序的投資組合狀態、可長期保存的模型呼叫紀錄,以及每個週期的逐點時間資料帶。不要把一份跑在已結算市場上的對話紀錄,描述成這種更嚴格形式的回測。
| 工作流程 | 凍結的是什麼 | 最佳用途 |
|---|---|---|
| AI 產生的規則 | 提示詞的輸出一次性轉化為明確的確定性邏輯 | 測試一個 AI 假設能否在市場資料與執行條件下存活 |
| 模型在迴圈中重播 | 模型、提示詞、工具與逐點時間的上下文,在每次決策時都運行一次 | 評估一個自主的預測者或投資組合代理人 |
建立歷史資訊邊界
最安全的實作方式是使用一個 as-of 邊界:來源時間戳小於或等於決策時間。每一個特徵、摘要與工具回應都必須繼承這個邊界。單單一個沒有邊界限制的便利欄位,例如今日市場狀態或最終結果標籤,就可能讓整次執行失效。
- 設定一個決策時間戳,只納入在該時間點或之前觀察到的市場資料列。
- 明確界定任何回顧窗口;絕不使用可能來自未來的「最接近」資料列。
- 排除結算結果、最終價格、更晚的新聞頭條與當前的網路搜尋。
- 記錄呈現給模型的確切市場範圍,包括它略過的合約。
- 為輸入資料帶加上雜湊或版本號,讓同一個決策之後能被重建。
- 把缺漏的資料回報為缺漏,而不是用更晚的觀測值去填補。
防止答案洩漏與提示詞洩漏
凍結系統提示詞、客戶指示、模型識別碼、取樣模式、結構化輸出格式與可用工具。移除任何間接透露結果的語言,包括最終市場狀態、結算措辭、事後文章摘要,或結算之後才建立的檔名。
對於歷史事件問題,即使停用了瀏覽功能,也要假設預訓練模型的記憶可能包含更晚的事實。盡可能使用對截止日期安全的問題,分開評估洩漏控制,並在較新或私下保留的期間比較表現。在眾所皆知、已結算的事件上取得高分,本身並不能證明具有預測能力。
讓決策協定可審計
要求結構化的行動,而不是自由形式的建議。一個有用的決策應包含市場身分、方向、估計機率、信心程度、最高進場價、要求的名目金額與簡短的論述。伺服器端規則接著應依照現金、曝險、信心、優勢與價格限制,決定接受、調整規模或拒絕這個提案。
儲存跳過與被拒絕的交易,而不只是成交紀錄。如果最終報告只包含模型選中的贏家,就沒有分母可以計算選擇性、覆蓋率或失敗分析。這份長期紀錄應該把每一個行動連結到它確切的輸入邊界與最終的投資組合狀態。
依時間順序重播投資組合
投資組合週期必須依時間順序運行,因為一個決策會改變下一個決策可用的現金與未平倉曝險。如果需要,可以在單一時間戳內平行化市場發掘,但最終要對同一份凍結的資料帶,整合出一個投資組合決策。不要讓獨立的模型呼叫花掉同一筆現金。
把未平倉部位、已實現現金與風險限制一路延續下去。接著依類別與場所回報損益,也回報整體損益。這能揭露一個看似聰明的投資組合,是不是其實只是在相關聯的合約上反覆下同一個方向性重注。
使用可成交的成交,而非模型報出的價格
模型可以陳述一個最高價格;它不應該被允許自行捏造成交結果。加入一個明確定義的執行延遲,找到那個模擬時間點或之後第一份記錄下來的訂單簿,只走過賣價或買價到限定價格為止。儲存 VWAP、成交比例、觀察時間,以及使用的那份訂單簿。
以保守的方式標記最終投資組合。用中間價標記會假設能不穿越價差、不消耗數量就出清部位。一個具深度意識的可成交出清方式,更能回答投資組合實際能實現什麼;過時或缺失的訂單簿應保留為一個明確的失敗條件。
實作示範:從一個 LLM 假設到一次重播
從一個有邊界的提示詞開始:要求模型提出一個可證偽的 Polymarket 或 Kalshi 假設、所需的可觀察輸入、精確的進場規則、部位規模、出場或結算行為,以及應該通過測試的條件。禁止獲利宣稱,也不要求事後範例。
把回答轉化為 Backtest Lab 的預設或自訂規則,且不在看到結果之後更動門檻。選擇目標場所與市場家族,使用按時間順序排列的樣本,並比較中間價、固定滑點與記錄下來的深度這三種成交假設。檢視每一筆交易,並保留一段更晚的保留樣本。如果它撐過了測試,就把這條凍結的規則部署到模擬交易,並用建立規則時模型不可能知道的結果來評估它。
區分「預測能力」與「交易表現」的指標
預測品質與交易表現相關,但並不相同。一個校準良好的模型仍可能因為付出的價格已經反映了它的資訊而虧損;一個校準不佳的模型也可能靠運氣或一次集中的部位短暫獲利。應該同時回報這兩個層次,避免把整個評估簡化成一個排行榜標題。
| 問題 | 指標 | 它能抓到的失敗 |
|---|---|---|
| 機率預測有用嗎? | Brier 分數、對數損失、校準度 | 自信但不準確的預測 |
| 行動在扣除執行成本後仍有獲利嗎? | 淨損益、ROI、可成交優勢 | 預測得好,卻買在壞價格 |
| 結果是否集中? | 依場所、類別與時間劃分的損益 | 由單一事件或單一市況撐起整個結果 |
| 風險是否受控? | 回撤、曝險、部位數量 | 獲利其實來自過度集中 |
| 模型是否有選擇性? | 交易、跳過與拒絕的比率 | 沒有分母的挑選式報告 |
| 這次執行能否重現? | 提示詞、模型、資料帶與訂單簿雜湊 | 無法獨立重播的結果 |
在不移動標準的情況下比較模型
- 給每個模型相同的凍結市場資料帶、工具集、輸出格式與投資組合限制。
- 使用相同的決策時間戳、執行延遲、成交引擎與最終標記規則。
- 把供應商故障、無效輸出與風控拒絕,與市場虧損分開統計。
- 把 token 用量與模型成本連同表現一起記錄;些微的提升可能不值得高出許多的推論成本。
- 重複執行隨機性的測試,或在支援的地方使用確定性設定,並回報變異程度。
- 保持具名模型頁面與宣稱的資訊為最新,因為模型版本與可用性會改變。
把失敗分類,而不是隱藏它們
這些結果的意義各不相同。把供應商逾時當成一次篤定的跳過,會虛增選擇性;丟棄未成交的訂單會高估可成交表現;靜靜修補格式錯誤的模型輸出,等於給了某個模型其他模型未必得到的人工協助。評估方式應該在執行之前就定義好每個類別,並機械式地套用。
公布完整的漏斗:符合條件的市場、展示過的市場、提出的行動、跳過、無效輸出、護欄拒絕、執行拒絕、部分成交與完成的部位。有了這個分母,才能區分一個謹慎的模型和一個不可靠的模型。
| 失敗類別 | 範例 | 如何回報 |
|---|---|---|
| 資訊失敗 | 未來事實、結算欄位或更晚的報價進入了上下文 | 使該次週期或整次執行失效 |
| 供應商失敗 | 逾時、速率限制或模型不可用 | 與市場跳過分開計算 |
| 格式失敗 | 無效的行動、缺少市場 ID 或無法解析的機率 | 儲存原始回應與拒絕紀錄 |
| 風控拒絕 | 要求的規模超出現金、曝險或價格限制 | 回報為被護欄拒絕的模型提案 |
| 執行拒絕 | 沒有及時的訂單簿、限價以下沒有深度,或零成交 | 保留在交易分母中 |
| 市場虧損 | 有效成交的決策,結算在所選方向的對面 | 正常納入損益與預測評分 |
最低限度的可重現紀錄
對每一次執行,都要保留模型供應商與確切的模型版本代號、提示詞範本、工具定義、結構化輸出格式、取樣設定與客戶指示。記錄歷史起訖時間、決策間隔、回顧窗口、場所、類別、起始現金、曝險限制、執行延遲與最終標記方式。
對每一個決策週期,都要保留決策時間戳、資料帶版本、資料帶的 as-of 時間、符合條件的市場數量、輸入雜湊、前後的投資組合狀態、模型用量與錯誤狀態。對每一筆提議的交易,都要儲存它的論述與機率,連同觀察到的市場機率、信心程度、限價、要求規模、拒絕代碼,以及用於任何成交的歷史訂單簿。
供應商的模型可能在一個穩定的名稱背後被更新,所以之後完全重跑一次仍可能出現差異。一份可長期保存的紀錄無法消除這種平台差異,但能揭露它。在無法使用確定性種子或釘選版本的地方,就多次重複同一項測試,回報跨次執行的離散程度,而不是只呈現一次有利的樣本。
- 模型版本代號、供應商、提示詞、工具、格式與取樣設定。
- 歷史邊界、市場範圍、決策間隔與回顧窗口。
- 投資組合限制、執行延遲、成交引擎與最終標記方式。
- 與每個決策及成交綁定的輸入與訂單簿雜湊。
- Token 用量、模型成本、無效輸出與所有拒絕原因。
- 當模型或供應商具有隨機性時,重複執行的變異程度。
在做出 AI 表現宣稱之前先做前向測試
一次歷史性的 AI 測試,仍然可能受益於模型記憶、研究者對提示詞的調校,以及反覆的實驗。最乾淨的下一步,是一段鎖定的前向模擬期。凍結提示詞或萃取出的規則,在設定確定之後才開始,用即時顯示的訂單簿為每一個行動定價,並公布完整的分母。
DepthFeed 模擬交易為確定性規則與外部機器人訊號提供了目前可用的前向路徑。它使用虛擬現金,不會下真實交易所訂單。在任何描述 AI 工作流程的地方,都應該保持這個區別清楚可見。
DepthFeed 目前提供什麼
目前,研究者可以使用 AI 模型建立或改進一個明確的策略,在 Backtest Lab 中把這條凍結規則對照記錄下來的預測市場訂單簿重播,比較三種成交假設,檢視風險與個別交易,並把合格的存活策略移到即時模擬交易。歷史資料 API 與 MCP 伺服器也支援儀表板之外的自訂代理人研究。
DepthFeed 目前並未公開宣傳一個自主的模型在迴圈中回測 API,或即時 AI 交易執行。這個較窄的工作流程是刻意設計、也是可測試的:模型提出構想;記錄下來的市場證據負責評估;模擬交易提供前向紀錄。
Key takeaways
- 01AI 構想生成與 AI 模型在迴圈中重播是不同的產品,需要不同的證據。
- 02在每一次歷史決策時,封鎖結算結果、未來資料列、當前搜尋與更晚的事實。
- 03在比較結果之前,先凍結模型、提示詞、工具、輸出格式、市場範圍與投資組合限制。
- 04儲存跳過、拒絕、模型呼叫與輸入邊界,而不只是有獲利的成交。
- 05依時間順序重播現金與部位,再依一個明確定義的延遲,對照記錄下來的深度執行。
- 06分別回報校準度、損益、風險、集中度、推論成本與可重現性。
- 07在做出任何 AI 表現宣稱之前,先用一段鎖定的前向模擬期驗證。
一個 AI 產生的策略不等於一份回測。模型、資訊邊界、決策協定、投資組合狀態,以及可成交的實際成交,全都需要在歷史時鐘上被控制住。
免費開始