EA策略參數老化:如何從勝率、滑點與滾動回測發現並重調?

EA策略參數老化:如何從勝率、滑點與滾動回測發現並重調?

2026-09-26

我在 AI Trading Academy 帶學員做ea策略覆盤時,最常聽到的一句話是「這套程式以前明明很順,怎麼最近一直輸」。學員往往以為是程式壞了,或者市場變了,但真正的問題多半更安靜:參數老化。一套 EA 的邏輯沒變、程式碼沒改,只是當初幫它調好的那組數字,已經跟不上現在的行情節奏。這篇不談怎麼選策略,只專注一件事:如何從勝率與滑點這兩個最容易量化的訊號裡,發現參數老化的痕跡,再用滾動回測把它揪出來,最後按一套可以重複的節奏去重調。

參數老化不是壞掉,而是環境變了

先釐清一個概念:參數老化不等於程式故障。程式故障是同一組參數下,執行結果突然異常、下單錯誤、無法成交;參數老化則是程式照常運作,但它的假設前提已經和市場脫節。以最常見的趨勢型ea策略為例,它靠價格沿一個方向持續移動來賺錢,參數裡的均線週期、突破幅度、止損距離,都是基於某段時間的波動率調出來的。當市場從單邊市轉成震盪市,或者波動率放大、收窄,這些數字就不再是最佳解,甚至變成拖累。

我在課堂上用一個比喻解釋:參數是一張舊地圖。街道還在,但路況變了,你照舊地圖走,就會走進塞車的路段。EA 不會告訴你地圖過期,它只會默默地把每一次「照舊執行」的結果堆到你面前,等你回頭看結算才發現不對勁。

正因為老化是漸進的,它比故障更難被察覺。學員常說「上個月還有賺,這個月才輸」,以為只是短暫運氣差。但如果你把時間軸拉長看,老化其實早就留下痕跡,只是被零星幾筆好單掩蓋了。學會辨認這些痕跡,是重調的第一步。

老化最早的兩個徵兆:勝率與滑點

參數老化的徵兆有很多,但對散戶來說,最方便觀察、也最能量化的就是兩個:勝率下滑與滑點擴大。這兩者一前一後出現,通常勝率先動,滑點隨後跟上,因為勝率一下滑,程式為了追回績效,往往會提高進場頻率,而高頻進場在流動性差的時段,滑點就會被放大。

勝率下滑要看什麼口徑

勝率本身會隨行情自然波動,單看一週的勝率沒有意義。我看勝率時,習慣用三個月的移動窗口,而不是「上個月對比這個月」。例如一套黃金趨勢ea策略,前年首季的勝率是百分之五十八,之後每季遞減:五十五、五十三、五十、四十八,最近一季跌到百分之四十六。這條緩慢下坡的曲線,就是典型的老化,而不是一時手風不順。

判斷的關鍵在於「趨勢」而非「絕對值」。百分之四十六的勝率本身不一定差,只要賠率夠高一樣可以賺錢;真正要警惕的是它「持續」往下走,而且幅度愈來愈大。如果連續三個窗口的勝率都低於前十二個月的平均,並且差距超過五個百分點,我就會把它列為需要重調的候選對象。

滑點擴大,成本先吃掉利潤

滑點是老化第二個、也更隱蔽的訊號。滑點指的是你預期的成交價和實際成交價之間的差距,它會直接轉化成交易成本。一套 EA 的勝率可以只掉三個百分點,但如果平均滑點從零點八點擴大到兩點三點,在每手合約上累積的成本,可能比虧損那幾筆還要傷。

這背後有監管層面的原因值得先搞懂。槓桿外匯的按金制度決定了你每一點的波動對應多少實際資金,這點IFEC 槓桿外匯基本認識有官方說明,建議先讀一遍,你才會理解為什麼滑點在槓桿環境下會被放大。滑點擴大通常發生在兩個地方:一是策略進場愈來愈頻繁,二是市場在關鍵價位的流動性變薄。前者是參數老化造成的,後者是環境造成的,兩者常常疊加。要分清是哪一個,就需要滾動回測來隔離變量。若你想先看懂一套策略的固定與變動成本是怎麼堆出來的,我這篇談策略成本結構的文章把拆帳邏輯講得比較完整,可以一起讀。

交易者坐在螢幕前檢視成交回報,實際成交價偏離預期進場價,獲利被滑點慢慢吃掉。

用滾動回測把老化揪出來

