週頻也救不了 Return 預測 — 514 週測試後,5 個模型全敗給歷史平均
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
週頻也救不了 Return 預測 — 514 週測試後,5 個模型全敗給歷史平均
實驗 K948|SPY 2016—2026 OOS|514 個非重疊週樣本
摘要
K924 已確認 SPY 日頻報酬不可預測。K948 把預測窗口拉長到一週(5 日累積對數報酬),用 OLS、Ridge、LASSO、Random Forest 加 8 個特徵跑 2016—2026 樣本外測試。結果:4/5 個模型 OOS R² 為負,Random Forest 雖達 +0.0097,但 Diebold-Mariano 檢定 t = -1.06,遠低於 Harvey(2016)所要求的 3.0 門檻,統計上無法拒絕「與歷史平均等同」的虛無假說。週頻沒有救起報酬的不可預測性。
研究背景
Welch & Goyal(2008, Review of Financial Studies)系統性地驗證了數十個「應該有用」的預測變數,在樣本外全數失敗。這個結論距今近 20 年,常被認為只適用於日頻或月頻。K943 先前發現波動率在週頻(h=5)的預測能力確實優於日頻,OOS 改善幅度達 +18.4%。波動率可以,報酬呢?
K948 的起點就是這個問題。
方法與數據
| 項目 | 設定 |
|---|---|
| 標的 | SPY(yfinance,2004-01-05 ~ 2026-03-31) |
| 預測目標 | 5 日累積對數報酬(非重疊週) |
| OOS 期間 | 2016-01-05 ~ 2026-03-19(514 週) |
| 特徵(滯後 1 日) | log(VIX)、VIX 5 日變化、20 日動能、5 日動能、VIX/VIX_MA20 比值、GARCH(1,1) 條件變異數、5 日已實現波動率、TLT 5 日報酬 |
| 模型 | OLS、Ridge、LASSO、Random Forest、歷史平均(基準) |
| 協議 | 擴展窗口,每 ~21 交易日重訓,特徵標準化 |
| 交易成本 | 10 bps |
| 統計門檻 | Harvey(2016)Harvey-Liu-Zhu |t| > 3.0 |
核心發現
OOS R² — 全線負值
| 模型 | OOS R² | 方向準確率 | Sharpe (net) | DM t-stat | p-value |
|---|---|---|---|---|---|
| OLS | -0.0157 | 53.9% | 0.496 | 0.53 | 0.596 |
| Ridge | -0.0155 | 53.5% | 0.413 | 0.52 | 0.600 |
| LASSO | -0.0129 | 57.2% | 0.663 | 0.54 | 0.590 |
| Random Forest | +0.0097 | 60.9% | 0.988 | -1.06 | 0.289 |
| 歷史平均(基準) | 0.000 | 61.9% | 0.810 | — | — |
線性三模型(OLS、Ridge、LASSO)OOS R² 皆為負,代表它們的預測誤差比「每週報酬都猜歷史平均值」還要大。把窗口從 1 日拉長到 5 日,沒有讓線性模型好過基準。
Random Forest 是唯一 OOS R² 轉正的模型,達 +0.0097。但 DM 檢定 t = -1.06,p = 0.289,離顯著邊界尚遠。
Random Forest 的 Sharpe 看起來很好,但背後是什麼
RF 的樣本外 Sharpe(net of TC)達 0.988,表面上高於買進持有的 0.810。
問題在於策略本身的組成:
- 514 週中,RF 只做了 31 筆交易 (交易頻率 6%)
- 其中 96.7% 的時間是多頭持倉
也就是說,RF 幾乎全程做多,僅在少數週出場或放空。這與策略「準確預測週報酬方向」是兩回事。OOS 期間 SPY 週報酬有 61.9% 為正,RF 的 60.9% 方向準確率低於這個基準。換句話說,RF 預測方向的能力甚至不如「永遠猜漲」。
Sharpe 稍高的來源,是那 31 次中偶然踩中幾次大跌出場,而非系統性的方向預測。這屬於低樣本數的碰運氣,不是可重複利用的 edge。
方向準確率,沒有一個模型打贏「永遠看多」
OOS 期間有 62% 的週數 SPY 收漲。歷史平均基準(每週預測歷史均值,永遠看多)的方向準確率是 61.9%。
RF 的方向準確率 60.9% 低於此基準。OLS、Ridge 更低,分別是 53.9% 和 53.5%。LASSO 57.2% 介於中間。沒有模型在方向判斷上優於「全程做多」的策略。
與波動率預測的對比
這個結果呼應 K943 的一個重要區別:
波動率序列具有顯著的自相關性(AC(1) 約 0.4 量級),過去一週波動率高,下一週也傾向偏高。這種持續性讓模型有東西可學。
報酬序列幾乎沒有自相關,AC(1) 接近零。VIX、動能、TLT 等外部訊號也無法捕捉到可靠的線性或非線性規律。K943 看到的週頻改善,停留在波動率本身的可預測性,沒有延伸到報酬。
這個非對稱性,波動率可預測、報酬不可預測,正是 VolPred 平台策略選擇的立足點。波動率目標化(Volatility Targeting,VT)用預測到的波動率調整倉位規模,不依賴報酬方向預測。回測顯示 VT 策略改善風險調整後報酬的機制:低波動期承擔正常風險、高波動期主動降低曝險,完全繞開方向擇時。
限制
- 單一標的(SPY),結論不直接推廣到其他市場或資產類型。
- 特徵集僅涵蓋 VIX 系列、動能、已實現波動率、TLT,未包含另類資料或深度學習架構。
- OOS 期間(2016—2026)以多頭市場為主,高波動事件(COVID 2020、2022 加息)有限,可能低估線性模型在熊市的表現。
- 非線性或更複雜的機器學習模型(如 Transformer、GBM、Conformal Prediction)可能在特定子期間表現不同,但超出本實驗範疇。
結論
514 個樣本外週,5 個模型,結果一致:SPY 週頻報酬不可預測,無法統計上優於歷史平均。Welch & Goyal(2008)的發現在近 20 年後、在週頻窗口下仍然成立。把預測窗口從日頻拉長到週頻,對線性模型沒有幫助,對隨機森林的幫助也未達任何合理顯著水準。
波動率可以預測,報酬目前無法。這個差距,說明了為什麼波動率目標化策略有現實意義,而報酬方向擇時大多是雜訊。
本文基於實驗 K948(腳本:experiments/k948/k948.py,結果:experiments/k948/k948_results.json)。數據來源:yfinance(SPY、^VIX、TLT),OOS 期間 2016-01-05 ~ 2026-03-19,514 個非重疊週樣本。[提出:Claude,執行:Claude]
詳情
- 資料來源
- yfinance (SPY, VIX, TLT)
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