VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 策略生成

用演算法交易前的 6 項檢查:真金白銀上場前要過的關卡

以真金白銀跑演算法交易前,依固定順序通過六項檢查:資金要能撐住回測的最大回撤且還有餘裕、規則要能用白話說清楚、回測要計入實際成本、樣本外與推進分析要站得住、部位大小與模擬交易期間要事先定好,並寫下停用規則。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 用演算法交易前,要先檢查什麼?
  2. 用演算法交易需要多少資金?
  3. 用演算法交易需要會寫程式嗎?
  4. 回測有沒有計入實際成本與下一根 K 棒成交?
  5. 策略有通過樣本外與推進分析的檢驗嗎?
  6. 如何設定部位大小、檢查保證金並進行模擬交易?
  7. 什麼時候該停用演算法?
  8. 常見問題
  9. 參考文獻

用演算法交易前,要先檢查什麼?

以真金白銀用演算法交易前,要依固定順序通過六項檢查:資金要能撐住回測的最大回撤且還有餘裕、規則要能用白話說清楚、回測要計入實際成本、樣本外與推進分析要站得住、部位大小與保證金和模擬交易期間要事先定好,最後要寫下停用規則。

演算法交易是由一套寫好的規則決定每一次進場與出場,再由程式送出委託。程式消除了猶豫,但也消除了人類察覺異常的那一拍停頓。這六項檢查就是把那一拍停頓放回第一筆委託之前,那時候它不花任何成本。如果你對這個概念還不熟,什麼是演算法交易,以及為什麼多數規則會虧損一文介紹了本文假設你已知道的背景。

  1. 資金對上回撤。帳戶的保證金之外,還要有一筆大於回測最大回撤的緩衝。
  2. 規則可讀。每一條進場與出場規則,你都能不看程式碼直接念出來。
  3. 回測含成本。每一筆交易都計入手續費、滑價,並以下一根 K 棒成交。
  4. 樣本外與推進分析。凍結後的規則,在它從未見過的資料上仍然成立。
  5. 部位大小、保證金與模擬交易。口數由每筆固定風險決定(免費的部位大小計算機可代為計算),保證金要能撐過最糟的一天,模擬交易則依固定筆數進行。
  6. 停用規則。三項觸發條件,附門檻,並在第一筆實單交易前寫下。

順序很重要。未通過某一項檢查的策略,不會進入下一項;你要嘛修正,要嘛放棄。若成本從未納入模型,就去檢查某個策略的部位大小,那是白費工夫,因為成本可能已把優勢完全吃掉。

依固定順序的六項上線檢查:資金、可讀規則、回測中的成本、樣本外、部位大小與模擬交易、停用規則。未通過任一項的策略須修正或捨棄,只有通過全部六項者才可上線。 六項檢查,依序進行 首次失敗即停止 1 2 3 4 5 6 資金 規則可讀 測試含成本 樣本外 部位與模擬 停用規則 未通過者:修正或捨棄。 故:唯全數通過者上線。
上線前的六項檢查,依序進行。未通過一項的策略要修正或放棄;只有六項全數通過的策略才會上線。

用演算法交易需要多少資金?

所需資金是保證金加上一筆緩衝,而這筆緩衝至少要能涵蓋最大的回測回撤,並且還有餘裕,因為實單的第一次回撤常常比回測來得大。光有保證金,只能讓部位在平靜的一天維持開倉。它幫不了每個策略遲早都會遇到的連續虧損。

回撤是從權益高點下跌到其後低點的幅度,是在權益回復之前所量得的。把它想成開車旅行:保證金是發動引擎的油,回撤緩衝是開到下一個加油站的油。帳戶只放發動引擎的油,遇到第一座坡就會熄火。本文唯一的公式如下:

所需資金 = 保證金 + 1.5 × 回測最大回撤 + 一年的成本

