Share Notes

chundev

View the Project on GitHub latteouka/share-notes

動態口數策略的資金規模效率分析

日期:2026-04-30 標的:台積電期貨(CDF)動態口數策略 回測期間:2018-01-01 ~ 2026-04-30(8 年全期)


TL;DR

對動態口數期貨策略做了 45 次回測(15 個資金規模 × 3 種 maxContracts 上限),回答「資金小跟資金膨脹後賺錢效率有沒有差別」。三個結論:

  1. 策略本身沒有遞減no-cap 配置下,CAGR 從 30 萬到 1 億都穩定 80-83%;資金線性放大、損益等比放大
  2. 設 maxContracts 等於主動製造遞減cap-10 在 300 萬撞頂、cap-20 在 400 萬撞頂,多餘資金完全閒置
  3. 「Calmar 在高資金更高」是假象cap-10 在 5000 萬時 Calmar 3.82 看似最佳,但 CAGR 只剩 6.1%;分母放大讓 MDD% 縮水造成的數字錯覺

真正的瓶頸是保證金與流動性,不是策略本身。


探索方法:B + C 兩個維度

「賺錢效率」可以從多個角度切入。本次探索鎖定:

測試矩陣

維度
資金規模 30, 50, 100, 200, 300, 400, 500, 600, 750, 800, 1000, 1500, 2000, 5000, 10000(萬元,15 點)
maxContracts no-cap(不設)/ cap-10 / cap-20(3 組)
期間 2018-2026 全期
總計 45 次回測

選點原則:


三個關鍵發現

發現 1:no-cap 完全沒有遞減

資金 CAGR MDD Calmar 平均口數 dProfit/dCapital
30 萬 80.0% 32.5% 2.46 6.1
100 萬 81.8% 41.5% 1.97 22.3 155.7
1,000 萬 82.8% 42.4% 1.95 233 151.9
10,000 萬 82.9% 42.4% 1.96 2,347 150.3

邊際指標永遠 ~150(每多 1 萬資金多賺 ~150 萬累計損益)。這不是「資金有 150 倍效率」,而是「動態口數 + 7 年複利」的乘積:

Calmar 在 30 萬時最高(2.46),因為小資金口數成長空間最大(從 1 口到 29 口);50 萬之後 Calmar 趨於穩定 ~1.96,因為複利讓不同資金的 CAGR 與 MDD 等比例放大。

發現 2:cap 鎖死後線性轉零

配置 拐點 容量天花板 撞頂率到達 100% 的資金
no-cap 未出現 未出現
cap-10 300 萬 300 萬 200 萬
cap-20 400 萬 400 萬 400 萬

cap-10 的邊際曲線:

段:    30→50  50→100  100→200  200→300  300→400  500→1000
邊際:  15.12   5.68    1.06     0.00     0.00     0.00

口數鎖在 12 之後(為什麼是 12 不是 10?因為高信心進場觸發時 multiplier × 2 可以突破 cap),多餘資金完全閒置。增加任何資金都不會多賺一塊錢。

這不是策略容量的天花板,是人為上限。 設 cap 在實務上的意義是「自我設限以防流動性 / 心理壓力」,不是「優化效率」。

發現 3:「Calmar 在高資金更高」是假象

cap-10 的 Calmar 走勢:

資金:    30    50    100   200   300   500   1000  5000  10000
Calmar:  2.17  1.54  1.28  1.74  2.00  2.41  3.11  3.82  3.81

5000 萬時 Calmar 3.82 看似史詩級,但細看:

配置 資金 CAGR MDD Calmar
no-cap 30 萬 80.0% 32.5% 2.46
cap-10 5,000 萬 6.1% 1.6% 3.82

5000 萬 cap-10 的絕對賺賠不變(口數鎖死),但分母(資金)變大讓 MDD% 從 30%+ 縮到 1.6%。Calmar 上升不是效率提升,是「賺得不多但相對穩定」的數字錯覺。

真正的效率甜蜜點要看 CAGR 與 MDD 的絕對水準,不是 ratio。no-cap 在 30 萬(CAGR 80%、MDD 33%、Calmar 2.46)才是「策略最有效率」的位置。


