← 所有文章

工程 · 2026.09.30 · 4 min · 更新於 2026.10.26

量化交易虧損時該不該改策略?把檢討流程寫成程式,13 種降風險改法都沒過關

把「持續虧損就重新評估」事先寫成觸發條件和判定順序,第一次自動觸發先抓到檢討程式自己的兩個 bug,13 種降風險改法也沒有一個通過事先訂好的標準。

閱讀設定
主題
字級
寬度

量化交易真的在虧的時候,最想做的事往往是馬上改參數。我事先把檢討流程寫成程式,第一次自動觸發,報告先後給了兩次錯的判定,兩次都是檢討程式自己的 bug。

修好之後的結論是正常波動,維持原策略。

報告點出的組合風險,我測了 13 種降風險的改法,沒有一個通過事先訂好的標準。

這篇是1000 USDT 加密貨幣趨勢策略模擬交易的副產品。「一直虧就重新評估」聽起來合理,實際上很難執行:虧多少、虧多久才算?

所以我在模擬交易開跑前,把觸發條件和判定順序事先寫死。報告要能分辨三種情況:實作有 bug、策略假設失效、只是正常波動。

觸發條件與報告內容

距權益峰值的回撤跨過 −20%、−35%、−50%、−65% 時各觸發一次,創新高之後重新計算。

距上次檢討滿 7 天也觸發一次,抓慢慢虧的情況。

背景的 watcher 偵測到觸發,先跑檢討腳本產出報告,再把 Claude Code 叫起來依報告判斷。

報告最重要的是實作一致性。它從 live 開帳那根 K 線的實際持倉和現金起跑回測重播,逐一比對每檔的持倉數量、每筆調倉、每個 4 小時收盤的權益。

持倉數量沒有價格雜訊,是最準的一致性檢查。

權益的容許誤差設成 max(2%, 1% × 槓桿),因為 live 用 mark price(交易所算未實現損益用的標記價格)、回測用成交價,兩者的差會被槓桿放大。

其他三段是損益歸因、歷史對照(起點槓桿 2.5x 以上時,往後同樣長度的報酬分布和最壞情況),以及近 30 到 365 天的回測,看優勢有沒有在衰退。

該不該改策略:判定順序

  1. 重播對不上,先修實作。
  2. 虧損比回測同條件的最壞情況還差,或回撤比全期最大回撤還深,代表策略假設可能失效。
  3. 近 180 天與 365 天的回測都轉弱,代表優勢在衰退。
  4. 以上都沒有,維持原策略。

實作排第一,是因為實作有 bug 的時候,後面每一項看的都是錯的數字。

流程圖:距權益峰值的回撤跨過 −20%、−35%、−50%、−65% 或距上次檢討滿 7 天就觸發,watcher 先跑檢討腳本,再叫 Claude Code 依報告判斷。判定由上往下:重播對不上先修實作;虧損比回測最壞情況還差或回撤比全期最大回撤還深,策略假設可能失效;近 180 天與 365 天回測都轉弱,優勢在衰退;以上都沒有就維持原策略。

第一次觸發,先抓到自己的 bug

開帳隔天,距峰值的回撤來到 −20.3%,watcher 自動觸發。

第一個 bug 在成交比對。程式把 live 的成交時間先減 90 秒,再歸到 4 小時的 K 線,16:01:02 那筆 HYPE 減碼就被歸到 12:00 那根。

同一筆交易被拆成兩筆「不一致」,判定成實作有問題。改成直接取成交時間所在的那根 K 線。

第二個在判定條件。規格是「比歷史最壞情況還差」,程式卻寫成「落在最差 1% 以內」,判定成策略失效。

短時間窗口的 1% 分位事件本來就會發生,兩者差很多。

規格要跟程式一致。

檢討工具本身也是要驗證的程式。這兩次錯判,一次說實作有問題,一次說策略失效,差點讓錯的結論主導決策。

修好之後,34 檔持倉、成交、權益全部對得上,整點權益差 0.01% 到 0.07%。回測同一段時間也跌了 9.7%。

槓桿在 2.5x 以上時,28 小時內跌 17% 以上的獨立事件,歷史上至少發生過 8 次。持倉籃子不加槓桿只跌約 4.6%,乘上約 3 倍就是這次的虧損。

結論是正常波動。

示意圖:第一次錯判是成交時間先減 90 秒再歸 K 線,16:01:02 的 HYPE 減碼被歸到 12:00 那根,同一筆交易被拆成兩筆不一致;第二次錯判是程式把「比歷史最壞還差」寫成「落在最差 1% 以內」,這次落在兩條線之間就被判成策略失效。修好之後判定為正常波動:34 檔持倉、成交、權益全對上,整點權益差 0.01% 到 0.07%,回測同期也跌 9.7%,槓桿 2.5x 以上時 28 小時內跌 17% 以上的事件歷史上至少 8 次。

13 種降風險改法都沒過

報告也指出一個結構性問題:34 檔高度相關的多單,崩跌時等於一筆大注。

現行配權只控制個別幣的波動,沒有控制整個組合。回測裡槓桿 2x 以上時,最差的 28 小時是 −48.3%。

針對這點測了 13 種改法,驗收標準在跑之前訂好:

  • 1 年內 10 倍的機率,不低於現行減 2 個百分點
  • Sharpe(夏普比率,每承擔一單位波動換到的報酬)不降
  • 最大回撤要改善
  • 2022 年後的倍數,不低於現行的 90%

沒有一個全部過關。

組合波動上限 120%、10 天窗口,最差 28 小時從 −48.3% 壓到 −19.7%,但 10 倍機率從 16.4% 掉到 13.2%,Sharpe 從 1.36 掉到 1.29。

平靜期加槓桿的雙向調整,10 倍機率升到 24% 以上,最大回撤卻惡化到 −87% 以上。

長條圖:13 種降風險改法的驗收標準是 10 倍機率不低於現行減 2 個百分點、Sharpe 不降、最大回撤要改善、2022 年後倍數不低於現行的 90%。組合波動上限 120%、10 天窗口把最差 28 小時從 −48.3% 壓到 −19.7%,但 10 倍機率從 16.4% 降到 13.2%,Sharpe 從 1.36 降到 1.29;平靜期加槓桿的雙向調整讓 10 倍機率升到 24% 以上,最大回撤卻惡化到 −87% 以上。

所以沒有改。組合波動上限那組已經測好,之後比較在意安全時可以直接換上。

這套機制上線兩天就隨專案結束,總共跑過兩次檢討。

驗收標準要先訂。只看 24% 的 10 倍機率,很容易就換上去了,代價是 −87% 的回撤。

降低尾端風險,目前找不到不用付代價的方法。能明顯削掉急殺的改法,都會等比例拿走報酬和 10 倍機率。

#風險管理#量化交易#回測

留言

載入留言中…

下一篇

投資

加密貨幣趨勢策略回測 240 倍,模擬交易兩天半虧 10.7%:標的池的倖存者偏差

用 1000 USDT 模擬交易挑戰 10 倍。回測 240 倍的趨勢策略上線兩天半虧 10.7%,原因是 35 檔標的是事後挑的,換成當時的成交額排名後,1 年內 10 倍只在 2020 年大牛市起點發生。