其中 保證金 是交易所與券商對每口合約要求的保證金;回測最大回撤 是同樣口數、已計入成本的回測中,最大的高點到低點跌幅;一年的成本 是回測在一年內產生的交易筆數所對應的手續費與滑價。係數 1.5 是實務上的安全邊際,不是定律。Bailey、Borwein、López de Prado 與 Zhu(2014)說明了為何需要保留一些餘地:從許多次嘗試中挑出最好的策略,會帶有選擇性的偏誤,因此它的回測回撤會低估新資料上會出現的回撤。保證金要求會改變,填入數字前請查閱交易所的合約頁面與券商目前的保證金表。

假設性範例

一口合約的保證金:20,000 美元。同一口數、計入成本後的回測最大回撤:40,000 美元,因此緩衝為 1.5 × 40,000 = 60,000 美元。回測一年約做 30 筆交易,每筆約 30 美元,一年成本約 1,000 美元。所需資金約為 81,000 美元。光是保證金只佔其中四分之一。一位以 25,000 美元開戶的交易者,並不是資金「稍微不足」,而是這個帳戶連一次普通的回撤都撐不過去。

假設性資金(每口):保證金 2 萬美元,加上 1.5 倍回測最大回撤的緩衝 6 萬美元,再加上每年成本 1 千美元,合計約 8.1 萬美元,保證金只佔其中四分之一 資金遠大於保證金 緩衝 = 1.5 × 回撤,假設性 保證金 $20k 緩衝 $60k 成本 $1k 所需 $81k 保證金只佔其中四分之一。 因此:帳戶資金應依總額來配置。
所需資金是保證金、回撤緩衝與持續成本疊起來的結果。旁邊那條細線只代表保證金。

不同類型的規則會產生不同形狀的回撤:趨勢策略通常以許多小幅虧損慢慢累積,均值回歸策略則是少數幾次大幅虧損。在設定緩衝大小之前,期貨演算法交易策略類型,以及各類型如何回測的概覽會告訴你該預期哪一種形狀。

用演算法交易需要會寫程式嗎?

不需要自己寫程式也能用演算法交易,但你必須能用白話讀懂每一條進場與出場規則,因為一條你說不清楚的規則,就是你無法判斷、也無法停用的規則。寫程式的問題在於投入的工夫,讀懂規則的問題則關係到安全,而且不論走哪條路都一樣。

問題自己寫程式生成並匯出規則
所需技能平台語言與除錯讀懂規則與報表
做出第一條可測試規則的時間數天到數週數小時
誰檢查邏輯你,逐行檢查你,在匯出的原始碼中逐條檢查規則
上線前仍必須讀懂的內容每一條進場與出場規則,用白話讀懂每一條進場與出場規則,用白話讀懂
手寫程式碼需要數天到數週才能得到可測試的規則,用生成的方式只需數小時,但兩條路線在實單交易前都必須逐條閱讀每條進場與出場規則 兩條路線最後都是閱讀 投入的工時不同,閱讀不能省 手寫程式 生成 測試所需時間 數天–數週 數小時 你要閱讀 每條規則 每條規則 兩條路線的最後一步相同。 因此:實單前須閱讀每條規則。
自己寫程式與不寫程式的路線,投入的工夫不同。最後一列對兩條路線都一樣:上線前,每一條規則你都要讀過。

一個實用的測試方法:把策略用一頁文字寫下來,寫成「當條件 A 連續兩根 K 棒成立時,於下一根 K 棒開盤做多;條件 B 成立或收盤時出場」這類句子。如果缺了任何一句,代表回測裡藏著一條你不知道的規則。三十天內做出第一個演算法交易策略的路線,從第一週就開始培養這個習慣。如果你選擇不寫程式的路線,AlphaPrime(Valynox)會把策略寫成原始碼,匯出到支援的匯出平台頁面所列的交易平台,所以你讀到的規則,就是平台實際執行的規則。

回測有沒有計入實際成本與下一根 K 棒成交?

只有當每一筆交易都計入手續費、滑價,並以下一根 K 棒成交,而且平均每筆損益是每筆成本的許多倍時,回測結果才能作為上線的依據。滑價是回測假設的成交價,與實際委託最後成交價之間的差距。下一根 K 棒成交是指:某條規則在某根 K 棒收盤時做出決定,但要到下一根 K 棒開盤才會成交,因為收盤價要等該根 K 棒結束才會知道。

