- 登入
- 註冊


量化通社群問題筆記系列文章,是整理自量化通 LINE 社群裡的第一手真實案例與實戰中常常遇到的問題。我們摘錄社群的原始對話內容,並整理成專題文章。
社群的真實討論很有價值,雖然這不是標準教學,而是大家在實踐量化交易中留下來的問題與心得。除了策略開發、回測、串接與下單設定之外,尤其是心理面與經驗分享才是精華所在。這類問題很難在網路或官方文件裡直接找到答案,但在每次提問和交流中,真正的問題核心點就會慢慢浮現出來。
所以這系列文章不是要給一個標準答案,而是把當時的討論脈絡整理出來,順著問題本身往下拆,變成更有參考價值的內容給大家。
社群成員:策略失效後,如果再換一組最近看起來比較漂亮的參數,這樣算是解決問題嗎?
量化通-Tony:就要換個思維開發了,不能無腦暴力跑參數。
量化通-Tony:其實還是要回歸到你的使用情境啦。
當原本順手的策略開始虧損,直覺可能是打開最佳化,挑一組近期表現漂亮的參數,讓績效曲線重新好看起來,但這樣做真的解決問題嗎?
策略績效下滑,不一定代表參數失效,我們需要先從程式、參數與回測報表,再逐一檢查歷史資料、交易成本、訊號到實際成交,找出績效惡化的原因。如果問題出在滑價增加、委託未如預期成交,單純調整進場門檻並不能改善策略或交易上的問題。
如果是策略已經破 MDD(歷史最大回撤),我們就需要進一步判斷是正常的績效波動、交易執行問題,還是策略原本的獲利優勢可能已經減弱。
破 MDD 後怎麼辦,要如何檢查風控,可以參考我們之前寫的 績效久沒創高甚至破 MDD 時,要不要下架策略。
只有在釐清績效惡化的原因,並確認問題確實可能透過重新估計參數改善後,才考慮進入最佳化流程,即使找到歷史績效更好的組合,也要進一步檢查相鄰參數的表現、成本變動的影響,以及另一段歷史資料,是否還能維持不錯的表現。
策略績效下滑時,我們優先要先固定原版程式與回測設定,核對實際交易與回測結果,確認歷史資料、策略訊號、委託、成交及交易成本等是否正常。
排除執行異常後,進一步再檢查市場環境是否仍符合策略原本的設計,例如:
如果是市場結構或波動特性已經改變,就需要重新評估策略的適用性,以及原有風控是否仍符合目前的風險。
如果市場環境看起來正常,但績效還是持續惡化,我們應該進一步檢查策略的獲利優勢是否減弱,再決定是否需要重新最佳化。
重新最佳化的重點,不是找出歷史績效最高的參數組合,而是評估不同參數對策略表現的影響,確認策略是否過度依賴特定參數。
即使找到歷史績效更好的參數,我們也要進一步檢查相鄰參數的表現、交易成本變動的影響,以及在未參與參數挑選的歷史資料中,是否仍能維持合理的表現。
真正需要檢視的不是能不能使用最佳化,而是為什麼要重新最佳化、要如何挑選參數,以及如何驗證結果,有明確的改善目標與驗證標準,才能判斷新參數是否真的改善策略,而不只是讓歷史績效曲線看起來更漂亮。
假設策略有一個均線參數,可試 20、21、22 這三個相近值,如果在選模資料中,21 的淨利很高,但 20 與 22 都明顯虧損,先懷疑績效高度依賴精準數值,可能踩到參數孤島了。
三者在合理成本下都有相近的正向表現,至少表示這個小區域沒有那麼脆弱,但這仍不能保證未來有效,也不能靠三個數字就證明沒有過擬合。
還要看交易筆數、最大回撤、獲利是否集中在少數日期,以及參數範圍是否有策略邏輯上的理由。

我們應該要選擇相對穩健的參數,而不是盲目只選第一名。
這裡說的「普佳化」,是從合理的參數範圍中,找出附近多組設定都有相近表現的區域,先挑對數值較不敏感的候選參數,再做進一步驗證,會比只看回測排名更有判斷依據。
接著把候選參數與舊參數放在相同商品、資料期間、交易成本與部位設定下比較,先寫下這次要改善的問題,再看成本後獲利、最大回撤與交易筆數的變化,才知道新方案改善了哪裡,又付出了什麼代價。
選定候選參數後,還要固定設定用未參與挑選的後續資料驗證,如果結果未達事前設定的評估條件,先列為本輪未通過,回到開發資料檢查原因,如果根據這段驗證結果修改參數,它就已參與開發,下一輪須另用未參與挑選的資料驗證。
每次測過的組合與結果都要保留,連同資料區間、成本假設與採用理由一起記錄,重新最佳化的用途,是幫我們研究參數敏感度、比較新舊方案。下次要換參數前,先留下舊版、寫清楚要改善的問題,再以驗證結果來決定是否更換。