策略優化入門:目標函數、格點搜尋與過度擬合風險

第 24 課・共 34 課

⚠️ 本站內容僅作教育用途,不構成投資建議。投資涉及風險,作出任何投資決定前請諮詢持牌專業人士。
目錄

策略優化 Strategy Optimization 是量化交易由「識做策略」走向「識調策略」的分水嶺:參數組合千變萬化,人手逐一試根本試不完。本講是 Liu Peng 量化交易學術課第 11 週第一講,正式進入參數優化課題——講者把交易策略重新表述為一個全局優化 Global Optimization 問題:參數是輸入、夏普比率是輸出,目標是在龐大的搜尋空間裡有系統地找出全局最大值。

學習重點

詳細筆記

為何人手調參行不通

講者開篇先講穩健性:不同測試時段的資產價格曲線各有特性,一套參數要稱得上穩健,就要在多個覆蓋代表性場景的時段回測——包括市場崩盤這類小概率事件——仍然保持盈利,才有機會在實盤繼續有效。講者特別界定:實盤測試 Live Test 是指把策略真正放到市場運行一段時間,觀察它在未見過的數據上能否複製回測表現;回測過關只是入場券,實盤才是終極驗證。

但這個要求馬上令「手動微調」變得不切實際,原因有二。第一是參數空間太大:之前課堂的進出場訊號用 Z-score 門檻,例如設為 2;但 2 可以是 1.9、1.91、1.9001……連續取值近乎無限,我們無從得知哪個才是最優。第二是單次評估太慢:每組參數要跑多個時段的回測才有結論,每一輪執行都耗時,想知單一參數組合的表現也要等上一段時間。兩者疊加,令「全局搜尋最優參數」成為一個必須借助優化算法才能處理的問題,而非靠人手可以完成的工序。

原片講義:穩健策略需在多個代表性場景回測,而手動調參因參數太多、回測太慢而不可行(截圖出自原片(Liu Peng))

參數化交易策略與目標函數

講者把討論對象界定為參數化交易策略 Parametric Trading Strategy:策略建基於一個或多個參數,這些參數就是輸入變量,也是我們可以擰動的「調節旋鈕」,每個參數都在預設範圍內取值。例子包括:

有了輸入,就要定義輸出。目標函數 Objective Function 接收參數值、輸出一個績效指標。講者選用夏普比率 Sharpe Ratio 作為績效度量,在某段回測期上計算。留意這裡的取捨:績效指標只輸出單一標量,把回測裡千絲萬縷的資訊壓縮成一個數字,優化器只認這個數字——選錯指標,優化方向整個歪掉。數學上,對於兩個窗口長度的策略:

$$S = f(l_1, l_2)$$

原片講義:參數化策略把窗口長度 $l_1$、$l_2$ 映射到夏普比率 $S$,$f$ 是黑箱函數(截圖出自原片(Liu Peng))

黑箱函數:無封閉形式、無梯度

講者特別強調 $f$ 是一個黑箱函數 Black-box Function:我們知道怎樣計算它——給定參數,跑一次回測就有夏普比率——但它沒有固定的數學形式,無法做符號推導、求不出封閉解。

這一點與機器學習慣常面對的問題有本質分別。講者解釋,若函數有明確形式,數學分析會容易得多——可以求導、找臨界點、甚至推出封閉解。訓練深度神經網絡時,損失函數的梯度可以計算,於是梯度下降大行其道;但策略績效函數的梯度資訊不存在,梯度下降直接出局。加上每次函數評估(一回測)都耗時,我們連「在附近多試幾點、用差分逼近梯度」的做法都難以負擔。這正是全局優化工具存在的意義:在無梯度、評估昂貴的條件下,仍有系統地搜尋最優解。

全局優化問題的數學表述

講者把問題正式寫成約束優化。以雙均線策略為例,決策變量是兩個窗口長度 $l_1$、$l_2$,要滿足:

目標是找到令夏普比率最大的參數組合。講者給出兩個等價表述。其一是全局最大值

$$f^* = \max_{x \in \mathcal{X}} f(x) = f(x^*)$$

其中 $\mathcal{X}$ 是整個搜尋空間(函數的定義域),$f^*$ 是所有可能參數評估出來的最高夏普比率。其二是最優位置,用 argmax 表示「令函數取最大值的那個輸入」:

$$x^* = \arg\max_{x \in \mathcal{X}} f(x)$$

找到 $x^*$ 後再評估一次,得到的函數值就是 $f^*$,兩者互為表里:一個問「最高可以去到幾高」,另一個問「最高峰在哪裡」。

