作者:Dicky CCY|Ace Fortune 領財智庫 AI Trading Academy 講師、量化交易·盈利分裂教練
很多人把心力全部投在策略上,以為找到一支勝率高的 ea程式,帳戶就會自動長大。我在課堂上見過太多相反的例子:策略本身沒有壞,程式也沒有停,帳戶卻在幾個月內被慢慢磨掉。問題往往不在進出場邏輯,而在資金分配,也就是倉位開得太大、回撤預算沒有留、資金曲線走壞時又不肯縮手。
這篇文章要處理的,是寫好一支 ea程式 之後,錢該怎麼配。我會把單筆風險與回撤預算的關係拆開講,用一個可以自己驗算的算例,帶你從帳戶規模一步一步推回倉位上限;再談程式在不同市況下的回撤差異,以及資金曲線走壞時該不該縮倉。你會發現,程式的資金管理不能只看回測的平均回撤,而要看尾部。
為什麼資金分配比策略參數更決定生死
一支程式的進場邏輯,決定的是它會不會賺;資金分配決定的,卻是它虧的時候會不會把你掃出場。多數香港散戶第一次跑 ea程式,都是用固定手數,帳戶一萬美元開零點一手,帳戶長到兩萬還是零點一手,完全沒有隨著規模調整;反過來,帳戶跌到五千,手數卻沒變,於是同樣的行情波動,對帳戶的傷害愈來愈大。
我常跟學員講一個比喻:策略是引擎,資金分配是煞車與油箱。引擎再強,煞車失靈一樣出事。實務上,我看到帳戶撐不住的原因,八成不是策略突然失效,而是單筆風險長期超過帳戶能承受的比例,一次連續虧損就把本金打到無法翻身。
資金分配還有一個容易被忽略的作用:它讓你在策略失效時還有子彈。任何一支 ea程式 都有失效期,可能是參數過時,也可能是市況轉換。如果每筆都用大倉位去搏,策略失效的那一段虧損會直接吃掉你全部緩衝;但若單筆風險控制在合理範圍,你就有時間觀察、調整,甚至暫時停用。
先看倉位的本質。倉位不是你想贏多少,而是你願意為這一筆付多少學費。把這個金額先定出來,策略訊號才有意義。這也正是為什麼我要求學員在實盤前,先把資金分配表寫出來,而不是先調參數。
單筆風險與回撤預算的關係
資金分配的核心其實只有一句話:單筆風險要跟回撤預算對得上。單筆風險是一筆交易最多虧掉帳戶的百分之幾;回撤預算是整個程式最壞情況下可以讓帳戶回落多少。兩者一個是點,一個是線,必須先定線,再定點。
單筆風險該用什麼口徑
單筆風險不是止損點數,而是止損被觸發時,帳戶會蒸發的金額佔比。假設帳戶十萬美元,單筆風險設百分之一,那就是每一筆最壞情況虧一千美元。這個數字必須在看訊號之前就固定,不能因為這一筆感覺很穩就偷偷放大。
會用百分之一而不是別的數字,是因為它必須跟最大連續虧損筆數一起看。若歷史最大連虧是十五筆,百分之一的單筆風險意味著連虧十五筆約虧掉一成五,帳戶仍在可承受範圍。反過來,若單筆風險拉到百分之三,同樣十五筆連虧就是四成五,帳戶幾乎回到原點。這裡的關鍵不是單筆風險多小,而是它乘上連虧筆數之後,還剩多少緩衝。
回撤預算為何要留緩衝
回撤預算通常建議用回測最大回撤的倍數來定。為什麼不直接用回測那個數字?因為回測的最大回撤是樣本內的歷史極值,而且它假設了完美成交、零滑價、無斷線。真實市場的樣本外表現往往比回測更差,這當中的落差,我在另一篇談 回測與實盤之間的隱形成本 時也提過。所以實務上我會取回測最大回撤的一點五倍作緩衝,把樣本外的惡化、執行成本、參數偏移一併預留進去。
順帶一提,槓桿會讓這件事更敏感。根據 投委會關於槓桿式外匯的基本認識,槓桿式外匯的按金門檻雖低,但輕微匯率變動就會被槓桿放大,極端波動下損失可能超過按金。所以回撤預算不只要考慮程式邏輯,還要考慮你用的槓桿倍數,這也是 ea程式 部署前必須一併算進去的變數。
完整算例:從十萬美元帳戶推出倉位上限
到這裡是全文最需要你動手算的部分。我用一個完全假設、可以驗算的例子,把帳戶規模、回撤預算、單筆風險、倉位這條鏈走一遍。所有數字都是模擬口徑,用來示範方法,不代表任何實際程式的表現。
先定帳戶規模。模擬帳戶十萬美元。接著是回撤預算:假設這支 ea程式 的回測最大回撤是百分之十八,取一點五倍緩衝,回撤預算就是百分之二十七,也就是二萬七千美元。這是你容許程式在極端情況下讓淨值回落的上限,不是你打算虧掉它,而是你要確保帳戶撐得住這段回落。
然後是單筆風險。假設回測裡最長的連續虧損是十五筆,把回撤預算除以連虧筆數,得到單筆風險上限:二十七除以十五,等於百分之一點八。為了留更多安全邊際,我們取整數百分之一。這個百分之一,就是每一筆交易最壞情況可以虧掉帳戶的金額,即一千美元。
最後換算倉位。假設做的是歐元美元,止損設五十點,一個標準手每點價值十美元,所以每一標準手的單筆風險是五百美元。用一千美元除以五百美元,得到倉位上限:兩個標準手。
驗算一下這條鏈:兩個標準手、每手每點十美元、止損五十點,單筆最壞虧損是 2 x 50 x 10 = 一千美元,正好是帳戶的百分之一。若連續出現十五筆這種虧損,累計虧損約一萬五千美元,佔帳戶一成五,仍在二萬七千美元的回撤預算之內,安全邊際尚有約一點八倍。
為什麼要留一點八倍這個緩衝,而不是把倉位開到剛好用滿回撤預算?因為上面的數字都建立在未來跟歷史一樣的假設上。真實市場裡,止損可能被滑價放大、連虧可能超過十五筆、回測回撤可能低估。緩衝的作用,就是在假設失效時,帳戶還有退路。這也是我在課堂上反覆強調的:倉位要按最壞情況定,不是按平均情況定。

