80 場實驗、4 次 Codex 把關之後:我們對波動率投資的三件確定事與三個慘痛錯誤
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
80 場實驗、4 次 Codex 把關之後:我們對波動率投資的三件確定事與三個慘痛錯誤
一、為什麼這篇文章值得花十分鐘讀?
過去這段研究週期,我們連續跑了 79 個編號 K621–K699 的實驗 (加上 K700 本篇共 80 場),主題全都圍繞同一件事: 有沒有辦法用 VIX 訊號或波動率目標(Volatility Targeting, VT)策略,做出比「買進並持有 50% SPY + 50% GLD」更聰明的資產配置?
如果你只看其中一兩個實驗的結果,你會以為我們找到了金山——有些策略的歷史風險調整後報酬(Sharpe-like 指標)一度衝到 1.68,年化報酬看起來打趴所有 baseline。
但等到 Codex(OpenAI 的程式碼審查 AI)逐行審完我們的程式,並要求我們把 訊號的時間序對齊(lookahead 修正) 重新跑一次以後,那些「突破」全數消失。
K700 是這 80 個實驗的結算文。它不是又一個尋寶故事,它是一份 研究誠實報告 :我們真的學到了什麼、我們犯了什麼錯、我們現在敢對讀者承諾什麼。如果你正在用波動率類策略做配置,或正在看一些文章宣稱「VIX 訊號可以打敗市場」,這篇文章對你會非常實用。
二、三件「我們敢公開背書」的確定事
歷經 4 次 Codex 嚴格審查、3 次推翻自己舊結論,下面這三件事是整段研究裡 通過所有修正、所有跨期外樣本(cross-OOS)驗證、且仍站得住腳 的結論。
確定 1:VIX 預測「波動量級」可以,預測「方向」沒辦法
| 衡量項目 | 數值 | 解讀 |
|---|---|---|
| VIX 與未來波動量級的相關係數 | 0.57 | 中度正相關 |
| VIX 與未來市場方向的相關係數 | 0.04 | 等於沒有 |
| 最佳方向預測模型(隨機森林)AUC | 0.6134 | 模型準確率 59.96% vs naive「永遠預測下跌」準確率 56.37%;差距接近 noise |
白話 :VIX 告訴你 市場將會晃多大 ,但不告訴你 會往哪邊晃 。這也解釋了為什麼 VT 策略在「風險管理」這一面有用(量級預測足夠了),在「擇時做多空」這一面卻幾乎沒有經濟價值。任何宣稱「VIX 高就放空、VIX 低就做多」可以系統性賺錢的人,請他拿出修正過 lookahead 的程式碼來。(來源:實驗 K626)
確定 2:最簡單的「50/50 SPY/GLD 買進並持有」風險調整後報酬最高
| 策略 | 風險調整後報酬(lag 修正後) | 年化報酬 | 最大回檔 |
|---|---|---|---|
| Buy-and-Hold 50/50 SPY/GLD | 0.545 | 11.10% | -32.49% |
| EWMA VT(lambda=0.94) | 0.525 | 9.32% | -17.03% |
| 12/VIX 倒數權重 | 0.438 | — | — |
EWMA VT 對 BH 的兩模型比較 未達 5% 顯著水準 (bootstrap p=0.096),12/VIX 對 BH 則是 BH 顯著贏 (p=0.005)。所有候選策略也都通不過嚴格統計檢驗門檻(統計強度>3.0)。
換句話說: 修正了訊號落後一天的 bug 後,沒有任何 VT 策略的風險調整後報酬贏得了 BH 50/50。 過去看到的「VT alpha」幾乎都是 lookahead bias 造成的假象。(來源:實驗 K687)
確定 3:但是!VT 在「對風險厭惡的人」眼中,仍然贏得壓倒性
如果你是高度風險厭惡的投資人(CRRA 效用函數的 gamma ≥ 5),故事就完全反過來:
| 風險厭惡程度 gamma | EWMA VT 確定當量年化 | BH 50/50 確定當量年化 | VT 領先 |
|---|---|---|---|
| 5 | 7.17% | 6.98% | +0.19pp |
| 10 | 4.17% | 1.97% | +2.20pp |
| 20 | -1.72% | -7.75% | +6.03pp |
而且最大回檔對比:
- BH 50/50: -32.49%
- EWMA VT: -17.03%
- 回檔減少: -47.6% (接近一半)
Calmar 比率(年化報酬 / 最大回檔)也從 0.342 改善到 0.547, 改善 59.9% 。
白話 :VT 不是 alpha 製造機,它是「 回檔保險 」。它每年大約犧牲 1.78 個百分點的報酬(11.1% 降到 9.32%),換來最大回檔砍半。這份保險對於「會在 -30% 砍倉的人」極度划算;對於「鋼鐵心臟、長期不看盤」的人就是浪費保費。(來源:實驗 K688)
三、三個慘痛錯誤——以及 Codex 如何救了我們
錯誤 1:VIX 百分位「突破」根本是 100% 同日資料外洩
最初宣稱 :
- 風險調整後報酬 1.68
- 年化報酬 15.39%
- 統計強度 統計強度 3.375,吊打 12/VIX
Codex 抓出的三個 bug :
- 同日 VIX 進策略訊號 ——應該用前一天 VIX_{t-1}
- 用了錯誤的兩模型比較統計檢定 (paired t-test 而不是 HAC-adjusted 兩模型比較顯著)
- 計算滾動百分位時把當天 VIX 也含進視窗
修正後現實 :
- 風險調整後報酬 0.355(縮水 4.73 倍)
- 年化報酬 6.29%
- 兩模型比較未達顯著水準(達顯著水準(顯著性 0.229))
- 跨期外樣本只贏 1/5—— 和 noise 沒有區別
更慘的是,這個錯誤一路污染了 K680、K681、K682、K683、K684、K685 共 6 個追蹤研究 ,全部作廢。教訓: 任何 VIX 類策略只要風險調整後報酬看起來大於 1.0,先懷疑 lookahead,再來談突破。
錯誤 2:9,935 筆紙上交易紀錄全部含同日資料外洩
我們從 2022-01-01 開始的整個紙上交易系統,計算當日報酬時用的是 weight_T × return_{T-1 to T}—— 這代表我們是「先看到當天結果、再決定當天權重」 。正確公式是 weight_T × return_{T to T+1}。
| 修正影響 | 數字 |
|---|---|
| 修正紀錄數 | 9,935 筆 |
| 受影響策略數 | 12 支 |
| 平均風險調整後報酬下修 | -0.619 |
| 最慘案例(piecewise_conservative) | 從 3.158 降到 1.558(-1.6) |
| 最佳案例(vix_leading_guard) | 從 0.852 升到 0.892(+0.04,罕見反向) |
根因是 daily_update.py 一直用同日收盤價,2026-03-17 已經修掉。教訓: 永遠先問自己——這個權重 T 賺到的是 return_T 還是 return_{T+1}? (來源:實驗 K693)
錯誤 3:逆向 VT 的「alpha」其實是 baseline 算錯 + 交易成本低估
最初宣稱 :逆向 VT overlay 風險調整後報酬 0.878,比 BH 高 0.035;最佳化版本 0.941。
Codex 抓出的三個 bug :
- BH baseline 在不同子期間的計算方式不一致
- 高換手 overlay(每年換手 46 次)的交易成本嚴重低估
- 用全樣本最佳化的閾值(2%)和傾斜量(±30%)沒做外樣本驗證
修正後現實 :
- 跨期外樣本只贏 3/5(未達 4/5 通過門檻)
- 平均風險調整後報酬差距 0.013(基本上是 noise)
- 通不過嚴格統計檢驗門檻
教訓: 全樣本 0.035 的 Sharpe 改善是 noise,不是 signal。永遠要做跨期外樣本驗證。 (來源:實驗 K698→K699)
四、典範轉移:VT 不是賺超額報酬,是買保險
這 80 個實驗最大的收穫,不是發現了什麼新策略,而是把 整個 VT 領域的行銷敘事 徹底改寫:
| 階段 | 說法 | 證據 |
|---|---|---|
| 過去 | 「VT 用聰明的 VIX 訊號做配置可以打敗 BH」 | 多個實驗顯示 Sharpe > 1.0——但全是 lookahead artifact |
| 現在 | 「VT 是回檔保險,不是 alpha 引擎」 | BH 0.545 > EWMA VT 0.525 > 12/VIX 0.438;但 MDD -32.5% → -17.0%;對 gamma≥5 投資人勝出 |
對實務工作者的建議很直接:
- 不要再用「alpha」行銷 VT 策略 ——它誠實地說會稍微降低報酬
- 改用「保險」框架 ——投資人每年付 1-2% 換取睡得著覺
- EWMA VT(lambda=0.94)是最 lag-robust 的版本 ,權重自相關 0.99,落後一天幾乎沒差
- gamma < 5 的人請直接 BH 50/50 ,這就是字面上更好
- gamma ≥ 5 的人,VT 的效用優勢隨風險厭惡度增加
五、四種投資人,四套行動方案
| 投資人類型 | 推薦策略 | 風險調整後報酬 | 年化報酬 | 最大回檔 |
|---|---|---|---|---|
| 被動長期投資人 | BH 50/50 SPY/GLD,年度再平衡 | 0.545 | 11.10% | -32.49% |
| 風險厭惡型(gamma≥5) | EWMA VT(lambda=0.94-0.98)on 50/50,目標波動 10% | 0.525 | 9.32% | -17.03% |
| 月定期定額 | 平常定額;VIX > 30 時加碼 4% | 終值改善 +4.4% | — | — |
| 台股投資人 | 月再平衡 50/50 0050.TW + GLD,用 VIX_{t-1} 訊號 | 1.29(淨額) | 8.92% | -10.56% |
台股那組數字看起來特別漂亮的原因之一:台灣交易時段晚於美國, 用昨天的美股 VIX 是天然 lag ,沒有 lookahead 風險。再加上台股波動放大係數約 4.6 倍,VT 的保險價值在台灣比在美國更顯著。(來源:K633、K636、K669)
六、最大的元教訓:每個 positive result 都需要「對抗式」程式碼審查
整段研究 4 次 Codex code review, 4 次都抓到關鍵 bug :
| 審查 | 受審實驗 | 抓到的關鍵問題 | 衝擊 |
|---|---|---|---|
| 1 | K618 KAN 波動率模型 | 啟動函數錯誤、資料前處理 bug | 從「有希望」變「實作正確但無改善」 |
| 2 | K621 MF2-GARCH | 元件分解公式錯、optimizer 收斂被預設值掩蓋 | 從「新貢獻」變「正確但僅 modest improvement」 |
| 3 | K679 VIX 百分位 | 同日 VIX、錯誤檢定、視窗包含當日 | 風險調整後報酬從 1.68 變 0.355 |
| 4 | K698 逆向 VT | BH 計算不一致、TX 成本低估、樣本內 overfitting | 從「邊際 alpha」變「rejected」 |
如果沒有 Codex 審查,我們會公開發布 3 個假突破。 估計的 false positive 率:37.5% 。
這也是為什麼這個研究系統的硬規則是: 每個 positive result,發布前一定要過對抗式 code review 。作者抓不到的 systematic bias、subtle data leak、統計檢定誤用,外部審查者抓得到。
七、我們敢承諾的、和我們不敢承諾的
我們敢承諾的 :
- 上面三件確定事(VIX 預測量級、BH 50/50 風險調整後報酬最高、VT 是 gamma≥5 投資人的 drawdown insurance)通過了 lag 修正、跨期外樣本、Codex 審查三道關卡。
- 上面四種投資人的對應策略,數字都來自修正後的實驗,不是 marketing material。
我們不敢承諾的 :
- 任何宣稱風險調整後報酬遠高於 0.6 的策略,請假設它有 bug,直到它被獨立審查為止。
- 全樣本最佳化的閾值參數(百分位門檻、傾斜量、波動目標水準)幾乎一定 overfit;請只信跨期外樣本贏 4/5 以上的設定。
- 同日 VIX 訊號(包含「VIX 收盤後到下一個交易日開盤前」的版本,如果沒明確說明 lag 邏輯)一律當作疑似 lookahead 處理。
八、結論:Null result 也是結果
這篇文章寫起來其實有點難堪——80 個實驗、3 個原以為的「突破」全被推翻、9,935 筆歷史紀錄全部重算。但研究誠實的價值就在這裡: 承認 null result,比宣稱假 alpha 更有價值 。
如果你之前看過我們宣傳「VIX 百分位策略 Sharpe 1.68」相關的內容(如果有的話),請以本篇修正版為準,前面的數字是 lookahead artifact。我們也已經把對應的舊文章與紙上交易績效全部回溯重算。
研究北極星不變:把波動率與相關交易策略,做成學術與實務上最值得信任的平台。 這代表我們會持續發 null result、持續推翻自己、持續讓 Codex 戳我們的程式。讀者真正需要的不是「又一個 Sharpe 1.68 的策略」,而是「我可以放心參考、不會被誤導」的研究。
資料來源
- 核心實驗檔案 :
experiments/k700/k700_results.json、experiments/k700/k700_final_truth.py - 關鍵原始實驗 :K626(VIX 方向預測)、K687(修正後最終排序)、K688(CRRA 效用)、K690(lag robustness)、K693(9935 筆紙上交易修正)、K698→K699(逆向 VT 跨期外樣本拒絕)
- 底層市場資料 :yfinance(SPY、GLD、0050.TW)、FRED(VIX 收盤序列)、TAIFEX(台指期 tick),資料期間 2006-01-01 至 2026-03-27
- Codex 審查紀錄 :4 輪審查涵蓋 K618、K621、K679、K698;防止 3 個假突破被發布
- 方法論文獻 :
- Harvey, Liu & Zhu (2016), ...and the Cross-Section of Expected Returns, Review of Financial Studies(嚴格統計檢驗門檻 統計強度>3.0)
- Diebold & Mariano (1995), Comparing Predictive Accuracy(兩模型比較檢定)
- Copeland & Copeland (1999), Market Timing with VIX(VIX 配置策略 baseline)
- 實驗範圍 :K621–K699(79 個實驗)+ K700(本篇結算)
詳情
- experiment_refs
- K700
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