個人投資者的實務位置

假設個人投資者起始 260 萬、目前 439 萬,回測中對應指標(線性插值):

配置 260 萬 CAGR 439 萬 CAGR 260 萬 Calmar 439 萬 Calmar
no-cap 82.4% 82.5% 1.98 1.96
cap-10 36.8% 29.0% 1.90 2.30
cap-20 47.6% 39.0% 1.47 1.79

回測 ≠ 實盤。實盤受兩個因素天然約束:

  1. 保證金壓力 — 動態口數允許約 27% 資金利用率(marginRate 0.135 × multiplier 2),但實盤要保留追繳緩衝、避免維持率風險,實質可開口數遠低於回測
  2. 流動性限制 — 期貨單一帳戶 30-50 口開始吃滑價

實際上 439 萬的真實效率曲線比較像 cap-3,因為保證金限制讓口數頂多 3 口附近。而 cap-3 在 439 萬已經完全撞頂。


資金分流臨界點

資金量級 建議 原因
< 1,000 萬 全力期貨 在「複利甜蜜區」,資金等同效率
1,000 - 2,000 萬 開始分流 動態口數 ~30 口(流動性 + 心理線浮現)
> 2,000 萬 必須分流 單筆百口級滑價顯著、不可實現

「賺錢效率」最終答案:

策略本身沒有遞減,但實盤受保證金約束會自然遞減。這不是 bug,是現實。

解法不是調策略參數,是「資金量級到了就分流」。


學到的事

  1. 動態口數策略的數學上限不存在 — 只要資金可線性投入、口數可線性放大,邊際就會永遠保持高位
  2. 回測 vs 實盤的差距由保證金 + 流動性決定 — 不要拿回測曲線直接套個人實盤;實盤效率會比回測 no-cap 低很多
  3. 不要被 Calmar 騙了 — 高 Calmar 可能來自「分母膨脹」而非「策略變強」;要交叉看 CAGR 與 MDD 的絕對值才能判斷
  4. 設 maxContracts 是風控工具不是優化工具 — 用來防止流動性事故,不要期待它能改善績效
  5. 邊際遞減拐點偵測(dProfit/dCapital < 0.8)對固定 cap 配置才有意義 — 對 no-cap 動態口數,邊際永遠 > 1(因為複利乘數);改用「達到流動性上限 / 心理壓力上限」當實務拐點
  6. 資金分流是策略容量到頂後的唯一解 — 不是「分散風險」的話術,是策略本身不能再吸收更多資金時的必要動作

探索框架(可重用)

這個分析方法對任何「動態口數型」策略都適用,需要的最小工具:

// 1. 邊際指標計算
function computeMarginalProfit(prev, curr) {
  return (curr.profit - prev.profit) / (curr.capital - prev.capital);
}

// 2. 拐點偵測(首次邊際 < threshold 的索引)
function detectKneePoint(points, threshold) { ... }

// 3. 容量天花板偵測(首次邊際 < epsilon ≈ 0 的索引)
function detectCapacityCeiling(points, epsilon) { ... }

外加既有的 calculateTimeBasedSharpeRatiocalculateCalmarRatiocalculateSortinoRatio 三個指標,就能組出完整的「資金規模 × cap 配置」效率掃描。

跑 45 次回測 + 邊際計算 + ASCII 走勢圖大約 200 行 TypeScript,2-3 分鐘執行完。


結論

回到原問題:「資金小跟資金膨脹後賺錢效率有不一樣嗎?」

視角 答案
策略本身(無實務限制) 不一樣 — 30 萬 Calmar 2.46,50 萬 +穩定 ~1.96;CAGR 永遠 80-83%
實盤路徑(有保證金限制) 不一樣 — 口數成長 < 資金成長,越大越慢,需主動分流
哪一個有用? 後者 — 前者是理論上限,後者是現實

策略沒有 bug。是「資金大了之後保證金不再讓你按複利成長」這個現實,逼著你在 1000-2000 萬時必須做出「資金分流到其他資產」的決策。