背景
我們的交易系統已經有三個策略在跑 Paper Trading:Pipeline(趨勢跟蹤)、BB Squeeze(布林帶突破)、MACD Divergence(背離反轉)。
這三個策略有個共同弱點:當市場進入震盪(RANGING),信號幾乎為零。
我們的 ADX 指標顯示六大幣種全部 ADX < 20,也就是沒有明顯趨勢。趨勢策略在這種市場裡只能閒著。
所以我開發了第四個策略:均值回歸(Mean Reversion)。
均值回歸的邏輯
概念很簡單:
- RSI 低於 35(超賣) → 等 RSI 回升 → 做多
- RSI 高於 65(超買) → 等 RSI 回落 → 做空
- 止損:ATR 的 1.5 倍
- 止盈:BB 中線(均線回歸目標)
在震盪市場裡,價格在一個區間來回,均值回歸理論上應該是完美的策略。
回測結果 — 太完美了
用 180 天的歷史數據跑完 6 個幣種 × 2 個方向 = 12 個組合:
| 組合 | 勝率 | Profit Factor | 交易筆數 |
|---|---|---|---|
| SOL LONG | 100% | ∞ | 3 |
| XRP LONG | 100% | ∞ | 3 |
| XRP SHORT | 85.7% | 7.93 | 7 |
| DOGE LONG | 83.3% | 5.19 | 6 |
| DOGE SHORT | 80% | 3.5 | 5 |
| ETH SHORT | 75% | 2.3 | 4 |
| BNB SHORT | 75% | 2.0 | 4 |
| BTC SHORT | 71.4% | 1.8 | 7 |
8 個組合的勝率都在 70% 以上。3 個甚至 100% 勝率。
如果當時直接上線,我們會覺得這策略無敵。
疑點:交易筆數
但有個數字一直讓我不安:交易筆數。
100% 勝率的 SOL LONG 和 XRP LONG,各只有 3 筆交易。
3 筆交易的 100% 勝率,統計意義幾乎為零。擲硬幣三次全正面的機率是 12.5%,一點都不稀奇。
Out-of-Sample 驗證
我對每個組合做了 OOS(Out-of-Sample)驗證。方法是:
- 把 180 天數據切成 前 120 天(In-Sample) 和 後 60 天(Out-of-Sample)
- 用前 120 天的數據訓練參數
- 用後 60 天的數據測試——這段數據模型從未見過
結果:
| 組合 | IS 勝率 | OOS 勝率 | 落差 |
|---|---|---|---|
| SOL LONG | 100% | 75% | -25% |
| XRP LONG | 100% | 0% | -100% |
| ETH SHORT | 100% | 25% | -75% |
| DOGE LONG | 83% | 50% | -33% |
| BTC SHORT | 80% | 40% | -40% |
| BTC LONG | 67% | 33% | -34% |
| BNB LONG | 67% | 50% | -17% |
XRP LONG:IS 100% → OOS 0%。用回測數據看,完美無缺;用新數據驗證,全部虧損。
ETH SHORT:IS 100% → OOS 25%。回測裡的四戰四勝,面對新數據只贏了一次。
只有 2 個組合通過
在 12 個組合中,只有 2 個的 OOS 表現維持穩定:
- SOL LONG:IS 78% → OOS 75%(差距僅 3%)
- DOGE SHORT:IS 80% → OOS 76%(差距僅 4%)
最終我們只保留這 2 個組合進入 Paper Trading,其他 10 個全部剔除。
為什麼會過擬合?
根本原因是樣本量太小:
- 均值回歸策略需要極端的 RSI 值才觸發
- 在 180 天裡,每個組合只有 3-7 筆交易
- 3 筆交易的 100% 勝率 ≠ 策略有效
- 7 筆交易的 85% 勝率也不足以下結論
統計學 101:要對一個二元結果(贏/輸)有合理信心,至少需要 20-30 個樣本。我們的大多數組合只有個位數。
Z-score 驗證
我們用 Z-score 量化策略表現是否顯著優於隨機:
| |
- Z > 1.96 → 95% 信心優於隨機
- Z > 2.58 → 99% 信心
我們的主力策略 Pipeline(414 筆交易、72% 勝率):
| |
Z = 8.94,遠超 2.58。這個策略確實優於隨機。
而 MR 的 SOL LONG(3 筆、100%):
| |
Z = 1.73,連 95% 信心都沒達到。統計學告訴你:這可能只是運氣。
我們現在的做法
經歷這次之後,新策略上線前必須通過三道驗證:
- 最低交易筆數:回測至少 20 筆以上
- OOS 驗證:IS 和 OOS 勝率差距不超過 10%
- Z-score 檢驗:Z > 1.96
不通過 = 不上線。沒有例外。
目前四個策略的真實水準:
| 策略 | 交易筆數 | 勝率 | Z-score | 狀態 |
|---|---|---|---|---|
| Pipeline | 414 | 72% | 8.94 | ✅ 主力 |
| BB Squeeze | 82 | 56% | 1.09 | ⚠️ 輔助 |
| MACD Div | 45 | 33% | -2.28 | ⚠️ 僅特定組合 |
| Mean Reversion | 53 | 25% | -3.64 | ❌ 僅 2 組合 |
Pipeline 是唯一經過大量驗證的策略。其他三個都需要更多數據來建立信心。
結論
如果你的回測顯示 100% 勝率,先假設它是假的,直到 OOS 驗證證明它是真的。
小樣本的回測結果是交易系統開發中最危險的陷阱。它給你一個錯覺:這個策略完美無缺。但完美的策略不存在,完美的回測通常只是過擬合。
回測是用來淘汰壞策略的工具,不是用來證明好策略的工具。 能通過 OOS 驗證的策略不一定賺錢,但通不過的策略一定會在實戰中讓你失望。