策略突然失靈的真正原因
我們的 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 說「往哪走」。
四種市場狀態
根據這四個指標的組合,我們定義了四種狀態:
| 狀態 | ADX | BB 寬 | 特徵 | 最佳策略 |
|---|---|---|---|---|
| TRENDING | > 25 | 放大 | 明確趨勢 | Pipeline 趨勢跟蹤 |
| RANGING | < 20 | 正常 | 橫盤整理 | 均值回歸 + BB Squeeze |
| HIGH_VOL | 20-25 | > 15% | 高波動不確定 | 降低倉位 |
| BREAKOUT | 上升中 | 收窄後放大 | 突破 | BB Squeeze |
策略自動切換
有了 Regime 偵測,我們建了一個策略路由器:
| |
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/12 | 10/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% 勝率的教訓、資金管理的隱藏引擎。