以下每一條都用同一個結構處理:症狀 → 機制 → 怎麼診斷 → 具體改法。診斷步驟很重要,因為同一個症狀可能來自不同機制,改錯地方會讓事情更糟。

錯誤 1|一直被鋸齒行情巴來巴去

機制。價格在訊號門檻附近來回穿越,每次穿越都觸發一次全額翻轉。用二元 sign 訊號時最嚴重:r(t−12,t) 從 +0.1% 變成 −0.1%,部位就從 +100% 翻到 −100%,付兩次全額成本,而市場其實沒動。

診斷。分別統計「持有 5 天以內就出場的交易」占比與它們的合計損益。若這類交易占總交易數 40% 以上、且貢獻大部分虧損,問題確定是訊號抖動而非策略本身。

改法(按投報率排序)

  1. 加無交易帶:目標部位與現有部位差距小於 20% 就不動作。通常砍掉 40–60% 的交易量,績效損失在雜訊內(見 實戰執行)。
  2. 改用連續訊號並截斷clip(z, ±2)/2 取代 sign,讓零點附近的部位平滑過渡而非瞬間翻轉(見 訊號設計)。
  3. 多速度混合:1/3/12 個月三個訊號平均,三者同時抖動的機率遠低於單一訊號。
  4. 加方向濾網:例如只在 50 日 EMA 與 100 日 EMA 同向時才允許進場,把「趨勢是否存在」與「何時進場」分開判斷。
  5. 拉長回看期:若上述都做了還是嚴重,代表你選的速度對該市場太快。

不要做的事:加「震盪指標過濾」(RSI、布林通道之類)。那等於在系統裡塞進一個反向策略,回測可能改善,但那是新增的參數與新增的過擬合機會。

錯誤 2|大賺一筆又全部吐回去

機制。這是趨勢策略的設計特徵,不是 bug:追蹤止損必然要讓出從高點回落的那一段(k × ATR),而 ATR 在大行情後通常已經放大,讓出的絕對金額因此看起來很可觀。

診斷。先算清楚兩件事:(a) 你的平均回吐幅度是否確實等於 k × ATR(若遠大於,代表你的停損沒有正確執行或有跳空);(b) 把 k 從 3 改成 1.5 重跑回測,看期望值 E = p·W − (1−p)·L 而不是看單筆感受。

改法。多數情況下,正確答案是「接受它」。若確實要改善,只有兩個有依據的方向:

  • 獲利分段減碼:達到 +N × ATR 時減掉 1/3 部位,其餘用原本的 k 續抱。這降低回吐波動但也降低 W,需實測淨效果。
  • 追蹤止損隨獲利收斂:例如 k 從 3 隨已實現獲利線性降到 2。同樣要用期望值驗證,不能憑感覺。

不要做的事:把 k 砍到 1–1.5。這是最常見、也最致命的「修正」——它會把 W 從 3R 壓到 1.5R,同一個系統立刻從 +0.40R 變成 −0.125R(見 期望值算式)。感覺變好,帳戶變差。

錯誤 3|參數在歷史上很漂亮,上線就失效

機制。你在同一份資料上試了幾十組參數,回報的是最大值而不是期望值。最大值本身就是被雜訊推高的。

診斷。回答三個問題:我總共試了幾組?相鄰參數的績效差多少?這組參數在幾個市場上為正?若答案是「試了很多組、相鄰差很多、只有 3 個市場撐起績效」,那個回測沒有資訊量。

改法

  1. 選參數平原的中心,不選尖峰。
  2. 不選單一參數,改用參數集成(多個回看期取平均),犧牲一點回測績效換取穩健。
  3. 走動式驗證:每 N 年只用當時可得資料重選參數,模擬真實決策流程。
  4. 記錄試驗次數並用 deflated Sharpe 校正。
  5. 把回測 Sharpe 打對折當作上線後的期待值。

細節見 回測與驗證

錯誤 4|跳過看起來很爛的訊號

機制。全年獲利集中在少數幾筆。跳過訊號的判斷依據(最近一直賠、突破看起來假、總經不對)與「這筆是否為大贏家」幾乎無相關。

診斷。把你所有 override 記錄下來,計算「若全部照系統執行」的假設績效。多數人會發現 override 的淨貢獻為負。

改法。自動化下單,把裁量權從執行環節移除;想改的念頭寫進日誌但不執行,每季統一檢討。若真的無法忍受某個市場,正確做法是在事前把它從市場清單移除並記錄理由,而不是臨時跳過訊號。