這個問題屬於全局優化的範疇,與只求局部改進的方法不同:我們關心的是整個搜尋域上的最優參數集,而非起點附近的小幅改善。

原片講義:全局最大值 $f^* = \max_{x \in \mathcal{X}} f(x)$ 與其位置 $x^* = \arg\max$ 的定義(截圖出自原片(Liu Peng))

講者用一條多峰曲線說明難度所在:橫軸是參數 $x$、縱軸是目標函數值,曲線上有好幾個局部高峰,全局最大值只有一個。由任意起點出發,如何「落點」在全局最高峰而非旁邊的小山頭,就是全局優化的核心挑戰——貪心爬坡只會被困在就近的局部最優。而且計算資源有限——不能漫無目的地亂試,搜尋必須有原則、有系統,把有限的評估次數花在最有希望的位置。

原片講義:多峰目標函數曲線——在多個局部極值中定位全局最大值 $f^*$ 與 $x^*$(截圖出自原片(Liu Peng))

格點搜尋:最直觀但最昂貴的基準

面對這個問題,最直觀的做法是格點搜尋 Grid Search:為每個參數設定取值範圍與步距,鋪成一張多維網格,逐點回測,揀最高分之一點。若有 $d$ 個參數、第 $i$ 個參數取 $n_i$ 個值,總評估次數是:

$$N = n_1 \times n_2 \times \cdots \times n_d$$

組合數目隨維度指數爆炸:兩個參數各取 50 個值已是 2,500 次回測;三個參數就變 125,000 次。以每次回測動輒以分鐘計,格點搜尋只能當基準方法,實務上難以獨力承擔全局搜尋。以 Z-score 門檻為例,若在 0 至 4 之間以 0.1 為步距,單一參數已有 41 個取值;兩個門檻(進場、出場)加兩個均線窗口,四維網格的規模隨即失控。步距放寬可以省時間,卻又可能錯過落在格點之間的真正最優——進退兩難。這正是後續課題引入更聰明優化算法的動機。

過度擬合:調參的隱藏代價

講者在本講埋下的另一條伏線,與優化相輔相成:參數調得越盡,越要警惕過度擬合 Overfitting。一套參數在單一時段跑出最高夏普比率,可能只是遷就了該段行情的噪音;所以講者開篇才強調要用多個覆蓋不同場景(包括崩盤等小概率事件)的時段驗證。能在多段歷史都生存的參數,才算穩健 Robust,才有條件進入實盤測試。換句話說,優化與驗證是兩道工序:優化算法負責「找得快」,多時段驗證負責「找得真」,兩者缺一不可。

🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:

ZA Bank 邀請碼 P20923 —— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。 立即開戶 → (聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)

欣利克的看法

名詞解釋

常見問題 FAQ

策略優化和過度擬合有甚麼關係?

優化是在歷史數據上找績效最好的參數,但試的組合越多、調得越盡,越可能只是在遷就該段數據的噪音而非真實規律——這就是過度擬合。防範方法是把數據分為樣本內與樣本外,並用多個覆蓋不同市況的時段驗證。

為甚麼不能用機器學習的梯度下降來調策略參數?

梯度下降需要目標函數的梯度資訊,而策略績效函數是黑箱:給定參數只能跑一次回測得到數值,沒有明確數學形式可求導,梯度根本不存在,所以要用全局優化一類不依賴梯度的方法。

格點搜尋一定找得到最佳參數嗎?

只能保證找到「格點上」的最佳。若真正最優值落在格點之間就會錯過;而格點加密會令評估次數以乘法倍增,計算成本極高,因此它通常只作為基準方法。

目標函數一定要選夏普比率嗎?

不一定,夏普比率只是常見選擇,也可用卡瑪比率、淨盈利等。但要留意目標函數定義了「好策略」的標準:只最大化淨盈利容易選出高風險參數,用風險調整後的指標通常較穩健。

原影片

本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看:

來源:https://www.youtube.com/watch?v=MQOeimc0YrQ

🏦 ZA Bank 開戶優惠

本站所有內容免費提供。多使用網站的推薦碼,就是對我們繼續製作優質內容的最大鼓勵和支持 🙏

去 ZA Bank 開戶,享價值 HKD 2,000 迎新獎賞,仲有機會享 USD 30 指定美股兌換券!

  • 💛 全線上開戶,無需前往分行
  • 💛 無最低存款要求,零賬戶管理費
  • 💛 24x7 銀行服務

專屬邀請碼:P20923

立即開戶 → (聯盟連結)