下面的回測結果,示範了一份計入成本的報表長什麼樣子。它測試的是一個替代規則,而不是完整策略:以 ADX 作為唯一的進場與出場條件,ADX 是衡量價格趨勢強度、但不指出方向的指標;沒有停損、沒有停利,也沒有任何過濾條件。市場為 NQ(E-mini 那斯達克 100)期貨,日線 K 棒,期間 2019-01-02 至 2025-06-30,做多與做空,一口合約,每筆交易計入 20 美元手續費與 10 美元滑價。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。NQ 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $10。

項目結果
淨利(已平倉)$102,875
最大回撤$80,685
交易筆數43
勝率58.14%
獲利因子1.436
平均每筆$2,392.44
在場時間41.52%
替代規則回測的績效報表。這是從 1,024 個嘗試中,依報酬對回撤挑出的那一個候選策略。
替代規則回測的績效報表。這是從 1,024 個嘗試中,依報酬對回撤挑出的那一個候選策略。 NQ・日線・2019-01-02 至 2025-06-30・CPU 引擎回測

這份報表有兩件事對上線決策很重要。第一,這是搜尋從 1,024 次嘗試中,依報酬對回撤挑出的那一個候選策略。事後挑出最好的一個,會讓數字看起來更漂亮:在一千個變體中,有些會因為碰巧而在這段歷史上表現良好,因此這些數字只描述過去資料上被留下的那個候選策略,對這條規則或讀者未來會賺多少,並沒有說明。第二,成本檢查很容易通過:平均每筆損益 2,392.44 美元,約為該次回測每筆 30 美元收費的八十倍,因此滑價就算加倍,結果也幾乎不會改變。弱點在別處。最大回撤 80,685 美元,約為淨損益 102,875 美元的五分之四;六年半只有 43 筆交易,樣本很薄。依照上一節的資金規則,這條規則一口合約就需要相當於 1.5 倍該回撤的緩衝,加上保證金,這正是上線這條規則的真實成本。

在 2019 至 2025 年 NQ 日線替代回測中,平均每筆損益約 2.4 千美元,遠高於每筆 30 美元的交易成本,但 81 千美元的回撤幾乎與 103 千美元的淨損益一樣大 低成本,深度回撤 替代回測,NQ 日線,2019–2025 平均每筆損益 $2.4k 交易成本 $30 淨損益 $103k 回撤 $81k 回撤是淨損益的 4/5。 因此:依回撤設定緩衝資金。
在替代規則的回測中,平均每筆損益遠大於每筆成本,但回撤幾乎與獲利相當。

對於每筆交易獲利空間很小的日內規則,成本門檻和平均每筆損益門檻會很接近,多數實單嘗試就是在這裡結束的。優勢與成本之間的算術,在決定散戶演算法交易是否划算的數字一文中有詳細說明。

策略有通過樣本外與推進分析的檢驗嗎?

策略只有在規則於調校後凍結,並且在從未見過的資料上、跨越數個推進分析區段都站得住腳,而且判斷門檻是你在測試前就寫好的,才能上線。樣本外資料,是歷史中被保留在調校之外、僅用來對已完成規則做一次評分的那一段。推進分析則是:在一段區間上調整參數,接著原封不動地套用到其後的區間,然後向前推進、反覆進行,直到所有測試區段串接成一個完整結果。

這兩種測試用同一批資料回答不同的問題。單次切分回答的是「用 2019 到 2023 年調出來的規則,到了 2024 與 2025 年還有效嗎?」;推進分析則回答「每當市場往前移動,這套調校方法還持續有效嗎?」。一條規則若通過前者卻在後者失敗,通常是依賴某一次運氣好、剛好挑中的參數。

  1. 先寫下門檻:例如,樣本外的平均每筆損益至少為樣本內數字的一半,且四個推進區間中,至少三個在計入成本後為正。
  2. 調校結束時凍結規則。之後任何修改,都視為新的候選策略。
  3. 先跑單次切分,再跑推進分析,成本與下一根 K 棒成交的設定,與原始回測相同。
  4. 依門檻決定通過或不通過,不要以權益曲線看起來如何來決定。Pardo(2008)描述了推進分析的程序,以及以事前訂定的規則來判斷結果的理由。
