策略突然失靈的真正原因

我們的 Pipeline 趨勢跟蹤策略回測勝率超過 70%,Paper Trading 初期也很順利。但到了二月底,連續一週沒有任何信號。

不是 Bug。不是數據問題。是市場從趨勢(Trending)進入了震盪(Ranging)

趨勢策略靠的是「價格持續往一個方向走」。當市場橫盤整理,這個前提不存在,策略自然沒有信號,硬做只會虧。

這就是 Market Regime 的核心概念:市場不是永遠用同一種方式運動,你的策略也不該永遠用同一種方式交易。

我們怎麼偵測市場狀態

我們用四個指標組合判斷市場處於什麼狀態:

1. ADX(Average Directional Index)— 趨勢強度

ADX 是最核心的指標。它不告訴你方向,只告訴你趨勢有多強:

  • ADX < 20:震盪市場,沒有明顯趨勢
  • ADX 20-25:過渡期,趨勢正在形成(或消失)
  • ADX > 25:趨勢市場,價格有明確方向

我們設定 ADX 20 為門檻。低於 20,趨勢策略暫停。

2. BB 寬度(Bollinger Band Width)— 波動性

布林帶寬度反映市場波動性:

  • BB 寬度收窄(< 5%):市場在蓄力,可能要突破
  • BB 寬度正常(5-15%):一般波動
  • BB 寬度放大(> 15%):高波動,大行情或恐慌

BB 寬度收窄 + ADX 上升 = 突破信號的前兆。

3. ATR(Average True Range)— 絕對波動

ATR 用來衡量絕對波動幅度,主要用在計算止損距離和倉位大小。低 ATR 環境下,止損要收窄;高 ATR 環境下,止損要放寬。

4. EMA 斜率 — 方向確認

50 週期 EMA 的斜率確認趨勢方向:上升 = 多頭趨勢,下降 = 空頭趨勢。這個和 ADX 配合使用:ADX 說「有趨勢」,EMA 說「往哪走」。

四種市場狀態

根據這四個指標的組合,我們定義了四種狀態:

狀態ADXBB 寬特徵最佳策略
TRENDING> 25放大明確趨勢Pipeline 趨勢跟蹤
RANGING< 20正常橫盤整理均值回歸 + BB Squeeze
HIGH_VOL20-25> 15%高波動不確定降低倉位
BREAKOUT上升中收窄後放大突破BB Squeeze

策略自動切換

有了 Regime 偵測,我們建了一個策略路由器:

1
市場狀態 → 路由器 → 啟用對應策略

TRENDING 時:

  • Pipeline(趨勢跟蹤) ✅
  • BB Squeeze(突破) ✅
  • MACD Divergence(背離) ✅
  • 均值回歸 ❌ 暫停

RANGING 時:

  • Pipeline ❌ 暫停
  • BB Squeeze ✅
  • MACD Divergence ✅
  • 均值回歸 ✅

這樣做的好處:策略不會在錯誤的市場環境下執行。Pipeline 不會在震盪市場硬做多空,均值回歸不會在趨勢市場逆勢操作。

轉換預測:提前知道市場要變了

除了即時偵測,我們還加了 ADX 趨勢分析。追蹤 48 小時的 ADX 變化率,可以預測市場狀態轉換:

  • ADX 從 15 持續上升到 18、19:震盪要結束了,趨勢策略準備啟動
  • ADX 從 28 開始下降:趨勢在減弱,準備切換到震盪策略

我們最近的實際觀察:SOL 的 ADX 從 14 在 48 小時內上升到 20.5,成功預測了從 RANGING 到 TRENDING 的轉換。系統在 ADX 接近 20 時就開始準備,轉換發生後立刻啟用 Pipeline。

實戰數據

我們掃描了六大幣種(BTC、ETH、BNB、XRP、SOL、DOGE)的 Regime 狀態。以 2026 年 3 月初的數據為例:

全市場震盪期(2 月底 - 3 月初):

  • 6 個幣種 ADX 全部 < 20
  • Pipeline 信號:0 個(正確行為 — 不在錯誤的環境交易)
  • 均值回歸 + BB Squeeze 產生了信號,填補了空白

SOL/DOGE 率先轉趨勢(3 月 5 日):

  • SOL ADX 20.5,DOGE ADX 20.4
  • Pipeline LONG 信號接近度 85%
  • 其他幣種也在上升中(BNB 預估 52 小時後突破)

覆蓋率的變化

加入 Regime 偵測和策略切換前後的對比:

指標之前之後
震盪市場可用策略只有 Pipeline(無信號)MR + BB + MACD
幣種×方向覆蓋率2/1210/12
震盪期信號頻率約 0/天2-4/天

建置 Regime 偵測的建議

如果你想在自己的系統加入 Regime 偵測:

1. 從 ADX 開始就好

不需要一次用四個指標。ADX 單獨就能區分趨勢和震盪。先做到「ADX < 20 時不執行趨勢策略」就是巨大的進步。

2. 回測時考慮 Regime

很多人回測只看整體勝率。但一個策略可能在趨勢市場 90% 勝率、震盪市場 30% 勝率,混合起來看到 60% 就以為還行。分 Regime 統計,才能發現真正的問題。

3. 策略切換要有冷卻期

不要在 ADX 剛好等於 20 的時候頻繁切換。我們用了 ADX 持續高於/低於門檻 2 根 K 線的確認條件,避免假信號導致策略反覆開關。

4. 不要完全依賴自動切換

Regime 偵測是輔助工具,不是絕對真理。特殊事件(重大新聞、政策變動)可以瞬間改變市場狀態,ADX 需要時間反應。保持人工監控仍然很重要。

下一步

  • 開發更精細的 Regime 子分類(弱趨勢、強趨勢、震盪收窄、震盪放大)
  • 用機器學習預測 Regime 轉換時機
  • 根據不同 Regime 動態調整倉位大小(趨勢市場加大、震盪市場減小)
  • 歷史 Regime 數據回填,驗證策略在不同市場環境下的真實表現

這篇是我們「量化交易實戰系列」的第三篇。前兩篇:回測 100% 勝率的教訓資金管理的隱藏引擎