交易策略的參數穩定度:高原還是運氣尖峰?
只有在相鄰的一大片參數表現相近時,策略才值得信賴。以相同的成本把每個參數掃過合理範圍並畫出結果,只保留寬廣的高原,所選參數落在高原中央,並以掃描前就寫好的規則判斷。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
為什麼單一最佳參數值得懷疑?
交易中的參數穩定度,是指策略的參數稍微移動時,結果仍然相近。以相同的成本把每個參數掃過合理範圍,畫出結果,只信任一大片相近數值構成的高原,不信任單獨一根高尖峰;所選參數要放在高原中央。
參數是交易規則裡可以調整的數字,例如移動平均的回看期、震盪指標的進場水位,或以跳動點計的停損距離。回測結果永遠混合著兩種東西:可能重複的規律,以及剛好與某段歷史對上的雜訊。當 14 根的回看期表現好,12 與 16 卻都表現差,14 的結果多半屬於後者。價格裡真正的規律,不會因為窗口拉長兩根 K 棒就消失。只有雜訊才會這麼精確。
想像站在狹窄的山峰上,和站在寬闊平坦的高臺上。在山峰上,任何方向走一步都是墜落;在高臺上,可以四處走動,高度不變。實際行情不會與過去的某一段完全相同:波動率變了,交易時段變了,一般波動的幅度也變了。這種漂移就是那一步。站在尖峰上的策略踏出這一步就墜落;站在高原上的策略踏出同一步,幾乎無感。
Bailey、Borwein、López de Prado 與 Zhu(2014)說明了這個問題的一般形式:在同一段歷史上試的參數越多,其中最好的那個被運氣墊高得越多,單一最佳點的結果對未來的說明力也越低。Pardo(2008)描述了實務上的解法:觀察整個參數範圍上的結果形狀,而不是只看最高點。
每個參數該掃多寬?
把每個參數掃過所有仍有交易意義的範圍,步距小到足以顯示形狀,並讓每次執行的其他參數完全相同。參數掃描回測是一連串只差一個參數的回測,這個參數依序走過選定的數值範圍。以回看期 14 根為例,範圍大約取 6 到 30、步距 2,共 13 次執行,就能清楚顯示輪廓。只試 12、14 與 16 的掃描,分不出高原與尖峰,因為看不到好的區域在哪裡結束。
- 先固定成本、交易時段與成交方式。手續費、滑價、交易時段與下一根 K 棒成交,每次執行都相同。若某個值是以不同滑價執行的,這次掃描量到的是滑價,不是參數。
- 為每個參數選定合理範圍。下限是規則失去意義之處(2 根 K 棒的 RSI 多半只是雜訊)。上限是交易筆數少到無法判讀之處。
- 每個值都用相同的設定執行。兩次執行之間不改動任何其他東西,連起始日期也不改。
- 記錄每個值扣除成本後的平均每筆損益與交易筆數。只有九筆交易的值,無法與有九十筆的值比較,所以筆數必須放在結果旁邊。
- 畫出輪廓,並對照事先寫好的規則來讀。這條規則是後文高原大小一節的主題。
| 參數類型 | 合理的掃描範圍 | 步距 | 為何取這個範圍 |
|---|---|---|---|
| 指標的回看期(K 棒數) | 6 到 30 | 2 | 低於 6,指標只是雜訊;高於 30,在多數 K 棒週期上訊號變得稀少 |
| 震盪指標的進場水位 | 20 到 40(下方區域) | 5 | 涵蓋「輕微」到「極端」的讀數,又不至於到達從不觸發的水位 |
| 以 ATR 倍數表示的停損距離 | 1.0 到 4.0 | 0.5 | 低於 1.0,停損落在一般 K 棒雜訊之內;高於 4.0,停損難得派上用場 |
| 以跳動點表示的停損距離 | 8 到 40 | 4 | 視市場而定;下限設在一般 K 棒波動區間的數倍 |
要讓每次執行的設定相同,比較容易的做法是讓這些設定屬於整次研究,而不是各個回測。在 AlphaPrime(Valynox)中,回測的手續費、滑價、交易時段與下一根 K 棒成交,只需為一次研究設定一次,所以被掃描參數的每個值,都以相同方式計費與成交。掃描花多少時間,取決於處理器或顯示卡、資料長度與數值個數。
如何判讀掃描結果:高原還是尖峰?
把結果對參數畫圖,找一大片相近的數值,而不是單一最高點。最佳化高原是相鄰參數形成的一片寬廣、緩降的區域,區域內結果彼此接近。尖峰是單獨一個高值,兩側的鄰近值都弱。所選參數應落在高原中央,因為市場漂移可能把有效參數推向任一方向,而位於高原邊緣的參數,在一側已無處可去。
畫出的結果要用扣除成本後的平均每筆損益,不要用淨損益。淨損益混合了兩件事:每筆的優勢大小與交易筆數,較短的回看期常常只因為交易較多,就在淨損益上勝出。平均每筆損益讓每個值落在同一個每筆的尺度上。交易筆數也要放在旁邊;高原若建立在每個值只有約十二筆交易上,什麼也證明不了,而樣本內與樣本外的切分與所需筆數所談的規則,適用於輪廓上的每一點。
有兩種形狀需要再看一次。如果好的區域延伸到範圍的邊界,代表掃描得不夠寬:把範圍擴大,直到兩側的結果都下降,否則無法知道中央在哪裡。如果輪廓有兩個分開的峰,中間有個低谷,規則大概是抓到了市場的兩種不同行為,每個峰應當作各自的候選策略,而不是取平均。
多大的高原才算穩定?
當所選參數兩側各有至少三到五個相鄰參數,保有最佳結果的某個固定比例,而且沒有一個轉為負值,這片高原就算穩定,這個比例要在掃描前寫下。確切的比例屬於判斷;70% 是常見選擇。比數字更重要的是,先選定,再毫無例外地套用,讓高原是量出來的,而不是看到輪廓後爭辯出來的。
唯一值得記住的公式:
保留比例 = 鄰近參數的結果 ÷ 掃描中的最佳結果
其中鄰近參數的結果是你想用的那個值旁邊的值、扣除成本後的平均每筆損益,掃描中的最佳結果是任何值上找到的最高平均每筆損益。比例 0.7 表示該鄰近值保有最佳結果的 70%。數出所選比例之上、兩側連續的鄰近值各有幾個;這個數目就是以步數計的高原寬度。
假設性範例
回看期從 6 掃到 30,步距 2,共 13 個值。最佳的扣除成本後平均每筆損益是 $160,出現在回看期 16。$160 的百分之七十是 $112。10 到 22 的值都落在 $120 到 $160 之間,所以 13 個值中有 7 個在線之上,整個範圍內沒有任何負值。高原從 10 延伸到 22,在 16 的兩側各三步。若規則要求兩側各至少三個鄰近值高於 70%,16 通過,並且保留,是因為它是這片區域的中央,不是因為它是最佳值。
為什麼是三到五個鄰近值?步距為 2 時,每側三個鄰近值表示規則能承受任一方向六根的移動,這大約是波動率或 K 棒週期改變在實務上造成的變化幅度。少於三個,區域窄到一個月的行情就可能把策略帶離。「沒有負值」這項條件補上一個缺口:高原中央若有一個虧損的值,就是兩個小高原中間有個洞,而洞就是市場可能把你送去的地方。
寬廣的高原只回答一個問題:規則能否承受自身的小幅改變?它不會告訴你,這條規則裡的連續虧損可以多深。要看這一點,重新排列交易順序,就能看出真正的最大回撤可能比單一回測曲線差多少,詳見蒙地卡羅回測與真正的最大回撤,這項檢查屬於同一階段。
如何把兩個參數一起檢驗成熱力圖?
兩個參數一起掃描,並依每一組的結果上色,因為兩個各自看起來穩定的參數,仍可能互相依賴,形成單一熱點。熱力圖是一張網格,每一列是第一個參數的一個值,每一欄是第二個參數的一個值,每個格子的顏色顯示以該組參數執行的回測結果。參數敏感度分析是這類研究的通稱:衡量輸入一次一個或一起移動時,結果變動多少。
一次只掃一個參數不夠,原因是交互作用。假設 RSI 長度在進場水位固定為 30 時掃描,進場水位則在長度固定為 14 時掃描。兩條輪廓可能都有高原,然而(14,30)這一組,可能是兩片高原唯一重疊的組合。兩個參數同時移動一步,就會落在冷格。熱力圖直接顯示這一點:好的區域若不是一座相連的島,你可以站在島中央;就是一堆分散的幸運格子,你站不住。
- 選出策略最依賴的兩個參數。震盪指標規則通常是長度與進場水位;突破規則則是通道長度與停損距離。
- 範圍與步距沿用單一參數掃描的設定。長度 6 到 30、步距 2,水位 20 到 40、步距 5,共 13 × 5 = 65 次執行。
- 所有組合都以相同的成本、交易時段與成交方式執行。
- 在兩個方向套用同一條高原規則。數出候選組合周圍,高於比例線的相連格子。真正的島,四個方向的鄰近格都在線之上。
- 選島的中央。不是邊緣最深色的那一格。
每多一個參數,執行次數就相乘。三個參數、每個 13 個值,就超過兩千次執行(13 × 13 × 13),所以調過許多數字的策略難以檢查,兩三個參數的策略也比八個參數的更容易信任。如果一條規則有三個以上重要的參數,就兩兩配對畫圖,其餘固定在各自單一參數高原的中央。
如何從真實的搜尋結果挑出參數?
自動搜尋保留下來的候選,是掃描的起點,不是成品,因為搜尋是因為它最好才挑它,而最好的那一點,最可能落在尖峰上。下面這次執行,顯示這樣的候選在掃描參數之前長什麼樣子。AlphaPrime 檢驗 ES 日 K 棒,期間 2019-01-02 到 2025-06-30,多空皆做,一口,每筆交易收 $20 手續費與 $25 滑價。這條規則是用來替代本文主題,不是主題本身:以 RSI 相對強弱指標規則作為唯一的進出場條件,沒有停損、沒有停利、沒有濾網。搜尋試了約一千個候選(2026-10-31 的這次執行是 1,024 個),保留了這一個,依據是報酬相對回撤。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。
| 數字 | 結果 |
|---|---|
| 淨利(已平倉) | $89,155 |
| 最大回撤 | $68,387.5 |
| 交易筆數 | 56 |
| 勝率 | 58.93% |
| 獲利因子 | 1.693 |
| 平均每筆 | $1,592.05 |
| 在場時間 | 92.09% |