同一段年份中,單次切分用前段調參、後段測試;推進分析則以四個平移視窗重複「調參後測試」,各段測試結果串接成一個結果;參數只會從調參移向測試 參數只會向前移動 同樣年份,2019 至 2025 單次切分 調參 測試 推進分析 測試資料絕不參與調參。 所以:先設定通過門檻。
同一段年份上的單次切分與推進分析。兩者中,參數都只從調校區段移到測試區段,而且不會倒回去。

Harvey 與 Liu(2015)指出了一個在測試大量候選策略時很關鍵的問題:在同一段歷史上比較的變體越多,倖存者必須跨過的門檻就越高。當門檻在搜尋開始前就已輸入,例如AlphaPrime 策略檢驗中逐階段的通過或不通過,那些在單次切分中被淘汰的候選策略,就不會進入推進分析階段,被淘汰的策略也不會接觸到後面的資料。視窗長度與如何解讀串接後的曲線,則在推進分析,以及你真的可以交易的那一個回測數字中說明。

如何設定部位大小、檢查保證金並進行模擬交易?

以每筆固定比例的帳戶風險來決定每次的口數,確認日內與隔夜保證金在最糟的一天仍能配得上帳戶,並以完成的交易筆數(而非週數)來安排模擬交易。這三項設定都應在紙上決定,之後就不要再動;模擬期間若變更設定,模擬期就要重新計算。

部位大小由兩個數字決定:你願意在一筆交易中損失的金額,通常是帳戶的百分之一到百分之二;以及一口合約在停損被觸發時的虧損金額。把前者除以後者,再無條件捨去成整數口數。對於沒有停損的規則,例如上面的替代規則回測,就以回測中最大的一筆虧損交易作為每口合約的虧損金額。前面提到的工具可以為任何合約完成這個除法。

保證金是交易所與券商為未平倉部位所持有的押金;日內保證金通常低於隔夜保證金,若部位要留到收盤後,就必須符合較高的隔夜保證金。以完整口數,在回測中最糟的一天檢查隔夜保證金是否符合帳戶狀況,也就是在最大回撤的谷底,而不是在開戶的初始餘額。如果當時的帳戶餘額無法支應每一口合約的隔夜保證金,就減少口數,直到足夠為止。

模擬交易是以即時報價運行策略、但不投入真錢,用來比較它的即時行為與回測是否一致。它的任務是收集成交的樣本,因此要以交易筆數來計算。約 30 筆完成的交易,是能讓平均成交差異具有意義的最小樣本;確切數字由你決定,但必須先寫下來。

假設性範例

目標:30 筆模擬交易。一個日線策略每年約交易 7 次,要達到目標需要四年以上,實際上不可行,因此它的交易者會檢查前 10 筆的成交品質,並更依賴推進分析的結果。一個每天交易兩次的日內策略,約十五個交易日,也就是大約三週,就能累積到 30 筆。

假設性情境:要累積 30 筆模擬交易,日內策略每天 2 筆約需 3 週,日 K 策略每年 7 筆需超過 4 年 計算交易筆數,而非週數 累積 30 筆模擬交易所需時間(假設性) 日內 每天 2 筆 3 週 日 K 每年 7 筆 4 年以上 同樣的目標,時間差很多。 所以:先設定交易筆數。
同樣是 30 筆的模擬目標,快速策略只需數週,慢速策略則要數年。計量單位是交易筆數,而不是週數。

模擬期間,每筆交易記錄三個數字:回測邏輯產生的訊號價格、模擬的成交價格,以及兩者之間的時間差。前兩者之間的差距就是你實測的滑價,它會餵給下面的第二項停用規則。

什麼時候該停用演算法?

在第一筆實單交易前,寫下停用規則:一個與回測掛鉤的回撤上限、一個實單與回測成交之間差距的門檻,以及一份技術故障清單,讓決策由規則來做,而不是由情緒來決定。在連續虧損的一週裡才決定停或不停的交易者,要嘛停得太早,停在正常的雜訊之後;要嘛停得太晚,等到帳戶已經受損。事先寫好規則,兩種錯誤都能避免。

