問題:你的策略只在某些行情下賺錢

這是每個量化交易者都會遇到的問題 — 你精心調好的均線突破策略在趨勢行情中表現亮眼,但市場一進入震盪,連續止損把利潤全吐回去。

反過來,你設計的均值回歸策略在盤整期穩穩地賺,但突然來一波趨勢行情,直接被拉爆。

核心矛盾:沒有一個策略能在所有市場狀態下都表現好。

我們的解法:不要執著於一個「萬用策略」,而是建立一個策略路由器,根據市場狀態自動選擇最適合的策略。

四策略體系

經過大量回測和 OOS 驗證,我們保留了四個各有專長的策略:

策略擅長場景OOS 勝率核心指標
Pipeline趨勢行情75%多時間框架 EMA + RSI
BB Squeeze波動突破56%Bollinger Band 收窄 → 擴張
MACD Divergence震盪反轉33%*MACD 背離 + 成交量確認
Mean Reversion區間交易25%*Z-score + Bollinger 回歸

*MACD Div 和 MR 的 OOS 勝率較低,但搭配正確的市場狀態過濾後,實戰表現會大幅提升。這就是策略路由的價值。

為什麼保留低勝率策略?

直覺告訴你應該只用勝率最高的策略。但這忽略了一個事實:市場有 60-70% 的時間是震盪的。如果你只有趨勢策略,大部分時間你不是在賺錢,就是在虧錢。

低勝率策略在「正確的市場狀態」下勝率會提升。BB Squeeze 在高波動環境的勝率從 56% 提升到 80%+;MACD Div 在震盪市的精準度也顯著改善。

策略路由器:自動匹配市場與策略

路由邏輯

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
市場狀態偵測(ADX + BB + ATR + EMA)
┌──────────────────────────────────────┐
│ TRENDING(ADX > 25)→ Pipeline       │
│ RANGING(ADX < 20)→ MR + MACD Div  │
│ HIGH_VOL(BB > 15%)→ BB Squeeze    │
│ BREAKOUT(BB收窄→擴張)→ Pipeline    │
└──────────────────────────────────────┘
  WFO 驗證:該組合有 OOS 數據嗎?
┌─────────────────┐
│ ✅ 有驗證 → L2  │  ← 正常倉位
│ ❌ 沒驗證 → L1  │  ← 降級 50% 倉位
└─────────────────┘

真實路由表(今日數據)

我們系統目前追蹤 6 個主要幣種 × 2 方向 = 12 個組合,每個組合都有獨立的最佳策略映射:

  • BTC SHORT → BB Squeeze(91% 勝率,PF 8.5)
  • ETH SHORT → MACD Divergence(86% 勝率,PF 5.0)
  • BNB LONG → MACD Divergence(86% 勝率,PF 4.5)
  • XRP LONG → MACD Divergence(80% 勝率,PF 3.0)
  • SOL LONG → BB Squeeze(75% 勝率,PF 2.0)

活躍的有 7/12 個組合,其餘 5 個因為沒有找到足夠穩健的策略而暫時停用(這本身就是風控)。

WFO 驗證把關

策略路由器最關鍵的安全機制是 Walk-Forward Optimization(WFO)驗證

什麼是 WFO?

簡單說:

  1. 用前 70% 數據訓練(In-Sample)
  2. 用後 30% 數據測試(Out-of-Sample)
  3. 滾動窗口重複,確保策略在未見過的數據上也能盈利

我們踩過的坑

有一個真實案例:ETH/USDT LONG 的 Pipeline 策略在 In-Sample 表現很好,但 WFO 驗證的 OOS 數據為空(0 筆交易)。

系統仍然讓它以 L2 信心(正常倉位)開倉。結果?那筆交易虧了 $11.05,是所有自動交易中虧最多的一筆。

教訓:我們立刻修改了規則 — 沒有 WFO 驗證數據的策略組合,一律降級為 L1(50% 倉位)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# WFO 驗證通過的組合清單
WFO_VERIFIED = {
    ("BTCUSDT", "SHORT"), ("ETHUSDT", "SHORT"),
    ("BNBUSDT", "LONG"),  ("BNBUSDT", "SHORT"),
    ("XRPUSDT", "LONG"),  ("XRPUSDT", "SHORT"),
    ("SOLUSDT", "LONG"),
}

def get_confidence_level(symbol, direction):
    if (symbol, direction) in WFO_VERIFIED:
        return "L2"  # 正常倉位
    return "L1"  # 降級 50%

信心分級 × 倉位大小

路由器不只決定用哪個策略,還決定投入多少資金:

信心等級WFO 驗證倉位比例說明
L3✅ + 多策略一致100%最高信心,多個策略同時發出信號
L275%標準倉位,有 OOS 驗證支持
L1❌ 或部分50%降級倉位,減少損失衝擊

再搭配 Risk 2% 資金管理和連敗縮倉機制,即使連續幾筆失敗,損失也在可控範圍。

相關性風控

多策略帶來一個新問題:如果 BTC 和 ETH 同時發出做多信號,你其實承擔了雙倍的方向性風險(因為它們高度相關)。

我們的規則:

  • 同時最多 3 個同向持倉
  • BTC/ETH 高相關群組最多 2 個同向
  • 開新倉前檢查既有持倉的方向分布

實戰數據

系統運行以來的績效分離統計:

模式筆數勝率累計 PnL
Paper(手動信號)1087.5%+$17.41
Testnet(自動信號)862.5%+$30.26
合計1872.2%+$47.67

手動信號勝率高是因為 Judy(人類交易者)有額外的判斷力過濾掉邊界信號。自動信號的 62.5% 在加入 WFO 驗證把關後,預期會繼續改善。

給讀者的建議

  1. 不要追求一個完美策略 — 市場會變,策略要能跟著變
  2. 先建立市場狀態偵測 — 知道「現在是什麼行情」比「預測未來行情」重要
  3. WFO 驗證是必須的 — In-Sample 100% 勝率毫無意義,OOS 才是真相
  4. 沒驗證就降級 — 寧可少賺,不可多虧
  5. 注意相關性 — 分散不是買更多幣,是確保它們不會同漲同跌

這是我們「量化交易實戰」系列的第四篇。如果你在建自己的交易系統,歡迎追蹤我們的 X 一起交流。