3.4 參數最佳化方法
本節說明如何在 3,500 種參數組合中,透過系統性搜尋與 Walk-Forward 驗證找出最佳參數組合。參數最佳化是本研究第一階段的核心任務,其結果將直接影響第二階段策略比較的有效性。
一、參數搜尋空間設計
1.1 搜尋空間總覽
如第 3.3 節所述,動態跌幅門檻策略涉及三個核心參數,形成三維搜尋空間:
| 參數 | 符號 | 搜尋範圍 | 數量 | 搜尋方式 |
|---|---|---|---|---|
| 滾動窗口長度 | L | {1, 2, 3, 4, 5, 7, 10} 年 | 7 | 離散搜尋 |
| 百分位數 | P | {1, 2, 3, ..., 100} | 100 | 完整搜尋 |
| 回看天數 | N | {5, 10, 20, 40, 60} 天 | 5 | 離散搜尋 |
總搜尋空間:
1.2 各參數範圍的設計依據
滾動窗口長度 L:
| L 值 | 訓練資料量(約) | 設計考量 | 潛在優缺點 |
|---|---|---|---|
| 1 年 | 252 天 | 快速適應市場變化 | 樣本量少,估計不穩定 |
| 2 年 | 504 天 | 短期適應 | 平衡適應性與穩定性 |
| 3 年 | 756 天 | 涵蓋一個商業週期 | 常用的基準長度 |
| 4 年 | 1,008 天 | 中期平衡 | 包含多種市場狀態 |
| 5 年 | 1,260 天 | 較長歷史 | 更穩定的估計 |
| 7 年 | 1,764 天 | 長期穩定 | 可能包含過時資訊 |
| 10 年 | 2,520 天 | 完整市場週期 | 最穩定但適應性最低 |
選擇非等距的 L 值(1, 2, 3, 4, 5, 7, 10)而非等距序列,是為了在短期與長期區間均有足夠的取樣點,同時控制總搜尋量。
百分位數 P:
本研究採用 P = 1 至 100 的完整搜尋,而非僅測試特定值(如 P = 5, 10, 15, 20),原因如下:
- 避免選擇偏誤:若僅測試預設值,可能錯過真正的全域最佳
- 描繪完整效果曲線:完整搜尋可呈現 P 值與績效的關係曲線
- 識別高原區間:若最佳 P 值落在某區間而非單點,完整搜尋才能發現
- 提供實務參考:了解不同 P 值的績效差異,有助於實務應用
回看天數 N:
| N 值 | 對應時間 | 捕捉的市場現象 | 學術依據 |
|---|---|---|---|
| 5 天 | 1 週 | 週度價格波動 | Lehmann (1990) |
| 10 天 | 2 週 | 短期價格調整 | Lo & MacKinlay (1990) |
| 20 天 | 1 個月 | 月度價格修正 | Jegadeesh (1990) |
| 40 天 | 2 個月 | 中期趨勢反轉 | 技術分析慣例 |
| 60 天 | 3 個月 | 季度週期修正 | 財報週期 |
1.3 搜尋策略
本研究採用網格搜尋(Grid Search)而非啟發式搜尋(如遺傳演算法),原因如下:
- 可重現性:網格搜尋的結果完全確定,便於學術驗證
- 完整性:確保搜尋所有可能的參數組合
- 計算可行性:3,500 種組合的計算量在可接受範圍內
- 結果可解釋:可繪製完整的參數—績效關係圖
計算複雜度估計:
- 每個參數組合需計算 116 檔股票 × 10 年 = 1,160 次回測
- 總回測次數:3,500 × 1,160 = 4,060,000 次
- 估計計算時間:約 4-8 小時(視硬體配置)
二、Walk-Forward 驗證方法
2.1 Walk-Forward 的基本概念
Walk-Forward 驗證(Walk-Forward Optimization, WFO)是一種滾動式的樣本外測試方法,其核心概念為:
- 訓練期(In-Sample):使用歷史資料進行參數最佳化
- 測試期(Out-of-Sample):使用最佳化後的參數進行樣本外測試
- 滾動前進:將窗口向前移動,重複上述步驟
此方法可有效避免傳統回測中的前視偏誤(Look-Ahead Bias)與過度擬合(Overfitting)問題。
2.2 Walk-Forward 執行流程
本研究的 Walk-Forward 驗證流程如下:
輸入:
- 價格資料:2005-2024 年
- 參數空間:L × P × N = 3,500 種組合
- 測試年度:2015-2024(共 10 年)
對於每個測試年度 y ∈ {2015, 2016, ..., 2024}:
對於每個滾動窗口長度 L ∈ {1, 2, 3, 4, 5, 7, 10}:
定義訓練期:[y - L, y - 1]
對於每個參數組合 (P, N):
步驟 1:計算門檻
使用訓練期資料計算跌幅分布的第 P 百分位數
步驟 2:訓練期回測
在訓練期執行策略,記錄績效指標
步驟 3:記錄結果
Performance[y][L][P][N] = 訓練期績效
步驟 4:選擇最佳參數
(P*, N*)_L = argmax_{P,N} Performance[y][L][P][N]
步驟 5:選擇最佳窗口長度
L* = 基於訓練期績效或預設值選擇
步驟 6:測試期驗證
使用 (L*, P*, N*) 在測試年度 y 執行回測
Test_Result[y] = 測試期績效
輸出:
- 每年度的最佳參數:{(L*_y, P*_y, N*_y)}_{y=2015}^{2024}
- 每年度的測試績效:{Test_Result[y]}_{y=2015}^{2024}
- 參數穩定性報告
2.3 訓練期與測試期的切分
以 L = 3 年為例,Walk-Forward 的期間切分如下:
| 測試年度 | 訓練期 | 訓練期長度 | 測試期 |
|---|---|---|---|
| 2015 | 2012-2014 | 3 年 | 2015 |
| 2016 | 2013-2015 | 3 年 | 2016 |
| 2017 | 2014-2016 | 3 年 | 2017 |
| 2018 | 2015-2017 | 3 年 | 2018 |
| 2019 | 2016-2018 | 3 年 | 2019 |
| 2020 | 2017-2019 | 3 年 | 2020 |
| 2021 | 2018-2020 | 3 年 | 2021 |
| 2022 | 2019-2021 | 3 年 | 2022 |
| 2023 | 2020-2022 | 3 年 | 2023 |
| 2024 | 2021-2023 | 3 年 | 2024 |
重要說明:
- 訓練期與測試期不重疊:確保樣本外測試的有效性
- 每年重新計算門檻:訓練期滾動前進,門檻隨之更新
- 總觀察期需求:最長窗口 L = 10 年,測試 2015 年需要 2005-2014 年資料
2.4 避免前視偏誤的設計
前視偏誤(Look-Ahead Bias)是指在回測中使用了當時尚未可知的資訊。本研究透過以下設計避免此問題:
| 潛在偏誤來源 | 防範措施 |
|---|---|
| 使用未來價格計算門檻 | 門檻僅使用訓練期(過去)資料計算 |
| 最佳參數選擇基於測試期績效 | 最佳參數選擇僅基於訓練期績效 |
| 跨年度資訊洩漏 | 每年度獨立執行,不使用未來年度資料 |
| 調整後價格的回溯調整 | 使用資料供應商的 point-in-time 資料 |
2.5 避免過度擬合的設計
過度擬合(Overfitting)是指模型過度適應訓練資料,導致樣本外表現不佳。本研究透過以下設計降低過度擬合風險:
- 樣本外測試:最終績效評估使用測試期(樣本外)資料
- 滾動驗證:10 個測試年度提供多次樣本外驗證機會
- 參數穩定性評估:追蹤最佳參數是否在年度間劇烈變動
- 多股票驗證:116 檔股票的平均績效降低單一樣本的影響
三、最佳參數選擇準則
3.1 主要最佳化指標:夏普比率
本研究以夏普比率(Sharpe Ratio)作為參數最佳化的主要指標,選擇依據如下:
夏普比率的優勢:
- 風險調整:同時考慮報酬與風險,避免僅追求高報酬
- 可比較性:不同策略、不同股票的夏普比率可直接比較
- 學術標準:夏普比率是投資績效評估的主流指標(Sharpe, 1994)
夏普比率的計算:
其中:
- $R_p$:策略年化報酬率
- $R_f$:無風險利率(本研究假設為 0%,或使用美國 10 年期公債殖利率)
- $\sigma_p$:策略報酬的年化標準差
3.2 次要參考指標
除夏普比率外,本研究亦參考以下指標作為最佳參數選擇的輔助依據:
| 指標 | 考量重點 | 選擇偏好 |
|---|---|---|
| 年化報酬率 | 絕對獲利能力 | 越高越好 |
| 最大回檔 | 風險承受能力 | 越小越好(絕對值) |
| 勝率 | 獲利穩定性 | 越高越好 |
| 資金使用率 | 策略活躍度 | 適中(避免極端) |
3.3 最佳參數選擇流程
步驟 1:計算各參數組合的訓練期績效
對於每個參數組合 $(L, P, N)$,計算其在訓練期的夏普比率:
其中 $S = 116$ 為股票數量,此為跨股票的平均夏普比率。
步驟 2:識別最佳參數組合
步驟 3:穩健性考量
若存在多個參數組合的績效接近(差異在 5% 以內),優先選擇:
- 較長的滾動窗口 L(更穩定)
- 中等的百分位數 P(避免極端)
- 常用的回看天數 N(如 N = 20)
3.4 處理績效高原(Performance Plateau)
在參數搜尋中,可能發現績效曲線呈現「高原」特性,即多個參數值產生相近的績效。此時的處理方式:
識別高原區間:
定義高原區間為績效達到最佳值 95% 以上的參數範圍:
選擇策略:
| 情境 | 選擇方式 | 理由 |
|---|---|---|
| 單一最佳點 | 選擇該點 | 明確的最佳解 |
| 窄高原(5 個值以內) | 選擇中點 | 穩健性考量 |
| 寬高原(5 個值以上) | 選擇保守端 | 避免過度擬合 |
範例:若 $P \in [8, 15]$ 皆產生接近最佳的績效,選擇 $P = 10$ 或 $P = 12$(中間值),而非 $P = 8$(極端值)。
四、多重比較校正
4.1 多重比較問題
搜尋 3,500 種參數組合涉及大量的隱含假說檢定。若不進行校正,可能因多重比較而產生「偽陽性」——即找到的「最佳」參數實際上是隨機產生的。
問題說明:
假設每個參數組合獨立進行假說檢定,顯著水準 $\alpha = 0.05$。在 3,500 次檢定中,期望的偽陽性數量為:
即使所有參數組合的真實效果相同,仍可能找到 175 個「顯著優於」其他的參數。
4.2 Benjamini-Hochberg 校正
本研究採用 Benjamini-Hochberg (BH) 方法控制錯誤發現率(False Discovery Rate, FDR):
BH 校正步驟:
- 將所有 p 值由小到大排序:$p_{(1)} \leq p_{(2)} \leq ... \leq p_{(m)}$
- 計算校正後的 p 值:$p_{(i)}^{\text{adj}} = p_{(i)} \times \frac{m}{i}$
- 調整後的 p 值需單調遞增,若 $p_{(i)}^{\text{adj}} > p_{(i+1)}^{\text{adj}}$,則令 $p_{(i)}^{\text{adj}} = p_{(i+1)}^{\text{adj}}$
FDR 控制目標:
本研究設定 $q = 0.10$,即容許最多 10% 的「顯著」結果為偽陽性。
4.3 Bootstrap 信賴區間
為進一步驗證最佳參數的穩健性,本研究使用 Bootstrap 方法估計績效指標的信賴區間:
Bootstrap 程序:
- 從原始績效資料中進行有放回抽樣
- 重複 $B = 10,000$ 次
- 計算 2.5% 與 97.5% 分位數作為 95% 信賴區間
Bootstrap 信賴區間的應用:
- 參數選擇的穩健性:若最佳參數與次佳參數的信賴區間重疊,需謹慎宣稱「最佳」
- 策略比較的顯著性:DROP 與 DCA 的績效差異是否顯著,需檢視信賴區間是否包含零
五、參數穩定性評估
5.1 穩定性的重要性
若最佳參數在不同年度間劇烈變動,則該參數組合可能僅是隨機噪音,缺乏實務應用價值。因此,評估參數的時間穩定性是驗證策略有效性的關鍵步驟。
5.2 穩定性指標
年度最佳參數序列:
百分位數 P 的變異係數(CV):
其中:
- $\mu_{P^*}$:年度最佳 P 值的平均數
- $\sigma_{P^*}$:年度最佳 P 值的標準差
穩定性判定標準:
| CV 範圍 | 穩定性評價 | 實務意涵 |
|---|---|---|
| CV < 0.2 | 高度穩定 | 可使用固定參數 |
| 0.2 ≤ CV < 0.3 | 中度穩定 | 建議使用區間而非單點 |
| CV ≥ 0.3 | 不穩定 | 需每年重新最佳化 |
5.3 穩定性分析方法
方法 1:年度最佳參數追蹤
繪製 2015-2024 年各年度的最佳 P 值,觀察其變動趨勢:
年度: 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 P*: 12 10 11 13 10 8 11 14 12 10
若 P* 在 8-14 之間波動,可認為參數具有中度穩定性。
方法 2:滾動窗口 L 的影響
分析不同 L 值下的 P* 穩定性:
- 短窗口(L = 1-2 年):P* 可能較不穩定,反映短期市場變化
- 長窗口(L = 7-10 年):P* 可能較穩定,但適應性較差
方法 3:分群穩定性
分別分析美股與台股、ETF 與個股的參數穩定性,檢驗是否存在市場或產品類型的差異。
5.4 穩定性與績效的權衡
參數穩定性與策略績效可能存在權衡:
| 情境 | 績效 | 穩定性 | 建議 |
|---|---|---|---|
| 高績效 + 高穩定 | 最佳 | 建議採用 | 理想情況 |
| 高績效 + 低穩定 | 次佳 | 謹慎採用 | 可能過度擬合 |
| 中績效 + 高穩定 | 可接受 | 建議採用 | 穩健選擇 |
| 低績效 + 低穩定 | 不佳 | 不建議採用 | 策略無效 |
本研究在報告最佳參數時,將同時呈現績效與穩定性指標,讓讀者能全面評估策略的可靠性。
六、最佳化結果的呈現方式
6.1 參數—績效熱力圖
以熱力圖呈現 P × N 的績效分布(固定某一 L 值):
- X 軸:百分位數 P(1-100)
- Y 軸:回看天數 N(5, 10, 20, 40, 60)
- 顏色:夏普比率(深色 = 高績效)
此圖可直觀呈現高績效區域與參數敏感度。
6.2 百分位數效果曲線
以折線圖呈現 P 值與平均夏普比率的關係(固定 L 與 N):
- X 軸:百分位數 P(1-100)
- Y 軸:平均夏普比率
- 預期形狀:先上升後下降,存在峰值 P*
此圖可識別:
- 最佳百分位數 P*
- 高原區間(若存在)
- 極端 P 值的績效衰減
6.3 年度最佳參數表
以表格呈現 Walk-Forward 驗證中各年度的最佳參數:
| 年度 | L* | P* | N* | 訓練期夏普 | 測試期夏普 |
|---|---|---|---|---|---|
| 2015 | 3 | 12 | 20 | 0.85 | 0.72 |
| 2016 | 3 | 10 | 20 | 0.78 | 0.65 |
| ... | ... | ... | ... | ... | ... |
此表可評估:
- 參數的年度穩定性
- 訓練期與測試期績效的差異(衡量過度擬合程度)
七、小結
本節說明了動態跌幅門檻策略的參數最佳化方法,主要內容包括:
- 搜尋空間設計:$L \times P \times N = 7 \times 100 \times 5 = 3,500$ 種參數組合,採用網格搜尋確保完整性與可重現性。
- Walk-Forward 驗證:滾動式的訓練—測試切分,10 個測試年度(2015-2024)提供樣本外驗證,有效避免前視偏誤與過度擬合。
- 最佳參數選擇:以夏普比率為主要指標,輔以年化報酬率、最大回檔等指標,並處理績效高原的情況。
- 多重比較校正:使用 Benjamini-Hochberg 方法控制錯誤發現率,Bootstrap 方法估計信賴區間。
- 穩定性評估:追蹤年度最佳參數的變異係數,評估參數的時間穩定性。
透過上述方法,本研究可在 3,500 種參數組合中,以嚴謹的統計方法識別出具有穩健績效的最佳參數組合,為第二階段的策略比較提供可靠的基礎。下一節將說明本研究採用的績效評估指標。