我們曾有個 Sharpe 1.68 的「突破」,但它是假的:71 個波動率實驗的誠實報告
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
我們曾有個 Sharpe 1.68 的「突破」,但它是假的
幾個月前,我們的實驗日誌裡出現了一個數字:Sharpe 1.68。
那是 K679 的結果,一個根據 VIX 百分位數決定股票倉位的策略。同期的 BH 50/50(持有一半 SPY、一半黃金)只有 0.54。這個差距大到不像真的。通常 Sharpe 高成這樣,第一個反應應該是「這裡面有問題」,而不是「我們找到了什麼」。
我們確實懷疑過。但有一段時間,我們把那個數字當成研究進展繼續往前走,直到 Codex 在代碼審查時把問題抓出來:signal 沒有用 shift(1) 延遲一天。策略在用「今天的 VIX 決定今天的倉位」,而非「用昨天的 VIX 決定今天的倉位」。前者在真實世界不可能執行,因為收盤訊號和交易執行在同一秒鐘。
修正之後,那個策略的真實 Sharpe 是 0.355。從 1.68 掉到 0.355,相差四倍多。
這件事發生在一個更大的框架裡:K621 到 K690,我們跑了 71 個實驗,花了幾個月時間。這篇文章是這 71 個實驗的整理,但重點不在數字本身。重點在於,我們怎麼犯錯、怎麼發現錯誤、修正之後學到什麼。
71 個實驗的全貌
先看整體分布:

71 個實驗,結果如下:
- 48 個(69%)有正面發現,方向大致確認
- 15 個(21%)是 null result,沒有顯著差異
- 8 個(11%)推翻了我們自己之前的結論
最後那個數字(8 個推翻自己)是這份紀錄裡我最不想跳過的部分。
推翻自己的代價是什麼
8 個推翻自己的實驗,不代表做了 8 次無用功。它代表 8 次「研究機制真的在運作」。每一次推翻,都表示我們在某個地方下了一個判斷,後來有更嚴謹的方法或更完整的資料把那個判斷推翻了。這比「從來不修正」更接近科學本來的樣子。
其中最大的一次推翻,就是前瞻偏誤。
方法論教訓一:前瞻偏誤是最隱蔽的威脅
前瞻偏誤(lookahead bias)的意思很簡單:策略在做決定時,用到了「那個時間點本來不可能知道」的資訊。
在 K679 這個例子裡,問題出在訊號的時間點。VIX Percentile 策略的邏輯是:當 VIX 處於過去一段時間的高百分位數,代表市場恐慌,此時降低倉位保守應對。這個邏輯本身沒錯。問題是代碼裡,計算 VIX 百分位數和決定倉位的步驟,都發生在同一天,沒有隔一天的緩衝。
這讓策略無意間「知道」了收盤時的 VIX 值,並用它來交易同一天的收盤價。現實中,你只能在收盤後才知道收盤 VIX,但那時候當天的交易已經結束了。
修正版本(K686)在訊號後面加一行 signal.shift(1),強制所有策略「用昨天的資訊決定今天的倉位」。修正後的 VIX Percentile Sharpe 從 1.68 跌至 0.355。
更麻煩的是,這個 bug 不只出現在一個實驗裡。它在不同形式下污染了 K679 到 K685 的多個實驗結果。當時這些實驗的結論,全部要重新評估。
方法論教訓二:代碼審查不是可選項
前瞻偏誤是被 Codex 代碼審查發現的,不是我們自己看圖看出來的。
這 71 個實驗的週期裡,Codex 審查共阻止了 3 次錯誤結論:
- 第一次:VIX Percentile 的
shift(1)問題(K679 系列) - 第二次:KAN 神經網路實作的 bug(K618/K619)
- 第三次:MF2-GARCH 估計流程的問題(K621/K623)
這三次,如果沒有審查,對應的錯誤結論都有可能被寫進文章裡。
研究做完就直接發表,是學術界和財金媒體最常見的失誤之一。同行審查制度存在的理由,就是因為人不可能看見自己的盲點。在我們的系統裡,Codex 扮演的是那個「不跟你有任何情感依附」的審查者,它沒有理由對你的實驗結果客氣。
修正之後的真實排名
K687 是修正所有已知 bug 之後、重跑所有策略的完整排名。資料期間 2007 年 1 月至 2026 年 3 月,N=4838 交易日,每次交易加計 5bp 手續費。
| 策略 | Sharpe | 年化報酬 | 最大回撤 |
|---|---|---|---|
| BH 50/50 SPY/GLD | 0.545 | 11.1% | -32.49% |
| EWMA VT (λ=0.94) | 0.525 | 9.32% | -17.03% |
| 12/VIX(上限 1.5) | 0.438 | 7.32% | -12.21% |
| BH SPY | 0.390 | 10.24% | -55.19% |
| P3-AGG | 0.377 | 6.13% | -8.38% |
| VIX Percentile(修正後) | 0.355 | 6.29% | -11.82% |
最終答案:修正前瞻偏誤之後,沒有任何 VT 策略的 Sharpe 超過 BH 50/50。
BH 50/50 SPY/GLD 的 Sharpe 0.545,用嚴格統計比較檢定(N=4838 交易日)測試,EWMA VT(Sharpe 0.525)與它的差距未達統計顯著,無法排除兩者實際表現相同的可能性。
這不是說 VT 策略沒有價值。這是說,「Sharpe 更高」不是 VT 的優勢所在。
那 VT 策略的真正優勢在哪裡?
K688 用另一個框架重新問這個問題:如果改用 CRRA 效用函數(一個考慮「損失比獲利更痛」的投資人效用模型),哪個策略對哪種投資人最好?
CRRA 效用的關鍵參數是風險厭惡係數 γ。γ=1 代表「損失和獲利對我同樣重要」,γ=10 代表「我對損失的厭惡程度大約是同等獲利的十倍」。大多數人的行為研究估計,真實個人投資者的 γ 大約在 2 到 10 之間。
結果如下(CE 是確定性當量,把投資報酬換算成「你願意接受多少保證年報酬來替代這個策略」的數字):
| γ | EWMA VT CE | BH 50/50 CE | 差值 | 誰贏 |
|---|---|---|---|---|
| 1 | 9.60% | 11.10% | -1.50% | BH 50/50 |
| 3 | 8.38% | 9.02% | -0.64% | BH 50/50 |
| 5 | 7.17% | 6.98% | +0.19% | EWMA VT |
| 7 | 5.96% | 4.96% | +1.00% | EWMA VT |
| 10 | 4.17% | 1.97% | +2.20% | EWMA VT |
| 20 | -1.72% | -7.75% | +6.03% | EWMA VT |
交叉點在 γ=5。從這個數字開始,EWMA VT 給高風險厭惡投資人帶來的效用高於 BH 50/50,差距隨 γ 增大而放大。
這背後有直觀的解釋:EWMA VT 的最大回撤是 -17.03%,BH 50/50 是 -32.49%,減少了 44.5%。對一個 γ 高的投資人來說,少跌那一半,比多賺一點回報更重要。
方法論教訓三:簡單方法往往比複雜方法更穩
這 71 個實驗還有一個沒有正式命名、但反覆出現的模式:越複雜的方法,越難通過跨期間驗證。
EWMA VT(λ=0.94)是 1996 年 RiskMetrics 技術文件裡的方法,現在都已經快 30 歲了。它在五個不同子期間(GFC、復甦期、低波動期、COVID、升息後)裡,表現始終是 VT 族裡最穩定的那一個。不是每個子期間都贏 BH 50/50,但它的輸法也比較平均、不會出現某一個期間崩掉的狀況。
KAN 神經網路、多因子 GARCH、Rolling Percentile Regime,這些在統計課本上看起來更先進的方法,在實際跑出代碼審查和跨期間驗證之後,沒有一個的結果能穩健地優於 EWMA。它們的問題不一定是理論上錯,而是在實際資料面前,參數越多、結構越複雜,就越容易在一個期間裡過度擬合、在另一個期間裡表現不一致。
Fear DCA 策略在恐懼時期(VIX 高於閾值)加碼投入,比固定每月定期定額多了大約 4% 的累積報酬。這也是用很直觀、無需複雜建模的邏輯實作的。
5 個存活下來的結論
經過審查、修正和跨期間驗證,以下結論是這 71 個實驗後我們認為站得住腳的:
-
Sharpe 上 VT 輸給 BH 50/50 :修正前瞻偏誤後,沒有 VT 策略的 Sharpe 超過 BH 50/50 SPY/GLD。這是 K687 的核心結論。
-
VT 對高風險厭惡投資人有效用優勢 :γ≥5 的投資人,EWMA VT 的確定性當量超過 BH 50/50,差距隨 γ 增大(K688 結論)。
-
EWMA(0.94) 是最穩健的 VT 規格 :在 5 個子期間的跨期間驗證裡,EWMA VT 的表現比其他 VT 策略更一致(K687 Cross-OOS 結論)。
-
Fear DCA 比固定定期定額多 4% :在 VIX 高於長期中位數時加碼投入,長期累積報酬高於固定月投。
-
固定窗口比滾動窗口穩定 :GARCH 相關實驗顯示,固定窗口的估計結果比滾動窗口的跨期間波動更小。
根據你的 γ,選對應的策略
如果你是個一般投資人,不太確定自己的 γ:
-
一般投資人(損失讓你不舒服,但你不會因為跌了 10% 就賣光)→ BH 50/50 SPY/GLD ,長期持有,不用看 VIX,不用調整。
-
高風險厭惡(跌 20% 讓你幾乎無法接受,你會失眠)→ EWMA VT ,根據當下波動率自動縮減倉位,降低最大回撤代價是少一些長期報酬。
-
極高風險厭惡(損失帶來的痛苦遠遠超過同等獲利的喜悅,γ 估計在 10 以上)→ P3-AGG ,更保守的配置框架,MDD 壓在 -8.38%。
這份框架不是「哪個策略更好」的問題。它是「你在乎什麼」的問題。
誠實研究的意義
回到最開始那個 Sharpe 1.68 的例子。
如果我們當時直接相信那個數字,寫了一篇「VIX Percentile 策略年化 Sharpe 達 1.68,打破買持策略」的文章,會發生什麼?
會有一段時間,文章看起來很不錯。它可能會被轉分享。但它是假的。任何在真實市場執行這個策略的人,都會得到 Sharpe 0.355,而不是 1.68。
我們建平台的根據是:讀者和我們長期的信任,比一篇好看的數字更重要。這不是道德課,是商業邏輯。平台的長期價值建立在「這裡的數字是可信的」這個認知上。一旦讀者發現有個 Sharpe 是假的,他沒有理由相信其他數字。
71 個實驗、8 次推翻自己、3 次 Codex 審查擋下的錯誤。這份記錄的價值不在那 48 個正面結果,而在那些被修正過的地方。
數據來源 :K687/K688/K691,yfinance,2007–2026,N=4838 交易日。所有策略含 5bp 單邊手續費。原始實驗文件:experiments/k687/、experiments/k688/。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