本節合併 Ch18「選對價格序列」、Ch19「測試與最適化」、Ch20「績效評估」。三章的共同主題:回測結果幾乎一定高估未來,能不能誠實面對這件事,決定系統交易者的成敗。
選擇正確的價格序列#
期貨合約壽命短,回測時必須處理「跨合約」的問題。常見四種選擇:
| 序列 | 優點 | 缺點 |
|---|---|---|
| 個別合約 | 真實 | 多數市場流動性不足 6 個月,長期方法做不到 |
| 近月期貨 | 反映歷史價位 | 換月跳空使損益完全失真 |
| 固定遠期(perpetual) | 無換月跳空 | 不對應任何真實合約,無法反映時間價值消逝 |
| 連續期貨(spread-adjusted) | 精準反映實際交易者損益 | 歷史價位失真,可能出現負值 |
系統測試必須使用連續期貨。任何說「用 perpetual 來避免失真」的,是「地球是平的」等級的錯誤。
唯一例外:純短線(look-back ≤ 5 ~ 6 個月)系統可考慮個別合約。
連續期貨不可用於百分比計算。需要百分比時,分子用連續期貨計算的價差,分母用近月價格。
實作要點:
- 換月日不必等到最後交易日;實物交割合約最後幾週常受技術扭曲,建議提前 N 天滾倉(如 20 天)。
- 滾倉日要與你實際操作習慣一致。
- 不同資料商可能用不同方法構建「continuous」序列,下單前必須與資料商確認方法、合約與滾倉日。
系統測試的基本概念#
- 系統:一組產生訊號的規則。
- 參數(parameter):可自由設定的值,會改變訊號時機。
- 參數組(parameter set):一組特定參數值的組合。
- 參數類型:
- 連續:例如百分比,需要設定步距。
- 離散:例如天數,整數值。
- 代碼:用編號代表分類規則的選項,本身無大小意義。
- 固定/非最適化:在大型系統中,部分參數固定不參與最適化,避免組合爆炸。
實務上,不必跑遍所有可能組合。先用稀疏網格(如 N = 10, 20, …, 100),找到表現好的區域再細化即可。
「精挑範例」的陷阱#
作者親身經歷:1983 年雜誌舉了「6 日均線交叉系統」用 1980 瑞士法郎的範例,年報酬 287%。他自己擴大測試後:
- 1976 至 1983 年,瑞士法郎只賺 $20,473,扣掉 1980 年只賺 $3,238。
- 25 個市場中 19 個虧損,13 個年虧 > $3,000/口,5 個年虧 > $6,000/口。
- 重新在 2005-2015 年期間測試 31 個市場,只有 9 個賺錢,整體十年累計虧 −$940,612。

Figure 19.1: Major Trending Phase as Unrepresentative Sample
教訓:不要從單一範例推論系統表現。要評估系統,必須在長時間、多市場、無事後諸葛的條件下測試。
真實假設的兩大類#
1. 交易成本#
- 手續費只是一部分;滑價(理論成交價 vs 實際成交價)才是大魔王。
- 假設「以收盤中價成交」並不真實:買單常成交在收盤上端、賣單常在下端。
- 兩種處理方式:
- 用「最差成交價」假設(例如買單以收盤上端成交)。
- 把每筆交易成本拉高到遠超實際手續費(例如每邊 $25/單)。後者更通用。
2. 漲跌停日#
- 自動化系統預設訊號當下成交,但漲跌停被鎖死時實際上根本進不去。
- 一根漲跌停可能直接吃掉幾千美元損益(書中以 2011 年 9 月玉米為例:漲跌停翌日跳空 41.25¢,每口 $2,062.5)。

