免費回測軟體:期貨能測什麼
免費回測軟體分四類:圖表平台的策略測試器、試算表、開源程式庫,以及券商的模擬器。每一類都能在歷史 K 棒上重播一條簡單規則。當期貨構想需要調整過的轉倉資料、實際的交易成本、大量變體或檢驗步驟時,限制就開始出現。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
期貨策略可以在哪裡免費回測?
期貨的免費回測軟體分四類:圖表平台內建的策略測試器、試算表、開源程式庫,以及券商的模擬器。每一類都能免費在歷史 K 棒上重播一條簡單規則。當構想需要乾淨的期貨資料、實際的交易成本、大量變體或檢驗步驟時,限制就開始出現。
回測就是拿舊價格逐筆重播一條交易規則,扣除成本後,看這條規則過去會做出什麼結果。四類免費工具都做這件事,差別在於它們對你的要求多寡,以及省略了哪些部分。
- 圖表平台策略測試器。你寫一段短程式或從選單挑一條規則,按下按鈕後看權益曲線。上手很快,但只能使用平台提供的資料與成本設定。
- 試算表。你把 K 棒貼進欄位,用公式把規則做出來。每個數字都看得到,最適合學習,但每換一個構想就得重建一次表格。
- 開源程式庫。你載入自己的資料,用程式語言寫規則。它是最有彈性的免費選項,但在看到第一個結果前需要花最多功夫。
- 券商模擬器。你在模擬帳戶上用即時或重播的價格交易。它能訓練下單流程與紀律,但一次只測一天;免費當沖模擬器與回測的比較說明了兩者為何回答的是不同的問題。
我的立場是:第一次回測是策略研究中最便宜的一步,免費工具做得很好。昂貴的步驟在後面,而免費回測工具通常會跳過這些步驟。回測軟體比較列出了付費前應檢查的六件事;以下各節說明每一類免費工具在哪裡停下來。
免費工具如何處理期貨資料與轉倉?
多數免費工具載入的是一條未調整的連續價格序列,在每次換約時都不處理價差。因此,若策略跨越轉倉日仍持有部位,回測會計入一段真實帳戶從未經歷過的價差損益。期貨合約會到期。要測試好幾年的資料,就得把許多合約接成一條序列。轉倉是序列從即將到期的合約切換到下一個合約的那個點,而當天兩個合約的價格通常不同。
可以想像兩列在平行軌道上行駛的火車。你在兩列都在移動時從第一列跳到第二列。如果第二列前方幾公尺,你並沒有走那幾公尺,只是換了車。未調整的連續序列把這一步記成了行進。反過來,回溯調整的序列會把舊合約的價格平移一段價差,讓接點平滑,只留下每個合約內部的真實波動。
假設性範例
假設即將到期的那口 NQ 合約在轉倉日收在 20,000,下一口合約報價 20,100。一筆在轉倉時持有的多單,在未調整的序列裡會顯示 100 點的獲利,每口 2,000 美元(每點 20 美元)。在真實帳戶中,交易者是平掉舊合約、開新合約;那 100 點從來不是賺到的。六年內 25 次轉倉,這種大小的缺口加總起來,超過許多策略的總獲利。
在相信任何免費回測網站或圖表平台上的多年期貨結果之前,請先檢查三件事:
- 序列使用哪一種轉倉方式。在資料說明中找找看有沒有「回溯調整」、「比例調整」或「未調整」等字眼。若沒有寫,就假設是未調整。
- 你的策略是否曾持有部位跨越轉倉。每個收盤都空手的規則,不會受轉倉價差影響。持有數週的波段規則則可能受影響。
- 轉倉日是否符合你實際的交易方式。若序列在到期日才轉倉,最後一週你的交易就會落在流動性很薄的合約上。多數交易者會提早幾天轉倉。
從跳動點價值到轉倉日,所有設定的完整說明,請見正確的期貨回測:規格、轉倉、跳動點價值、成本。試算表與程式庫可以讓你自己調整序列;圖表測試器與券商模擬器則只能用它們提供的序列。
免費回測會計入手續費與滑價嗎?
許多免費工具預設手續費與滑價都是零,這會讓交易頻繁的策略看起來比實際更好。因此在第一次執行前,請先以工具自己的單位輸入來回成本,並拿它和平均每筆損益比較。滑價是你的規則假設的成交價,與真實委託實際成交價之間的差距。以 K 棒收盤價下的市價單,很少恰好在那個收盤價成交。
成本就像每一筆交易都要繳的通行費。一天穿越收費站兩次的策略,每年付的費用遠多於一個月只穿越兩次的策略,即使兩者賺到的總價格變動相同。把通行費設為零時,交易頻繁的策略因為權益曲線較平滑而勝出;設入實際的通行費後,排名往往會反轉。
假設性範例
一條頻繁交易的規則做了 2,000 筆交易,毛利平均每筆 40 美元,總毛利 80,000 美元。一條較慢的規則做了 200 筆交易,毛利平均每筆 300 美元,總毛利 60,000 美元。兩者都以每個來回 50 美元計算成本。頻繁規則的淨損益是 80,000 − 100,000 = −20,000 美元。較慢規則的淨損益是 60,000 − 10,000 = 50,000 美元。預設為零的工具,把兩者的排名排反了。
要設定成本,你需要該合約的跳動點價值。以微型那斯達克 100 期貨(NQ)為例,最小跳動點是 0.25 指數點,價值 5.00 美元,而一點等於 20 美元(CME Group 合約規格)。交易所可能變更跳動點大小與合約價值,因此請以交易所的合約頁面為準。免費的期貨合約計算機可以查到常見合約的跳動點大小、跳動點價值,以及一筆交易的損益。有了這些數字,NQ 的兩跳滑價是 10 美元,券商手續費換算成美元也很容易加入。
下方是 AlphaPrime(Valynox)含成本的回測報表示例。這次執行使用 NQ 日 K 資料,期間為 2019-01-02 至 2025-06-30,做多與做空,每次 1 口,每筆交易計入 20 美元手續費與 10 美元滑價。這條規則只是示範用:以 RSI 作為唯一的進場與出場條件,沒有停損、停利或過濾條件,使用的是標準指標,並非本文的主題。它是搜尋在嘗試的 1,024 條中,依報酬相對於回撤挑出的唯一候選策略。事後挑出保留下來的那一條會美化結果,而這裡的數字也不代表這條規則確實賺到這些錢,讀者也不應預期能有相同的表現。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。NQ 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $10。
| 項目 | 結果 |
|---|---|
| 淨利(已平倉) | $174,845 |
| 最大回撤 | $75,475 |
| 交易筆數 | 328 |
| 勝率 | 57.93% |
| 獲利因子 | 1.31 |
| 平均每筆 | $533.06 |
| 在場時間 | 36.32% |
首先該看的是平均每筆損益 533.06 美元。因為手續費與滑價是在每筆交易內部計入的,這個數字已經是淨額,而且是該次執行每筆所計成本 30 美元的許多倍。若免費工具顯示的平均每筆毛利是 533.06 美元,你就得自己扣掉成本,再問扣完後剩下的是否仍明顯大於零。在 AlphaPrime 中,回測步驟會計入手續費與滑價,並在每次評估中於下一根 K 棒成交,因此搜尋過程中的候選排名,就已反映實際帳戶會付出的成本。
免費軟體能做策略檢驗與匯出嗎?
免費工具通常只產生一個樣本內(IS)結果就停止了:沒有推進分析的各個視窗,沒有和你嘗試過的其他候選策略做比較,也無法把規則匯出到交易平台。因此後續的研究步驟只能手動完成,或根本不做。樣本內是指你在挑選規則與其參數時所使用的資料。單一樣本內結果是研究路徑的第一步,而不是最後一步。
第一次回測之後的步驟,免費工具也能做,但要由你自己動手:
- 依日期切分資料。在執行任何測試前先選定切分日期,只在前段資料上調整參數,再把完成的規則原封不動套用到後段資料。在試算表中,這意味著兩份表格;在圖表測試器中,則是改兩次日期範圍,並把兩次結果都記下來。
- 沿著歷史重複切分。推進分析是一種測試方式:在某個視窗上調整參數,原樣套用到接下來的視窗,然後向前推進、重複,直到串接起來的樣本外片段構成一份完整結果。Pardo(2008)將其描述為評估最佳化規則的標準方法。若用手動方式,每個視窗都得做一次調整與一次測試。
- 試著把規則打破。把滑價加倍、把每個參數向兩個方向各移動一級,並移除五筆最大的獲利交易。記下規則通過了哪些檢驗。
- 計算候選數量。在保留這條規則之前,寫下你嘗試過多少種變體。嘗試得越多,最佳結果被運氣灌水的程度就越大,下一節會解釋原因。
- 把規則搬到你的交易平台。多數免費測試器把規則保存在它們自己的腳本語言中,因此你得為你交易的平台重寫一次,並確認交易明細是否一致。
研究平台會用相同的設定,對每一個候選策略執行這些步驟。AlphaPrime 會把推進分析納入策略檢驗,當候選策略未通過前面的檢查時,便停止後續檢查;它也能將策略原始碼匯出至六個交易平台,列於策略匯出支援平台頁面。使用免費工具,同樣的步驟也做得到,但每一步都是手動作業,而且得記得做、記得留紀錄。
免費軟體能回測選擇權嗎?
選擇權需要每個履約價與到期日的價格歷史,還要有隱含波動率資料,免費工具幾乎都沒有這些資料。因此請先測試構想的期貨版本,把選擇權回測當成另一個更困難的專案來看待。期貨回測每個市場只需要一條連續價格序列;選擇權回測則需要你的規則可能交易的每一個履約價與到期日各一條序列,單一指數的序列數量就會達到數千條。
選擇權還帶來第二個價格維度。隱含波動率是市場已經反映在選擇權價格中的預期波動幅度,它會自行升降,與標的物的方向無關。一條在指數回檔時買進買權的規則,方向可能判斷正確,卻因為回檔後隱含波動率下降而虧損。期貨回測沒有這第二個維度,價格就是全部。
| 需求 | 期貨 | 選擇權 |
|---|---|---|
| 所需資料序列 | 一條連續合約 | 每個履約價與到期日一條序列 |
| 額外輸入 | 無 | 隱含波動率與希臘字母 |
| 免費工具的一般可得性 | 常見 | 罕見 |
| 成本模型 | 每口手續費加滑價 | 每口手續費加較寬的買賣價差 |
實際的順序是:先把構想寫成期貨合約上的方向性規則,用日 K 或盤中 K 棒加上成本來測試;只有當它通過前一節的檢查後,才去考慮某個選擇權組合是否能更好地表達同一構想。選擇權回測指南說明第二個專案需要哪些資料與成本假設。在期貨上失敗的規則,加入買賣價差與波動率維度後,幾乎沒有機會變好。
何時該從免費工具轉向研究平台?
當你的問題從「這一條規則有效嗎」變成「在許多規則與參數中,哪些能通過成本與樣本外檢驗」時,就該轉換。此時,變體的數量、對一致成本設定的需求,以及檢驗步驟,都已超出免費工具的設計範圍。觸發點是你測試的變體數量,而不是帳戶規模。
原因在於選擇偏誤。當你測試許多變體並保留最好的那一個,你保留下來的部分有真正的規律,也有只是剛好符合那段歷史的雜訊。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,你在同一份資料上比較的變體越多,就需要越長的歷史,才能分辨最佳變體是真本事還是運氣。手動測試十組參數並保留一組,問題還不大;測試數百組再保留一組,樣本外檢查就成了唯一可信的評分方式。而用手動方式把數百個候選策略跑過推進分析的視窗,就像走路去火星:理論上可行,但沒有人真的走完過。
以下是這條尺度上的三個指標:
- 一條規則,照原樣測試。免費回測器就夠用。設定成本、確認轉倉方式、看扣除成本後的平均每筆損益,然後做決定。
- 同一規則的幾十組參數。免費工具仍可使用,旁邊再搭一張試算表,記錄每個變體、切分日期與各自的樣本外結果。這份紀錄能讓你誠實面對自己到底嘗試過多少變體。
- 數百個或更多候選策略。每一個候選都需要相同的成本、相同的成交規則與相同的推進分析視窗;未通過早期檢查的,應在進入後段資料前就淘汰。這正是研究平台的用途;AlphaPrime 的策略檢驗會把你設定的門檻套用到搜尋中的每一個候選策略。
你的下一步:拿出你從免費工具得到的最後一個結果,在旁邊寫下三件事。資料的轉倉方式。你以工具單位輸入的每筆成本。你在保留這條規則前嘗試過的變體數量。如果第一項是「不知道」、第二項是零,或第三項超過大約三十,就用調整過的序列重跑一次,成本至少比手續費多兩個跳動點,並在看結果之前就選定切分日期。
常見問題
哪裡可以免費回測交易策略?
有四類免費工具可以在歷史 K 棒上重播規則:圖表平台內建的策略測試器、試算表、開源程式庫,以及券商的模擬帳戶。圖表測試器上手最快,試算表能看到每一個數字,程式庫提供最大的控制權,模擬器則以即時價格、一次一天地交易。四類工具一次都只測試一條規則,跨越許多變體的檢驗需要手動完成。
最好的免費回測軟體是哪一套?
適合的類型取決於你想測什麼,而不是排名。若只測一條使用標準指標的規則,附有日期範圍與成本欄位的圖表測試器就夠了。若想學習回測如何運作,試算表最好,因為沒有任何東西被藏起來。若要用自己的期貨資料與調整過的轉倉序列,程式庫是唯一能載入這些資料的免費類型。評估任何工具,都看它能不能設定成本、選擇資料與切分日期。
免費軟體能回測期貨嗎?
可以,前提是工具內建或允許你載入期貨 K 棒資料,並能設定每口合約的成本。常見的缺口是合約轉倉:許多免費工具使用未調整的連續序列,因此在轉倉日仍持有部位的規則,會回報根本不可能取得的損益。在看多年結果之前,請先檢查序列的轉倉方式,以及合約的跳動點價值。
免費回測軟體有包含滑價嗎?
多數免費工具有滑價欄位,但預設為零。對流動性好的期貨,每邊至少輸入一個跳動點;對流動性較差的合約,或在波動劇烈時段進場,則應更多。接著把滑價加倍重跑一次,看規則是否依賴便宜的成交價。把來回成本與扣除成本後的平均每筆損益相比,平均每筆損益應該是成本的好幾倍。
參考資料
- 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.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html