不同市況下程式的回撤差異
同一支 ea程式,在不同市況下的回撤可以差好幾倍。回測報告通常只給你一條最大回撤曲線,但真實回撤是分市況的。若你把不同時期的回撤拆開看,會發現趨勢市、震盪市、極端行情下,程式承受的壓力完全不同。
趨勢市與震盪市的落差
先說趨勢市。順勢型程式在趨勢裡表現好,回撤通常小,因為價格一走就是一大段,止損很少被觸發。但震盪市就相反:價格來回磨,止損被反覆觸發,連虧筆數拉長。所以同一支程式,在趨勢樣本的最大回撤可能是百分之十二,在震盪樣本卻可能是百分之二十五。
我在課堂上會要學員把回測分成三段:趨勢段、震盪段、事件段,各看一次回撤。若你只看整段的最大回撤,很容易被趨勢段的漂亮數字騙了。不同程式類型對市況的敏感度也不同,關於 各類程式的策略特性,可以在另一篇看清楚,再回頭決定這支 ea程式 適合配多少資金。
極端行情下的尾部回撤
真正決定生死的,是尾部,也就是最壞的那百分之五。回測的平均回撤、中位數回撤,甚至最大回撤,都可能低估尾部風險,因為極端行情在樣本裡出現的次數太少。一次新聞行情、一次流動性斷層,就可能讓單日虧損超過整月平均。
下面這張表是我要求學員填的,把平均回撤與尾部回撤並列。數字是模擬口徑,重點在於養成看尾部的習慣。
| 市況類型 | 模擬平均回撤 | 模擬尾部回撤(最壞百分之五) | 對資金分配的含義 |
|---|---|---|---|
| 趨勢市 | 8% | 14% | 順勢段回撤小,容易高估承受力 |
| 震盪市 | 15% | 26% | 連虧拉長,須用尾部定預算 |
| 事件行情 | 12% | 34% | 滑價與跳空放大,緩衝要更厚 |
看表就知道,為什麼不能只用平均回撤定預算。若你用百分之十五當回撤預算,遇到事件行情的模擬尾部回撤百分之三十四,帳戶早就穿倉了。取回測最大值再乘一點五倍,正是為了讓預算覆蓋到這條尾巴。
資金曲線走壞時的縮倉機制
到這裡,資金分配的靜態部分講完了,但真實帳戶是動態的。當資金曲線連續走壞,最危險的不是虧損本身,而是你或程式仍然用原本的倉位在跑。這時候一句話可以決定帳戶死活:程式到底有沒有內建縮倉機制。
先問一個問題:這支 ea程式,在回撤擴大時會不會自動降低手數?很多程式沒有。它們用固定手數或固定風險比例開倉,資金曲線跌了,倉位照樣不變,於是同樣的行情波動,對縮水後的帳戶造成更大的百分比傷害。要確認這一點,最直接的方法就是 先讀一份程式的原始碼,看它的手數計算邏輯有沒有跟淨值掛鉤。
若程式沒有內建,你就要手動加上縮倉規則。我自己在課堂上用的做法是階梯式:把回撤預算切成幾段,淨值回落超過某一檔,倉位就按比例下調。假設回撤預算百分之二十七,模擬規則是回落超過三分之一,約百分之九時,倉位減半;回落超過三分之二,約百分之十八時,倉位再減半。這樣做的好處,是讓帳戶在艱難時期自動降速,而不是等到虧光才後悔。
縮倉機制還有一層紀律意義:它把什麼時候該收手提前寫死,避免你情緒化地加碼想要翻本。根據 CFTC 關於降低外匯交易風險的建議,把風險控制成事前規則、而不是事後補救,是保護本金的基本原則。至於更完整的風險控制觀念,IG 交易學院對控制風險的說明 也值得一讀,它把倉位、止損與資金曲線放在同一套框架裡談。
三個常見的資金分配錯誤
講完方法,回頭看不合格的做法。我見過的錯誤集中在三個地方,而且幾乎每個新手都至少犯過一個。
最常犯的一種,是把回測平均回撤當成預算。平均回撤是平常會發生的事,但資金分配要防的是最壞會發生的事。用平均值定預算,等於假設自己永遠不會遇到極端行情。
再來是單筆風險浮動。今天覺得訊號強就開兩倍倉,明天覺得沒把握就開一半。單筆風險一旦浮動,回撤預算就失去意義,因為你根本不知道自己最壞會虧多少。
還有一種是完全不縮倉。資金曲線跌了,手數不變甚至變大,這是最快讓帳戶歸零的路徑。要不要縮倉,應該在寫 ea程式 的時候就決定,而不是等虧損發生才想。
這三個錯誤有一個共同點:它們都忽略尾部。策略可以靠邏輯賺錢,但資金分配必須靠尾部保命。所以在設計任何一支 ea程式 時,我總是把資金分配的優先級排在參數優化之前。