Figure 19.2: Wide Gap between Signal Price and Actual Entry: Limit Days
最適化的選擇標準#
最適化要看四件事:
- 百分比報酬(不要用絕對金額)。
- 風險衡量(除了報酬,必須看波動/回撤)。
- 參數穩定性:找一塊「廣大的好區域」,不要找單一耀眼點。
- 時間穩定性:報酬不能集中在少數年份。
同一系統內不同參數組的優化,多用簡單的報酬/風險比(Sharpe、Gain-to-Pain)就夠;跨系統比較才需要顯式檢查多重指標。
最適化的真相:被嚴重高估#
作者跑了 9 個 N 值(20, 30, …, 100)的突破系統,比較「過去 8 年最佳參數」與「後續 2 年的排名」,結果:
- 各市場逐一最適化幾乎沒有任何預測力。
- 跨投資組合最適化僅在「找出過去最差的參數會繼續是未來最差」時有效——而這是因為 N = 20 在所有期間都是次優極端值,與排名本身無關。
- 不管前期最佳的參數有多耀眼,幾乎無法在後續期間維持最佳。
五個關鍵結論:
- 任何系統都能透過最適化做出漂亮的歷史績效;如果做不到,反向操作就是印鈔機。
- 最適化永遠會高估系統未來表現,通常高估非常多。永遠不要用最適化結果來評估系統。
- 多數系統最適化對未來幾乎沒幫助。
- 最適化最多用來「劃界線」——排除明顯次優的參數區間;微調最適化是浪費時間。
- 複雜的最適化程序與簡單的一樣有用(前提是真有用)。
怎麼做才算「測試」而非「擬合」#
作者推薦兩種做法:
盲樣模擬(Blind Simulation)#
用較早的資料最適化,用後續資料測試所選參數。模擬期與最適化期絕對不可重疊。
全參數平均#
事先列好所有要測的參數組,跑完之後取所有參數組的平均作為系統未來表現的代理。等同「擲飛鏢選參數」的期望值。
廣告中的「simulated results」常常其實是「optimized results」的代名詞。看到這個詞要立刻警覺,它的可信度應與你想投入的金額成正比——零。
模擬結果被扭曲的七種方式#
- 精挑範例:25 市場 × 15 年 × 100 參數 = 37,500 組結果,找一組漂亮的不難。
- 廚房水槽法:事後加規則去處理過去的虧損段。
- 忽略風險:以「保證金的倍數」算報酬,把風險藏起來。
- 跳過虧損訊號:圖上只標賺錢的訊號。
- 無限制最適化:測試的參數組越多,事後最佳化的「歷史報酬」越驚人。
- 不真實的交易成本:忽略滑價。
- 直接造假:偽造紀錄。
多市場系統測試與負面結果#
- 好系統理應在大多數活躍市場(85% 以上)獲利。
- 不同市場波動度差異大;事先決定資金配置與口數,再進行測試。
- 系統在某些市場表現特別差時,不要急著放棄——分析原因常能找到改進點。
- 但若系統在多數市場與多數參數都表現糟糕到驚人,反向操作可能就是好系統——只是要注意,這時的虧損若主要來自手續費與滑價,反向後依然虧。
建構與測試系統的十步驟#
- 取得回測所需資料(連續期貨)。
- 定義系統概念。
- 寫出規則程式。
- 選一小組市場與少數年份。
- 對該子集跑訊號。
- 檢查訊號與預期是否一致——通常會發現程式錯誤或規則漏洞。
- 修正後重跑、比對訊號變化,確保沒有副作用。
- 在完整資料庫與全部參數組上跑(先確定交易組合)。
- 以全參數平均或盲樣模擬評估表現,不要看最佳參數。
- 與一個基準系統(如均線交叉、簡單突破)的同期表現比較。
多數系統創意會在第 10 步陣亡。設計出真正有用的系統,比多數人想的難得多。
系統交易的 16 條觀察#
挑出最重要的幾條:
- 順勢系統的「定義趨勢」方法可能是最不重要的部分;修正規則(過濾、確認、加碼、停損)才是關鍵。
- 簡單為德。
- 跨市場的真正理由,除了風險分散,還有「避免錯過任何一段大行情」——大行情常是整年績效的關鍵。
- 同樣資金充足,多系統 + 多參數的組合勝過單一最適化系統。
- 最適化的價值被高估。
- 別用最適化結果評估系統。
- 真正成功系統的共同特徵:少數市場有大幅獲利年、極少出現大幅虧損年——核心仍是「讓利潤奔跑、嚴控虧損」這句老話。
- 不要避開高波動市場,最賺錢的常常就是最波動的。
- 系統表現有時更多反映「市場狀態」而非系統本身——比較時要設基準。

Figure 19.3: Trading Results Reflect Market, Not System
如何評估歷史績效#
「報酬無法單獨衡量好壞,必須與風險比。」——作者類比:兩家網站都報旅館 300 與 250,沒寫貨幣單位就無法比較。

Figure 20.1: Two Paths to Return
風險調整後報酬指標#
作者整理了七種主流指標:
| 指標 | 計算 | 特性 |
|---|---|---|
| Sharpe Ratio | (平均超額報酬) / 標準差 | 最常用;懲罰上行波動;負值無意義 |
| Sortino Ratio | (複利超額報酬) / 下行偏差 | 只懲罰下行;用複利報酬;不可與 Sharpe 直接比較 |
| SDR Sharpe Ratio | 同 Sortino,但下行偏差乘 √2 | 可與 Sharpe 直接比較;建議取代 Sortino |
| Gain-to-Pain Ratio (GPR) | Σ 正報酬 / |Σ 負報酬| | 損失按比例懲罰;不對「集中或分散」差別待遇 |
| Tail Ratio | 上 p% 平均 / |下 p% 平均| | 凸顯極端事件的方向性偏斜 |
| MAR / Calmar Ratio | 年複利報酬 / 最大回撤 | 直觀但只看一個事件,統計顯著性不足;MAR 對歷史較長的人不利 |
| Return Retracement Ratio (RRR) | 報酬 / 平均最大回撤 | 結合「下行」與「集中度」,又不被單一事件決定 |
負的 Sharpe 完全沒意義——當分子是負值時,標準差越大反而 Sharpe 越「好」,會給出與直覺完全相反的結論。

Figure 20.3: Which Manager Is Riskier?
作者個人建議:以 SDR Sharpe 為主,加上 Tail Ratio 看極端事件,再用 RRR 衡量回撤特性。MAR/Calmar 可作為輔助。
視覺化工具:NAV 圖#
NAV(Net Asset Value)圖把 $1,000 的複利成長視覺化:
- 單一最有資訊量的圖表——同時顯示報酬與風險(回撤幅度與頻率一目了然)。
- 注意視覺錯覺:固定縱軸的長期 NAV 圖會讓「相同百分比波動」在後段看起來變大。用 log 縱軸比較公平。

Figure 20.4: How Has Performance Changed over Time?