發現徵兆之後,下一步是把「感覺」變成「數據」。要判斷一套ea策略是否真的老化,普通回測是把一整段歷史數據跑一遍,給你一個總勝率、總回報,這種口徑太粗,會把老化的過程平均掉。滾動回測的做法是把歷史數據切成一段段重疊的窗口,逐窗重測,看績效隨時間怎麼變化,這樣老化才會現形。

滾動窗口的切法

滾動回測的切法沒有標準答案,但有一個實用原則:窗口要夠長、覆蓋至少一次完整的市場循環,同時又要夠短、能看出變化。我自己習慣用三個月窗口、每個月前移一次。假設你有二十四個月歷史數據,第一個窗口是第 1 至第 3 個月,第二個窗口是第 2 至第 4 個月,如此類推,一路切到第 22 至第 24 個月,總共得到二十二個窗口。每個窗口都跑同一套ea策略參數,然後把每窗的勝率、利潤因子、平均滑點依時間排成一列。

當你看到這二十二個點的勝率曲線一路向右下傾斜,而波動率其實沒有明顯改變,那就幾乎可以斷定是參數老化,而不是市場變難。反之,如果曲線在某個時間點突然集體跳水,那更可能是結構性事件,例如利率政策轉向,那就要走另一條時事應對的路子,跟這篇講的漸進老化不同。

一個可以照做的算例

我在課堂上用過一個學員的真實案例,把流程跑一遍,這裡把數字簡化給你看。

一套黃金趨勢 EA,原始參數是:進場條件為二十期均線向上穿越六十期均線做多、向下穿越做空;止損設為兩倍 ATR,止盈設為三倍 ATR;每單固定一手。這套參數在首季勝率百分之五十八,利潤因子一點六,平均滑點零點八點,表現很健康。

我把二十四個月數據切成二十二個窗口做滾動回測,得到最後五個窗口的數據是這樣的:

窗口 勝率 利潤因子 平均滑點
第 18 窗 52% 1.25 1.2 點
第 19 窗 51% 1.18 1.4 點
第 20 窗 49% 1.05 1.7 點
第 21 窗 47% 0.92 2.0 點
第 22 窗 46% 0.88 2.3 點

這張表一眼就能看出問題:勝率與利潤因子同步下滑,滑點同步擴大,而這半年市場的 ATR 其實變化不大。這說明不是環境劇變,而是那條「二十期均線」太敏感了。波動結構稍有不同,二十期均線就頻繁金叉死叉,進場次數增加、假突破變多,勝率下滑,又因為進場太密,成交落到流動性差的價位,滑點跟著擴大。

於是我把進場條件改成五十期均線穿越一百期均線,其餘不變,重跑最後五個窗口。勝率回到百分之五十四、五十三、五十二、五十一、五十二,平均滑點也回落到一點一至一點三點之間。原因是五十期均線更遲鈍,過濾掉大量假突破,進場次數從月均十八次降到十一次,滑點自然改善。這套重調流程,和從回測走到實盤的路線圖裡的驗證順序是一致的,你可以對照著看。

重調的節奏:多久動一次

發現老化之後,緊接的問題是:多久重調一次才對?調得太頻繁,會陷入過度擬合,追著最近一個月的噪音跑;調得太少,又會讓老化的損失持續累積。這個節奏沒有萬用答案,但可以拆成兩條並行的原則。

固定週期與觸發式並行

我建議學員同時設兩道閘。第一道是固定週期:每三個月或每季度,不管有沒有感覺,都把參數放進滾動回測跑一遍,當成例行體檢。第二道是觸發式:只要出現兩個硬條件之一,就提前重調,不等季度結束。

第一個硬條件是勝率連續三個窗口低於基準線五個百分點以上;第二個硬條件是平均滑點比基準擴大一倍。基準線就是你自己在策略上線時記錄下來的那組初始數據。觸發式的好處,是它不看主觀感覺,只看數字越界,避免你因為害怕、或因為最近幾筆賺了錢,就選擇視而不見。

把兩道閘並行,實際效果是:例行體檢讓你養成紀律,觸發式閘門讓你不會在市場變臉時手忙腳亂。重調的頻率,本質上是在「跟上市場」和「不要過度擬合」之間找平衡,這套平衡感,比任何一組具體數字都更值得學。

桌上攤開的交易日誌,左頁是標好每季度的行事曆,右頁是畫了警戒線的績效曲線。

重調的具體步驟

重調不是把參數亂改一輪再看結果。它是一套可以重複的流程,我習慣拆成四步,每一步都留記錄,方便下次對照。

先隔離變量,再逐項改