觸發條件事先寫下的門檻行動
回撤實單回撤達到同口數回測最大回撤的 1.5 倍停止,然後檢討
成交差距最近 20 筆實單的平均滑價,高於回測假設的滑價停止,然後檢討
故障部位開倉期間,出現任何漏單、資料中斷或平台斷線停止,然後檢討
書面設定的三個關閉觸發條件,於首筆實單交易前訂定:回撤達回測最大回撤的 1.5 倍、實單滑價高於回測,以及任何漏單或故障;每一項都導向同一動作,先停止再檢討 三種關閉方式 首筆實單交易前書面訂定 回撤 1.5× 最大回撤 成交缺口 滑價 > 回測 故障 任何漏單 停止 停止 停止 每個觸發條件:停止,再檢討。 因此:絕不調整後繼續。
三項停用觸發條件,每項都有上線前設定的門檻,且行動相同:停止,然後檢討。

回撤觸發條件使用與資金規則相同的 1.5 係數,因此帳戶的大小足以撐過停用點。成交差距觸發條件,會在市場或券商的委託路由出現變化、並反映到權益曲線之前就先抓到;平均每筆損益接近每筆成本的策略,最先需要這項觸發條件。故障觸發條件之所以存在,是因為一支漏掉某張平倉委託的程式,會持有一個規則本應已平倉的部位,而這種情況沒有任何回測能涵蓋。「檢討」的意思是:在規則仍然凍結的前提下,把第五節的檢驗重新跑一次,而這次的歷史資料已包含實單期間。若重跑通過,同一策略可以用相同門檻重新啟動;若未通過,實單期間就已發揮它的作用。

一個具體的下一步:拿出你打算交易之策略的計入成本回測報表,寫下同口數的最大回撤,乘以 1.5,再加上保證金與一年的成本,然後把總額與你的帳戶比較。這一個數字就能決定第一項檢查,若未通過,其餘五項就可以先擱置。

常見問題

用演算法交易,最少需要多少錢?

要足以支應你口數所需的保證金,外加至少 1.5 倍、計入成本之回測中最大回撤的緩衝,再加上一年的手續費與滑價。只有保證金,在平靜的一天也能維持開倉;緩衝才是撐過每個策略都會遇到之連續虧損的關鍵。只準備保證金,是實單嘗試在前幾個月就告終的最常見原因。

用演算法交易,需要懂程式設計嗎?

不需要。策略可以生成並匯出為原始碼,無須親手撰寫。但閱讀這一關不能跳過:上線前,你必須能用白話句子說出每一條進場與出場規則。一條你說不清楚的規則,在它表現怪異時你就無法判斷,也無從決定停用。

演算法交易能賺錢嗎?

一套規則是否划算,取決於計入成本後的三個數字:平均每筆損益與每筆成本的比較、最大回撤與資金的比較,以及規則在未經調校的資料上表現如何。回測只說明這些數字在過去價格上的表現,並非預測。一旦計入實際的手續費與滑價,多數規則都會在第一個數字上失敗,這就是成本檢查要排在部位大小之前的原因。

上線演算法交易前,應該檢查什麼?

依序六項:資金對上回測回撤、規則能用白話讀懂、回測計入手續費與滑價並以下一根 K 棒成交、樣本外與推進分析依事前寫下的門檻通過、最糟一天的部位大小與保證金,加上以交易筆數計算的模擬期間,以及寫下的停用規則。未通過一項的策略,要先修正或放棄,才能進入下一項。

上線前應該模擬交易多久?

以完成的交易筆數計算,而不是週數。約 30 筆交易是能說明平均成交差異的最小樣本;日內策略幾週就能累積到,日線策略可能要數年,因此慢速策略更要依賴推進分析的結果,並在最初幾筆交易時檢查成交品質。每筆交易都要記錄訊號價格、成交價格與延遲時間,而且在開始前就先定好筆數。

參考文獻

  • 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.
  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.