一份可核對的資金分配檢查清單
把上面的東西收斂成一張清單,實盤前逐項核對,就不容易漏。
| 檢查項目 | 合格標準 | 常見錯誤 |
|---|---|---|
| 回撤預算 | 回測最大回撤乘一點五倍 | 直接用回測平均值 |
| 單筆風險 | 回撤預算除以最大連虧筆數以內 | 憑感覺浮動 |
| 倉位 | 單筆風險金額除以每手風險 | 固定手數不隨規模調整 |
| 縮倉機制 | 淨值回落分段減倉 | 完全沒有縮倉規則 |
| 市況覆蓋 | 趨勢、震盪、事件各看一次 | 只看整段最大回撤 |
若你想更深入理解 ea程式 的資金配置思路,我的建議是把這張表印出來,貼在螢幕旁,每次改參數前都對一次。數字會隨市況變,但對齊回撤預算的邏輯不會變。
常見問題
問:資金分配要用回測的最大回撤,還是平均回撤?
答:用最大回撤再乘一點五倍。平均回撤只反映平常狀況,資金分配要防的是極端情況。用平均值定預算,等於假設自己不會遇到最壞的行情,這在實盤裡很少成立。
問:回撤預算為什麼要用一點五倍,不是剛好用回測值?
答:因為回測是樣本內的歷史,且假設完美成交、零滑價、無斷線,樣本外的回撤通常更差。一點五倍是模擬口徑下的緩衝,用來吸收滑價、執行成本與參數偏移,實際倍數可以依策略的敏感度再調整。
問:單筆風險設多少才合理?
答:常見範圍是帳戶的百分之零點五到二。關鍵不是數字本身,而是它乘以歷史最大連虧筆數後,是否仍在回撤預算內。假設連虧十五筆,百分之一很安全,百分之三就已吃掉大部分緩衝。
問:程式沒有內建縮倉機制,我該怎麼辦?
答:手動加上階梯式縮倉。把回撤預算切成幾段,淨值回落超過某一檔就按比例降低手數。先讀原始碼確認手數計算邏輯,再決定要在哪裡掛鉤淨值,避免改錯地方。
問:不同市況的回撤差很多,我要用哪一段來定預算?
答:用最壞的那一段,也就是尾部。把回測拆成趨勢、震盪、事件三段,各看一次回撤,取其中最高者,再乘緩衝倍數。若你的 ea程式 只輸出整段最大回撤,就要自己拆段驗算,否則很容易被表現最好的時期誤導。
立即 WhatsApp 聯繫小風團隊免費諮詢:+852 5378 5383
網站:https://aitrading.ace-fortune.com/EA
投資涉及風險,過往表現不代表未來回報。本內容僅供教育參考,不構成任何投資建議。


