Northmark
forex-strategy
6 分鐘閱讀

我的交易系統勝率73.5%卻虧損:16年回測審計

對一個實盤外匯系統的16年審計:勝率73.5%,虧損4,670點。點差幾何缺陷、盈虧平衡勝率陷阱,以及證明參數曲面純屬噪音的秩相關檢驗。

已核實事實 · 最後驗證 2026年7月20日
Need specific ticker symbols? Let me know!

Also, check out my website: https://volatilitystreet.com/
Photo by Tyler Prahm on Unsplash

我花費了幾天時間審計一個我建構的即時外匯(FX)系統,該系統擁有超過 16 年的歷史數據。結果呈現出我未曾預期的負面狀況,而發現此問題的診斷方法具有足夠的通用性,值得撰寫成文——它適用於任何參數搜尋過程,不僅限於交易領域。

下方的每個數字均來自實際運行的測量結果,絕非示意數據。

設定

17 種配置,以 4 小時 K 線作為進場依據,於 1 小時 K 線模擬出場,回測期間為 2010-05-28 至 2026-07-08,共計 7,641 筆交易。關鍵在於,我將未經修改的生產函數餵入歷史 CSV 檔案,而非即時數據源,因此所測試的程式路徑即為實際上線運行的程式路徑。

錯誤 1:模擬將成本計入了錯誤的位置

平台的 OHLC K 線使用的是 BID(賣出)價格。回測在 K 線收盤時建立進場單,將止盈和停損設定為收盤價 ± n·ATR,並針對 BID 的高點和低點檢查是否觸發,最後從最終損益中減去點差。

在實盤交易中,做多單是以 ASK(買入)價格成交,掛單區間相對於該 ASK 價格設定,而平倉則以 BID 價格執行。因此,實盤需要價格多走一個點差的距離才能到達目標價位,並且會提前一個點差觸及停損。

結果中扣除成本,不等於將成本計入觸發機制。前者只改變你的獲利金額;後者則改變哪些交易能夠獲勝

經測量:勝率相差 2–5 個百分點,且總是對你不利。

這一原則廣泛適用於交易以外的領域:如果你的模擬將成本作為事後調整,而非建模產生這些成本的機制,那麼你的事件計數就是錯誤的,而不僅僅是總數有誤。

錯誤 2:勝率是設計選擇,而非證據

目標設定為 0.5–0.8×ATR,停損則為 1.5–2.0×ATR。這意味著風險報酬比僅為 0.25–0.4,透過算術即可確定損益兩平的勝率:

損益兩平勝率 = SL / (TP + SL) = 75–82%

在樣本外測試中,僅使用向前推進(walk-forward)的測試區間:共 4,947 筆交易,勝率 73.5%,虧損 -4,669.9 pips,平均每筆交易虧損 -0.944 pips。

勝率高達 73.5% 卻仍然虧損,這並非矛盾。小目標本來就容易被觸及,這就是小目標的特性。這種高勝率是以接受「虧損金額為獲利金額四倍」的代價換來的——它從來就不是交易優勢的證據。

值得借鑑的診斷方法

在重新優化任何參數之前,我先問了一個問題:參數曲面是否根本就可學習

針對每個走步向前(walk-forward)折疊:在訓練視窗和測試視窗上評估整個參數網格,然後計算兩者之間的 Spearman 等級相關係數。

if rho > 0  -> 訓練等級可預測測試等級;選擇有意義
if rho ~ 0  -> 曲面純屬噪音;沒有任何選擇規則能起作用

第二行才是關鍵所在。它區分了「我的優化器很爛」與「這裡根本無物可尋」這兩種情況——從外部看來它們一模一樣,卻需要截然相反的應對策略。

119 個折疊的結果如下:

  • 中位數 rho:-0.024
  • 平均數 rho:-0.030,95% 信賴區間 [-0.090, +0.030] — 包含零
  • rho > 0 的折疊佔比:47.9% — 等同擲硬幣

資訊量為零。與此一致的是,採用平台平滑處理的走步向前優化,其樣本外結果比我從未動過的參數更差,且在 17 種設定中有 11 種選到了網格邊界——這正是優化器無從著力的典型跡象。

接著我檢查該效應是否存在於任何地方

38 種交易標的、非重疊持有期、波動率加權,並按資產類別彙總,因此 1,140 次測試濃縮為 6 次,並區分前半段與後半段:

資產類別Sharpe @0bp損益兩平成本前半段後半段穩定
FX major+0.083bp+0.06-0.09no
FX cross+0.021bp-0.05-0.06no
Index+0.075bp+0.04+0.02yes
Metal+0.1212bp+0.13+0.03yes
Energy+0.1323bp+0.15-0.02no
Crypto+0.42100bp+0.54+0.15yes

有兩點我原本完全沒想到:

**損益兩平的交易成本比 Sharpe 比率更具決策參考價值。**FX major 的損益兩平點約為 3bp,而 FX cross 則約為 1bp——兩者均低於實際點差。因此,「此處是否存在優勢」這個問題,在您撰寫任何策略程式碼之前就已有了答案。

**顯著的結果其實是假象。**能源在完整樣本中顯示 t = 3.73,但在後半段表現持平至負向。若未進行分段分析,它看起來會是表中最強勁的发现。

加密貨幣是唯一倖存的類別,但其效應大幅衰減(從 0.54 降至 0.15)。在現實的 CFD 點差下,後半段已轉為負值。這屬於歷史效應,而非當前存在的效應。

實際教訓

在建立策略之前,先建立證偽機制。

一長串設定看起來之所以像「已驗證」,是因為流程中沒有任何組件負責說出這裡一無所有。每個部分都被設計用來尋找某些東西,因此它每次都確實找到了某些東西。

上述的等級相關性測試僅花費了一個下午,卻否定了數個月的參數研究工作——包括我最有信心的一個潛在方向。這正是該測試發揮其作用之時,也是我長期以來在研究流程中所加入的最具成本效益的保險措施。


本文為研究文件,並非投資建議。過往績效並不預示未來結果。交易差價合約(CFD)涉及高額虧損風險。


照片由 Tyler Prahm 拍攝,來源:Unsplash


Photo by Tyler Prahm on Unsplash

標籤
#回測過度擬合#前進式驗證#盈虧平衡勝率#時間序列動量#交易系統審計

相關文章