把這個方框當成一個點來看,不要當成定論。淨損益 $89,155 與平均每筆損益 $1,592.05,屬於約一千個候選中在這段歷史上看起來最好的那一個;事後挑選,會讓表中每個數字都被墊高,RSI 規則並沒有以交易人可以重複的方式賺到這筆錢。六年半只有 56 筆交易,也代表每一筆占結果的比重大,只要差兩三筆交易,平均每筆損益就會大幅移動。最大回撤 $68,387.5 對上獲利因子 1.693,是同一件事的另一種說法:相對於交易筆數,獲利與虧損的段落都偏大。交易這麼少,交易發生的先後順序本身就是運氣,將交易明細輸入免費蒙地卡羅模擬器,就能看出同樣 56 筆交易的回撤範圍有多寬。
遇到這樣的候選,依序這樣處理:
- 掃描它的 RSI 長度,範圍 6 到 30、步距 2,進場與出場水位固定,並畫出扣除成本後的平均每筆損益,旁邊附上交易筆數。
- 掃描它的水位,長度固定,再把長度與進場水位一起畫成熱力圖。
- 套用你事先寫好的高原規則。如果保留的值落在尖峰上,不論方框裡的數字如何,這個候選都淘汰。
- 如果它落在高原上,把參數移到高原的中央,即使中央的淨損益比保留的值低。你放棄的獲利,多半是選擇加成;你換來的穩定,才是能帶進新價格的部分。
參數穩定度與推進分析有何不同?
參數穩定度是在固定的一段歷史上改變參數,推進分析則固定參數、改變時間,兩者各自回答對方回答不了的問題。推進分析是這樣的檢驗:在一段歷史窗口上調整策略,原封不動地在接下來的窗口上執行,往前移動,如此重複,直到把串接起來的樣本外區段合成一個結果。高原告訴你,規則能承受自身的小幅改變;推進分析的結果告訴你,規則能承受市場的改變。策略兩者都需要通過,通過其中一個,不能預測另一個。
| 參數穩定度 | 推進分析 | |
|---|---|---|
| 固定的是什麼 | 歷史 | 規則與其參數(每個窗口內) |
| 改變的是什麼 | 參數 | 時間窗口 |
| 回答的問題 | 規則稍有改變就會失效嗎? | 市場改變就會失效嗎? |
| 典型圖形 | 輪廓或熱力圖 | 串接起來的樣本外權益曲線 |
| 何時執行 | 搜尋之後、推進分析之前 | 掃描之後、最後的未動用檢驗之前 |
順序不能反過來。先跑掃描,推進分析才不會失真:以高原中央的參數進入推進分析的策略,會在每個窗口內重新調整到靠近該中央的值,它的樣本外區段衡量的就是市場,而不是尖峰的運氣。先跑推進分析,則會把後面的資料浪費在掃描幾分鐘就能淘汰的候選策略上。Bailey、Borwein、López de Prado 與 Zhu(2017)指出一般的道理:每一個走到後段資料並在那裡被比較的候選,都會提高存活者過度最佳化的機率,所以便宜的檢查應當在動用昂貴資料之前先淘汰候選。窗口與切分的完整方法,見推進分析與唯一能實際交易的回測數字。
兩項檢查之後,還有兩項屬於同一條鏈。Kolmogorov–Smirnov 檢定比較樣本外交易與樣本內交易,問的是切分之後的交易,是否仍與切分之前的交易相像。而當幾個策略各自都通過之後,投資組合回測與合併後的回撤顯示所有策略合在一起的回撤,這才是你真正要熬過的數字。
下一步只是一件小事。選出你最信任的那個策略,寫下它的參數,把你認為最重要的那一個,依上表的完整範圍掃描,並先在紙上寫好高原規則。如果你一直在交易的參數,落在通過規則的區域中央,你已經學到值得知道的事。如果它落在尖峰上,你學到的更值錢。
常見問題
什麼是交易中的參數敏感度分析?
參數敏感度分析,衡量策略的某個參數改變時,回測結果變動多少。你把同一個回測跑許多次,讓一個參數依序走過一個範圍,其他一切固定,再把結果對參數畫圖。結果在一大片參數範圍內都相近,就是不敏感,這正是你要的。結果在離最佳值一步之外就崩塌,就是敏感,最佳值多半是運氣。
我應該永遠選回測結果最好的參數嗎?
不。單一最佳參數是被機率墊高最多的那一個,因為在那段歷史上,真實規律與隨機雜訊最接近重疊的就是這一點。改選最寬的一片良好參數的中央,即使鄰近的值淨損益更高也一樣。你放棄的獲利多半是選擇加成;你保留的穩定,才是能撐過新價格的部分。
一個策略該有幾個參數?
夠用就好,通常兩到四個。每多一個參數,要檢查的組合就相乘,也讓搜尋多一條配合雜訊的路。兩個參數的規則,可以用一張熱力圖完整畫出;八個參數的規則,實際上無法檢查。如果策略只有在許多精細調過的數字下才有效,這本身就是過度最佳化的跡象。
策略落在寬廣的高原上,樣本外仍可能失敗嗎?
可以。高原只顯示,規則能承受自身參數在一段固定歷史上的小幅改變,並未顯示規則能承受市場的改變,而這正是推進分析與最後一段未動用資料所檢驗的。把高原當成搜尋之後的第一道濾網,而不是最終的結論,並對通過的一切再做以時間為基礎的檢查。
參考文獻
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2017). The Probability of Backtest Overfitting. Journal of Computational Finance, 20(4), 39–69.