第一步是記錄現狀。把當前參數、最近三個窗口的勝率、利潤因子、平均滑點、進場頻率全部寫下來,這是重調的起點。第二步是隔離變量。一次只改一個參數,例如只改進場均線週期,其他全部凍結,重跑滾動回測看變化。一次改太多,你根本不知道是哪個改動帶來了改善,下一次老化就無從下手。

第三步是驗證而非背誦。改完之後,不要只看總回報,要看勝率、滑點、最大回撤三者是否同時改善。如果勝率上去了,但滑點或回撤惡化,這個改動就不算合格。第四步是前向測試。滾動回測用的是歷史數據,改出來的參數還要在接下來的一段實盤或模擬盤裡,用小倉位驗證一段時間,才正式放大。

這四步裡,風險控制始終是底線。重調不是為了追回虧損而把止損放寬、把倉位加大,那是在用更大的風險去賭。關於如何控制單筆風險,IG 交易學院控制風險的框架講得很實用,我會要求學員在動任何參數前先複習一遍。一套ea策略重調得再好,只要風險那條線失守,前面的努力都是白費。

重調最常犯的三個錯

重調的過程裡,我見過的反面教材比成功案例還多。最常見的三個錯,幾乎每次課堂都有人踩中。

第一個錯是拿最近一段行情去覆寫全部參數。上個月震盪市,就把趨勢策略硬改成網格參數;下個月趨勢回來,又改回去。這種追尾燈式的重調,等於永遠慢市場半拍,還賠上反覆改動的交易成本。

第二個錯是把回測當成真理。回測做得再漂亮,只要樣本不夠、或者過度擬合了某段特殊行情,實盤就會走樣。回測常見迷思這篇把一般人對回測的誤解拆得很細,我建議任何想認真重調的人,都先讀一遍,才不會把過度擬合的數字誤當成新參數的保證。

第三個錯是忽略交易成本。很多學員重調後看到勝率回升就高興,卻沒留意進場頻率增加了,滑點和手續費把多賺的那點利潤又吃回去。重調的目標永遠是淨利潤改善,而不是勝率這個表面數字好看。美國CFTC 降低外匯交易風險的建議裡,也反覆提醒要把成本與風險納入計算,而不是只看單一指標,這點放在參數重調上一樣成立。

常見問題

問:參數老化是不是代表我的 EA 壞了?

答:不是。參數老化是程式邏輯仍正常、但參數假設與當前行情脫節,屬於需要定期維護的現象;程式故障則是執行異常、下單錯誤等硬體或程式碼層面的問題。兩者的處理方式完全不同,前者重調參數即可,後者要檢查程式本身。

問:多久應該重調一次參數?

答:建議設兩道閘並行。例行體檢每三個月做一次,把參數放進滾動回測跑一遍;另外設觸發式條件,例如勝率連續三個窗口低於基準線五個百分點以上,或平均滑點比基準擴大一倍,就提前重調,不等季度結束。

問:勝率下滑多少才算老化?

答:不要看絕對值,要看趨勢。如果連續三個窗口的勝率都低於前十二個月的平均,而且差距超過五個百分點,同時市場波動率沒有明顯改變,就應列為重調候選。單一窗口的勝率波動屬於正常,不必過度反應。

問:滾動回測和普通回測有什麼分別?

答:普通回測把整段歷史數據跑一遍,只給一個總勝率與總回報,會把老化過程平均掉。滾動回測把數據切成重疊窗口逐窗重測,例如三個月窗口每個月前移一次,就能看出績效隨時間的變化曲線,老化才會現形。

問:重調後是不是就能回復舊有表現?

答:不一定。重調的目標是讓參數重新貼近當前行情,而不是回到過去的績效。歷史表現不代表未來回報,重調後仍要用小倉位前向驗證,並持續以滾動回測監察,老化是一個持續的過程,不是一次修復就一勞永逸。

立即 WhatsApp 聯繫小風團隊免費諮詢:+852 5378 5383

網站:https://aitrading.ace-fortune.com/EA

投資涉及風險,過往表現不代表未來回報。本內容僅供教育參考,不構成任何投資建議。

類別:投資攻略
分享到:
null

Ace Fortune 2018年成立於香港,早期研究方向包括面向 PI(個人專業投資者)的大數據智能指標及選股器,以及運用量化模型研究交易策略。
今天,我們將這份系統思維,延伸至 AI 工具與程式交易教育,讓新手學習運用 AI Agent 輔助整理資料、編撰程式與檢查邏輯。
從理解工具到動手實作,讓科技更容易入門,支持個人增值與成長。Let Intelligence Empower Your Growth. 

null
© 2026 Weber All Right Reserved