問題:為什麼你的策略突然開始虧錢?
一個在回測中表現良好的策略,上線後突然開始連續虧損。這不是 bug,而是市場環境變了。
我們的小幣量能突破策略(基於 CEX 成交量暴增 + 技術確認)在設計時只做多。邏輯很簡單:發現量能異常 → 技術面確認 → 做多進場。
回測結果不錯。但上線 Testnet 後,某些幣種開始反覆虧損:
| 幣種 | 交易數 | 勝率 | 累計盈虧 |
|---|---|---|---|
| 表現好的 A 幣 | 5 | 80% | +$27 |
| 表現差的 B 幣 | 3 | 0% | -$15 |
| 表現差的 C 幣 | 2 | 0% | -$10 |
同樣的策略邏輯,為什麼結果天差地別?
根因分析
深入分析後發現一個殘酷的事實:
做空的勝率 71.4%,做多只有 39.3%。
市場處於下跌趨勢。我們的 long-only 策略等於在逆風而行。
那些反覆虧損的幣(B 和 C)本身就在下跌通道中,量能暴增不是因為「要漲了」,而是因為恐慌性拋售。我們的策略把賣出信號當成了買入信號。
解法:三道自適應防線
第一道:績效冷卻期
最直覺的方法:如果一個幣連續虧了 N 次,暫時別碰它。
| |
實作上,每次掃描信號前,先查詢交易資料庫中最近 24 小時的已平倉記錄。按幣種分組,檢查最近 N 筆是否全部虧損。是的話,該幣種進入冷卻期。
這很像人類交易者的直覺:「這個幣最近老虧,先不碰。」差別在於系統能做到完全客觀,不會因為「覺得這次會反轉」而硬開倉。
第二道:EMA 趨勢確認
冷卻期是事後防護,等虧了才生效。我們需要事前過濾。
最簡單的趨勢判斷:價格是否在移動平均線之上?
| |
如果一個幣的價格持續在 EMA(20) 下方,代表短期趨勢向下,此時做多的勝率天然偏低。這個過濾器能在虧損發生之前就擋下大部分逆勢交易。
第三道:Market Regime 過濾
最上層的防護。不看個別幣,看整個市場。
我們用 BTC 的 4 小時 K 線偵測市場狀態:
- 上升趨勢 (ADX > 25 + EMA 向上):允許做多
- 下降趨勢 (ADX > 25 + EMA 向下):暫停所有做多
- 震盪 (ADX < 20):允許做多,但需通過個股確認
- 高波動:降級信心,縮小倉位
當整個市場處於下降趨勢時,做多小幣幾乎等於跟市場對賭。這時候最好的交易就是不交易。
三道防線的協同效果
| |
實測效果:20 個量能異常候選幣,最終只有 2 個通過全部檢查。過濾率 90%。
設計原則
- 從粗到細:先看大盤(Regime),再看個幣(冷卻期),最後看技術面(EMA)
- 從數據出發:冷卻期基於真實交易記錄,不是假設
- 可配置:冷卻天數、EMA 週期、ADX 閾值都是參數,可根據數據調整
- 寧可錯過,不可做錯:在不確定的環境中,不交易是一種交易策略
給量化交易者的建議
如果你的策略開始虧錢,在調參數之前先問三個問題:
- 市場環境變了嗎? — 你的策略是為趨勢設計的,但市場可能已經轉為震盪
- 是個別幣的問題還是系統性的? — 如果多個幣同時虧,通常是市場問題不是策略問題
- 你的策略有停損機制嗎? — 不只是單筆止損,而是「這個策略整體表現不好時該怎麼辦」
好的風控不是讓你永遠不虧錢。好的風控是讓你在應該停下來的時候停下來,在應該繼續的時候繼續。