回測軟體比較:4 種工具類型、付費前要看的 6 項檢查
回測軟體分為四種類型:平台內建回測、Python 函式庫、雲端平台與策略生成軟體。前三種測試的是你自己寫的一個策略;第四種則替你搜尋大量候選策略。依序用六個重點評估:能否匯入自己的資料、成交與成本、策略檢驗、每次執行的候選策略數、匯出,最後才看價格。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
挑選回測軟體時該看什麼?
比較回測軟體時,依序看六個重點:能否匯入你自己的資料、如何成交委託以及成本是否預設開啟、提供哪些策略檢驗、在你有限的時間內能測試多少候選策略、策略如何離開這個工具,最後才是價格。四種工具類型差異最大的是第四點。
回測是把固定的交易規則套用在歷史 K 棒上,並回報這些規則會做出的交易。軟體只決定這次回測有多誠實,以及你負擔得起跑多少次。選軟體就像買二手車:先檢查引擎、煞車,以及車庫放不放得下,再看價格標籤。不管選哪一套,都可以拿免費的回撤計算器核對它算出的數字。
- 匯入自己的資料。你必須能載入實際交易的 K 棒,包括夜盤與你自己的轉倉方式。只能用它提供的資料來測試的工具,會把你的研究鎖在那份資料上。
- 成交與成本。每次回測都應包含手續費與滑價,而且在某根 K 棒收盤時決定的委託,應在下一根 K 棒成交,而不是在同一個收盤價成交。
- 內建策略檢驗。推進分析是一種測試:先在一段資料上調整策略,再把選出的設定原封不動地套用到緊接著的下一段資料。如果工具做不到,你就得手動做,或乾脆不做。
- 每次執行的候選策略數。算一算在同一次工作中,工具能在相同設定下評估多少規則或參數的變化版本。這決定你是在精修一個想法,還是在尋找新的想法。
- 匯出。無法以原始碼形式離開工具的策略,只能手動重寫,而每次重寫都可能改動規則。
- 價格最後看。預設成本為零的免費工具,花費可能比任何訂閱都高,因為它會放行扣掉費用後虧損的策略。
回測工具有哪四種類型?
平台內建回測、Python 函式庫、雲端平台與策略生成軟體,解決的是不同的工作:前三種測試你已經寫好的一個策略,第四種則根據你設定的限制,替你搜尋大量候選規則。先弄清楚你的工作屬於哪一種,再去看功能清單,選擇範圍就會縮小。
- 平台內建回測是圖表或交易平台內建的回測功能。你用平台自己的語言撰寫規則,在圖表的資料上執行,並在同一個程式中閱讀報表。對已經開著圖表的交易人來說,這是很自然的第一站。
- Python 函式庫是一組程式碼函式,會把你的規則套用在你自己載入的資料檔上。策略、資料載入器、成本模型,通常連報表都要自己寫。一切都由你掌控,也一切都是你的工作。
- 雲端平台是在瀏覽器中使用、在供應商伺服器上執行的回測服務。你撰寫或點選組合出一個策略,服務提供運算資源,通常也提供資料。不需要安裝任何東西,而你的策略與結果則存放在供應商的機器上。
- 策略生成軟體會根據你設定的限制(例如允許的指標、參數範圍與出場類型)產生大量候選規則組合,並在相同的資料、成本與執行設定下評估全部候選策略。AlphaPrime(Valynox)就是這類策略生成軟體:它會生成、回測並檢驗候選策略,把它們存入策略資料庫,並將通過的策略以原始碼匯出。
差別在於誰來寫規則。前三種類型,被測試的每個策略都是你自己想出來的。使用生成軟體時,則由軟體在你的限制內提出規則,你的工作從撰寫規則轉為設定限制與判斷結果。
如何在資料、成交與成本、策略檢驗、速度、匯出與價格上做比較?
對每種類型用同樣的六個問題做成一份檢查清單,就會發現沒有哪一種類型在每一列都勝出,所以正確的選擇取決於哪些列對你的工作流程最重要。下表列出各類型的一般情況;個別產品可能不同,請在試用時確認每個欄位。
| 檢查項目 | 平台內建回測 | Python 函式庫 | 雲端平台 | 策略生成軟體 |
|---|---|---|---|---|
| 接受自己的資料 | 通常可以,透過平台的資料來源或匯入 | 可以,任何你能讀入程式碼的檔案都行 | 視產品而定;有些接受上傳,有些只提供自己的資料 | 通常可以;AlphaPrime 使用客戶自己的歷史 K 棒資料執行 |
| 預設開啟下一根 K 棒成交與成本 | 通常沒有;成本往往在你設定之前都是零 | 視設定而定;成交邏輯由你自己寫 | 視設定而定 | 通常有;AlphaPrime 以費用、滑價與下一根 K 棒成交來評估每個候選策略 |
| 內建推進分析或樣本外(OOS) | 視產品而定;有些平台以附加元件提供 | 視設定而定;迴圈由你自己寫 | 視設定而定 | 通常有;AlphaPrime 的策略檢驗包含推進分析 |
| 每次執行的候選策略數 | 一個,或在最佳化工具中跑一組參數網格 | 一個,或你自己寫的迴圈 | 一個 | 大量;速度取決於處理器或顯示卡 |
| 匯出到其他平台 | 通常不行;策略停留在平台自己的語言中 | 通常不行;你得手動翻譯 | 視產品而定;常常綁定供應商自己的執行環境 | 通常可以;AlphaPrime 可將原始碼匯出到 MultiCharts、TradingView、TradeStation 與 NinjaTrader |
| 價格 | 免費或隨平台附贈 | 函式庫免費,但要花你的時間 | 訂閱制 | 付費,買斷或訂閱 |
請逐列閱讀這張表,而不是逐欄。如果你只精修自己寫的一個策略,第四列就不重要,平台內建回測的得分會很好。如果你要在多個市場中尋找新規則,第四列與第五列才是關鍵,價格那一列則移到最後。尤其匯出這一項很容易被忽略:AlphaPrime 支援的平台列在平台匯出頁面,已經在使用某個平台的交易人應該先看這一列。
免費與內建的回測工具漏掉了什麼?
免費與內建的回測工具通常預設成本為零、只做一次樣本內(IS)回測,有些還允許委託在產生訊號的那根 K 棒上成交,所以在那裡通過的策略,仍需要加入成本、下一根 K 棒成交以及樣本外(OOS)檢驗,結果才有意義。這些都不難補上。問題在於預設報表看起來像是完成了,其實並沒有。
滑價是回測假設的價格與真實委託實際成交價格之間的差額。下一根 K 棒成交是指:在某根 K 棒收盤時決定的委託,最早只能在下一根 K 棒成交,因為收盤價要等這根 K 棒結束後才知道。在同一個收盤價成交的回測工具,用的是交易人根本來不及看到的價格;這是回測中前視偏誤最常見的形式。AlphaPrime 的回測一律在下一根 K 棒成交,手續費與滑價也是每次執行的設定,正好對應這一節說的兩項檢查。
假設範例
某微型指數期貨策略在三年內做了 500 筆交易。成本為零且同一根 K 棒成交時,報表顯示平均每筆損益為 $12,合計 $6,000。把成交改到下一根 K 棒的開盤價,平均每筆損益平均減少 $6。每一買一賣(來回)手續費 $2,加上每邊一個跳動點的滑價(每跳動點價值 $1),再扣掉 $4。平均每筆損益降到 $2,三年約 $1,000。策略並沒有失效,但原本看起來很充裕的優勢現在變得很薄,滑價只要稍微增加就會消失。
第三項缺漏是策略檢驗。對整段歷史跑一次,是樣本內(IS)測試:規則是在看著同一段歷史時選出來的。推進分析在每個調整步驟中保留較晚的資料,讓結果來自調整時沒看過的 K 棒。許多回測工具只能透過手動更改日期來做到這一點,對一個策略還行得通,對五十個策略就不切實際了。關於成本這一面,回測中的交易成本指南說明了如何把平均每筆損益與一買一賣(來回)的成本做比較。
策略生成軟體何時有意義,何時是殺雞用牛刀?
當你想在相同設定下測試數千甚至數百萬種規則變化時,策略生成軟體就有其價值,速度取決於處理器或顯示卡;如果只是精修一個手寫策略,平台內建回測或 Python 函式庫就夠了。關鍵在於你想評估多少候選策略,而不是你擁有什麼硬體。
可以把它想成找房子。看三間你已經找到的房子,走幾步路就好。要把一座城市裡的每間房子,依預算、大小與地點逐一比對,那是搜尋引擎的工作。每個候選策略就是一間房子,生成軟體的工作就是用同一把捲尺把它們全部走訪一遍。
- 一個手寫策略。你知道規則,想看看交易。平台內建回測或 Python 函式庫都做得很好,生成軟體不會為你增添需要的東西。
- 幾百種參數變化。相同的規則,搭配不同的回看期間與停損。平台的最佳化工具或 Python 迴圈就能處理,成本與下一根 K 棒成交只需對整組網格設定一次。
- 數百萬種規則組合。不同的指標、進場條件、出場類型與參數範圍,每一種都以相同的成本與執行規則評估。這正是策略生成軟體存在的目的。AlphaPrime 的策略生成會把一組允許的規則、參數範圍與搜尋限制轉成可測試的候選策略,並以費用、滑價與下一根 K 棒成交來評估每一個。
規模還會改變另一件事。測試大量候選策略,代表有大量機會碰上一個運氣好的,所以沒有內建策略檢驗的生成軟體,比沒有檢驗的回測工具更糟,因為它更快找出被灌水的結果。Bailey 等人指出,在許多次嘗試中表現最好的回測,其樣本外表現往往比樣本內結果所顯示的更差(Bailey, Borwein, López de Prado and Zhu, 2014)。對每個候選策略都執行推進分析與門檻檢查的生成軟體,能直接處理這個問題;只用淨損益排名的則不能。
關於第三階的規模,唯一值得引用的產品數字就是已公布的數據:AlphaPrime 在一張 RTX 3090 上於 18 h 23 min 內完成了 1,268,200,000 次策略評估,於 2026-10-05 在真實研究設定下量測(TY 37 分鐘 K 棒,2015-01-01 至 2026-09-25,每個候選策略 114,371 根 K 棒,每次評估都包含手續費與滑價)。實際速度取決於顯示卡、資料長度與研究設定,條件列在基準測試頁面。相同的功能在 CPU 上也能執行;顯示卡只改變執行所需的時間。
哪種類型適合哪種交易人?
依你的工作方式來選工具:只想驗證單一想法的主觀交易人、想要完全掌控的程式設計師、想用瀏覽器且不想安裝的交易人,以及每次都在尋找新規則的系統化交易人,各有自然適合的選擇。下表列出適合的類型,以及該類型中最需要嚴格檢查的一件事。
| 交易人類型 | 自然適合的工具類型 | 最需要檢查的事 |
|---|---|---|
| 交易前先驗證一個圖表想法 | 平台內建回測 | 成本與成交設定;兩者常常預設為樂觀的值 |
| 想要完全掌控的程式設計師 | Python 函式庫 | 資料清理與執行程式碼;函式庫不會抓出你自己寫的同一根 K 棒成交 |
| 想用瀏覽器、不想安裝 | 雲端平台 | 資料所有權與匯出;你的策略與結果能否以檔案形式離開該服務 |
| 在多個市場中尋找新規則 | 策略生成軟體 | 策略檢驗設定與匯出;沒有樣本外(OOS)檢驗的搜尋,會產生被灌水的贏家 |
許多交易人最後會用兩種工具:用生成軟體或函式庫來尋找並檢驗規則,再用平台內建回測,在自己實際交易的圖表上確認匯出的程式碼。只有在第一個工具能匯出可讀的原始碼時,這種搭配才行得通,這也是為什麼匯出這一列在檢查清單中排在價格之前。
如何進行試用,才能讓比較公平?
用同一個市場、同樣的 K 棒、同樣的成本、同樣的執行規則與同樣的日期範圍來比較各工具,在每個工具中跑一個已知的策略,然後逐筆比對交易明細,而不是只看總損益。這樣找到的任何差異,就屬於工具本身,而不是設定造成的。
- 同一個市場與合約。挑一個期貨合約與一種轉倉方式,並在所有工具中沿用。如果每個工具用不同的轉倉規則建立連續月資料,在任何策略執行之前,K 棒就已經不一樣了。
- 同樣的 K 棒與日期範圍。從同一個來源匯出 K 棒,並把同一個檔案載入每個接受上傳的工具。固定起訖日期,並納入相同的交易時段,只有日盤或全時段。
- 同樣的手續費與滑價。在每個工具中設定相同的一買一賣(來回)手續費與相同的每邊滑價。如果某個工具無法設定其中一項,請記錄下來;那就是關於該工具的發現。
- 同樣的下一根 K 棒成交規則。在每個工具中都以收盤價決策,在下一根 K 棒的開盤價成交。如果某個工具預設在訊號那根 K 棒成交,請在執行前改掉。
- 在每個工具中跑一個已知的策略。使用一組你完全理解的簡單規則,例如搭配固定停損的均線交叉,這樣你就能逐筆手動檢查每一筆交易。
- 逐筆比對交易明細。對齊進場時間、進場價格、出場時間與出場價格。兩個錯誤互相抵銷時,總損益可能剛好一致;交易明細則不會。
這項試用的良好結果,是兩份交易明細幾乎每一筆都一致,僅有的少數差異也能以已知原因解釋,例如交易時段開盤的跳空。不好的結果,是兩份明細的交易筆數不同,因為這代表各工具對訊號何時觸發的看法不一致,再怎麼比較損益也無法告訴你哪一個才對。
如果你使用 AlphaPrime,這意味著:像對任何其他工具一樣對它執行這六項檢查,載入你自己的 K 棒,確認費用、滑價與下一根 K 棒成交都設定成你實際交易的方式,並在依賴匯出的策略之前,把它的交易與你的平台內建回測做比對。
常見問題
期貨交易人最好的回測軟體是什麼?
沒有單一最好的回測軟體,因為四種工具類型做的是不同的工作。平台內建回測適合一個圖表想法,Python 函式庫適合想要掌控的程式設計師,雲端平台適合不想安裝任何東西的交易人,策略生成軟體則適合在大量規則變化中搜尋。依序套用同樣的六項檢查:資料、成交與成本、策略檢驗、每次執行的候選策略數、匯出與價格。
免費的回測軟體夠用嗎?
用來測試你自己寫的一個策略,通常夠用,前提是你改掉三個預設值:把手續費與滑價設為大於零、在下一根 K 棒成交委託,並保留一段規則從未接觸過的樣本外(OOS)期間。免費回測工具很少會禁止這些設定;只是一開始沒有啟用。免費工具的代價,就是你花時間補上它漏掉的東西。
回測交易策略需要 GPU 嗎?
不需要。單一策略或幾百種參數變化,在一般處理器上就能跑。當你要在相同設定下評估數百萬組候選規則時,顯示卡才重要,此時執行時間取決於顯示卡、資料長度與設定。AlphaPrime 的每項功能在 Classic 與 Reserve 中運作相同;只有每次執行的時間不同。
回測工具與策略生成軟體有什麼差別?
回測工具評估你寫好的規則並回報交易。策略生成軟體則在你設定的限制內產生候選規則,在相同的資料、成本與執行規則下評估全部候選策略,並檢驗結果。生成軟體讓你的工作從撰寫規則,轉為設定限制並判斷留下來的策略。
試用軟體時,為什麼要比較交易明細而不是總損益?
兩個工具的總損益可能一致,但交易卻不同,因為兩個錯誤可能互相抵銷。逐筆比對進場時間、進場價格、出場時間與出場價格,能精確顯示工具在哪裡出現分歧,通常是成交時點或交易時段的處理。這正是你決定要信任哪個工具所需要的資訊。
參考資料
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.