錯誤 5|等金額配置,而不是等風險配置

機制。天然氣年化波動 60%、短期利率期貨 2%,等金額配置時前者貢獻的風險是後者的 30 倍。你以為分散了 20 個市場,實際上是押注 2 個。

診斷。算每個部位的風險貢獻 (E_i/淨值) × σ_i,看最大的三個占總風險多少。若超過 60%,配置方式錯了。

改法。倒數波動率權重 + 群組上限(見 部位大小標的與多元化)。

錯誤 6|相關市場重複下注

機制。WTI、布蘭特、汽油、熱燃油看起來是 4 個市場,相關性 0.85 以上時實際上是 1 個賭注乘以 4 的部位。

診斷。計算群組內的平均相關係數與「有效市場數」N_eff = N / (1 + (N−1)ρ̄)。4 個市場、ρ̄ = 0.85N_eff = 4/(1+2.55) = 1.13——你以為的 4 個市場,實際只有 1.1 個。

改法。設群組風險上限(總風險的 30–40%),或每個群組只保留流動性最好的 1–2 個市場。

錯誤 7|用當期或全樣本波動率縮放部位

機制。前視偏誤。用全樣本波動率,等於在高波動期間「事後」降槓桿,回測回撤會漂亮到不真實。

診斷。檢查程式碼裡波動率計算的索引範圍是否含 t 當期。也可以做一個檢驗:把波動率估計刻意延遲 5 天,若績效大幅惡化,代表原本吃到了未來資訊。

改法。所有估計量一律用 t−1 及之前的資料。

錯誤 8|回撤時加碼「攤平」

機制。趨勢策略在回撤時加碼,等於在訊號說「錯了」的時候放大錯誤部位。這是把正偏態策略改造成負偏態賭局,數學性質完全改變(對照 網格的負 gamma —— 那是另一種策略,有它自己的風控框架,不能混用)。

診斷。任何「虧損時增加部位」的規則都屬此類,包括 martingale 式加碼與「跌深就多買一點」。

改法。加碼只能發生在獲利方向(海龜式的每 0.5N 加一單位),且總風險受上限約束。回撤時的正確動作是降槓桿(見 風險上限)。

錯誤 9|用回測最大回撤當風險預算

機制。回測的最大回撤只是所有可能路徑中的一個抽樣。單筆損益重排的蒙地卡羅顯示,真實可能的回撤通常比回測顯示的深 30–50%。

診斷。做交易順序重排 10,000 次,取回撤分布的 95 百分位。

改法。用那個 95 百分位(或簡化為回測 max DD × 1.5)當作規劃基準,並據此設定波動率目標。

錯誤 10|在高成本市場跑快訊號

機制。換手率大致與回看期長度的平方根成反比。把回看期從 12 個月縮到 1 個月,換手上升 3 倍以上;在單邊成本 10 bp 的冷門市場上,年化成本拖累可以輕易超過 5%,而策略毛期待報酬只有 5–8%。

診斷。算 年換手率 × 單邊成本 × 2,與策略毛期待報酬相比。超過 30% 就有問題,超過 50% 幾乎必然無利可圖。

改法速度必須配上流動性:快訊號只用在最流動的市場(主要股指期、公債期、主要匯率),冷門市場一律用慢訊號。

錯誤 11|忽略換月與抵押品收益

機制。兩個相反方向的隱藏項。換月一年 4–12 次、每次都有成本;抵押現金的利息則是正貢獻。忽略前者高估績效,忽略後者則會讓你誤判不同年代的回測可比性(見 抵押品收益消失)。

改法。回測中明確模擬換月日與成本,並把現金利率作為獨立項目分離出來報告。任何跨越高利率與零利率年代的回測,都必須分離抵押品收益後再比較。

錯誤 12|三年不賺錢就判定策略死亡

機制。統計檢定力不足。要區分 Sharpe 0.5 與 0 需約 17–20 年資料;3 年的資訊量接近於零。

改法。停用準則掛在流程指標(實現波動率、換手率、成本、對帳一致性)而非績效指標;績效類準則的門檻放到「回撤超過回測最大值的 1.5 倍」這種極寬的水準(見 心理面)。


最後一篇整理哪些說法有紮實實證、哪些是參數相依或仍有爭議 → 主張 vs 可佐證