用台股金融四雄組「金融壓力指標」,能比 VIX 更早看到風暴嗎?
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
用台股金融四雄組「金融壓力指標」,能比 VIX 更早看到風暴嗎?
一句話結論
把四檔台股金融類股(國泰金、富邦金、中信金、兆豐金)的波動率、最大回撤、動能合成一個「金融壓力指標 FSI」之後, 這個指標確實對 0050 的隔日波動率有「VIX 給不出來的額外預測力」,做為早期警訊看雷達也有合格的辨識能力 ;但若把這個指標 直接拿去當交易訊號去調倉位 ,跨期間的測試結果就遠沒有那麼漂亮—— 核心結論成立的是「FSI 是有訊息的預測變數」,而不是「FSI 是穩健的賺錢策略」 。
換成更白話的版本:FSI 像是一支體溫計,它確實量到了單看 VIX 量不到的局部熱度;但你拿這支體溫計去開藥(直接調倉位),藥效在不同年份差異很大,沒辦法給出乾淨的「一定有用」結論。
為什麼要研究這個?
過去這個研究系列在 K757 / K757b 已經做過一個有意思的觀察: 台股金融類股的波動率,會「領先」整個大盤(包含台積電在內)的波動率 。當時用 Granger 因果檢定得到的 F 統計量是 6.11,反向則沒有對稱的領先關係。
這個結果其實在直覺上是合理的:
- 金融類股的資產負債表,本來就高度暴露在利率、信用、流動性風險上
- 當宏觀環境出現裂縫,金融股通常是最早反映的板塊之一
- 台股金融類股市值集中、資訊流通快,價格反映效率不差
但 K757 / K757b 只證明了「金融股波動率有領先性」這件事 在統計上存在 ,沒回答兩個更實用的問題:
- 能不能把這個領先性「打包成一個可用的指標」 ?也就是把多檔金融股的訊息壓縮成單一變數,方便日後做風險監控。
- 這個指標和大家熟悉的 VIX 比,是補位還是疊床架屋 ?如果 VIX 已經告訴你的事,FSI 只是再說一次,那它就沒有獨立價值。
K887 就是要把這兩題一次回答清楚。
怎麼做?方法論的白話版
步驟一:構造 FSI(Financial Stress Index)
挑了四檔台股金融類股當作金融部門的代表:
- 2881.TW(富邦金)
- 2882.TW(國泰金)
- 2891.TW(中信金)
- 2886.TW(兆豐金)
每檔股票算三個面向的壓力訊號:
- 波動率 :滾動 21 日的已實現波動率
- 最大回撤 :滾動 60 日的高點到當前的回撤幅度
- 動能反向 :滾動 21 日的累積報酬,取負號(跌得越多壓力越高)
然後對每檔股票的這三個量做 z-score 標準化、平均,再把四檔的平均值再平均一次,得到單一序列 FSI。 整個構造刻意保持簡單 :等權、不做最佳化、不做迴歸選變數,這是為了避免事後調參偽造出來的好看結果。
最後 FSI 的描述統計:均值 0.0051、標準差 0.765、偏態 1.73、峰態 4.73、最小值 -1.52、最大值 5.05。 右偏 + 厚尾 ,符合「金融壓力是一個少數時候會大幅飆高」的直覺。ADF 平穩性檢定 p 值為 0, 指標本身是平穩的 ,可以拿來當預測變數。
步驟二:FSI 對 0050 波動率有沒有 VIX 給不出來的獨立預測力?
這一段是整篇實驗的核心。做法是 三階段套娃迴歸 :
- 基準模型 :只用 VIX 預測下一日 0050 已實現波動率,R² = 0.305
- 加入 FSI :再把 FSI 放進去,R² 提升到 0.434 ,新增的解釋力 ΔR² = 0.129
- 再加入 FSI 自己的波動率(FSI_vol) :R² 一路推到 0.517 ,總共比純 VIX 多解釋了 21.2 個百分點
控制 VIX 之後, FSI 對 0050 波動率的偏相關係數是 0.43,統計強度極高,達顯著水準 ——換句話說,VIX 抽掉之後,FSI 還剩下將近一半的相關性,這不是「重複資訊」,是真的補上了 VIX 看不到的局部訊號。
步驟三:分波動率區間,FSI 在哪一段最有用?
這一步很關鍵,因為「平均效果」常常掩蓋掉「在不同市場環境下效果差很多」的事實。把樣本依當期 VIX 區間切成低、中、高三段:
| VIX 區間 | 樣本數 | 純 VIX R² | VIX+FSI R² | FSI 增量 R² |
|---|---|---|---|---|
| 低(VIX < 20) | 2,747 | 0.119 | 0.268 | +0.149 |
| 中(20-25) | 603 | 0.030 | 0.241 | +0.211 |
| 高(VIX > 25) | 538 | 0.160 | 0.394 | +0.234 |
三個區間 FSI 都顯著且都有額外貢獻 ,但 越是高 VIX 環境,FSI 的增量幫助越大 。這個發現本身就有實務意義:
- 在「市場已經慌了」的時候,VIX 反而變得 比較鈍 ——大家都看著 VIX,所以 VIX 已經把該反映的反映完
- 此時市場內部的「壓力分佈不均」,這份不均會在金融股裡先漏出來
- FSI 的補位價值, 正好出現在風控人員最需要更精準訊號的時候
步驟四:樣本外(OOS)一致嗎?
只看樣本內 R² 容易高估模型, 樣本外才是真本事 。用滾動式樣本外設計(IS=504 天、OOS=3,383 天)測:
- 純 VIX OOS R² = 0.275
- VIX+FSI OOS R² = 0.404
- MSE 改善幅度 = 17.83%
兩模型比較顯著,達顯著水準(DM 統計強度 8.92)。 FSI 的增量預測力撐得起樣本外測試 ,這部分結論是 穩健的 。
步驟五:當作「波動率突發」的雷達訊號
用 ROC-AUC 評估「指標夠不夠用來預警」。定義「波動率異常事件」為 0050 報酬絕對值超過滾動 2σ:
- 純 FSI 預警 AUC = 0.704
- 純 VIX 預警 AUC = 0.643
- 兩者合體(邏輯回歸) AUC = 0.706
AUC 0.7 在分類任務裡屬於「中等可用」,不到 medical-grade 的 0.85+,但 明顯優於隨機 。 FSI 單獨的 AUC 已經高於 VIX ;不過把兩者合體得到的 0.706 跟單用 FSI 的 0.704 幾乎一樣, 意思是 FSI 把 VIX 該說的話大致都包進去了 ,至少在預警二元分類這個任務上是這樣。
步驟六:用 FSI 當風控旗標來調整 VT 策略
到這裡為止,FSI 作為「預測變數」和「風險雷達」的故事都很清楚。但研究最終要看的是: 這個指標若拿去做交易決策,會不會真的在風險調整後報酬上贏過不用它的版本?
設計三個比較對象(樣本期間 2011-04-19 到 2026-03-31,共 3,651 個交易日):
- Buy & Hold 0050 :年化波動率 18.31%,最大回撤 -33.8%,年化報酬 15.24%
- 8.63/VIX VT(baseline) :把每天的目標倉位設為 8.63 ÷ 昨天 VIX,超過 1.0 截斷
- VT + FSI 旗標 :在 VT 倉位之上,當 FSI 超過 P75 門檻時把倉位再砍 50%(或超過 P90 時砍 70%)
| 策略 | 風險調整後報酬 | 年化報酬 | 最大回撤 | Calmar | 年化波動率 |
|---|---|---|---|---|---|
| Buy & Hold 0050 | 0.87 | 15.24% | -33.8% | 0.45 | 18.31% |
| 8.63/VIX VT(baseline) | 1.29 | 11.11% | -13.1% | 0.85 | 8.44% |
| VT + FSI P75(-50%) | 1.32 | 10.11% | -10.3% | 0.98 | 7.49% |
| VT + FSI P90(-70%) | 1.21 | 9.83% | -11.6% | 0.85 | 8.01% |
乍看 P75 版本最佳。但這裡有兩個必須誠實面對的觀察:
觀察一:兩模型比較顯著沒過
VT vs VT+FSI P75 的兩模型比較統計強度只有 -1.70, 未達常規顯著水準 (雙尾 0.090,需要做嚴格統計檢驗門檻時更不夠)。也就是說: P75 版的 1.32 vs baseline 的 1.29,這個差距在統計上沒辦法把「真的有效」和「運氣」分開 。
P90 版的兩模型比較看起來達顯著水準(雙尾 0.0085),但 它顯著的方向是「比 baseline 差」 ——剎車剎太兇,把上漲的肉也砍掉了。這顯著不是好消息。
觀察二:跨期間結果不穩定
把 15 年樣本切成兩個各 5 年的不重疊期間:
| 期間 | baseline 風險調整後報酬 | VT+FSI 風險調整後報酬 | 兩模型比較 p |
|---|---|---|---|
| 2011-04 ~ 2018-09 | 1.01 | 0.99 | 0.18 |
| 2018-09 ~ 2026-03 | 1.55 | 1.62 | 0.27 |
第一個 5 年,FSI 旗標讓策略稍微變差 (雖然 MDD 從 -13.1% 降到 -10.2%,但風險調整後報酬下降)。 第二個 5 年,FSI 旗標稍微讓策略變好 。但兩個期間 都沒有達顯著水準 。
這就是「跨期間穩健性」的硬考驗—— 全期看起來有效的策略,可能只是因為某一段期間特別合拍,平均下來還算正而已 。FSI 旗標的策略增益不是穩定可重複的。
該怎麼解讀這個結果?
我刻意不在前面用「FSI 是新一代風險指標」這種話。把整篇實驗誠實地拆開來看,三件事可以同時成立:
- FSI 作為「預測變數」 ——對 0050 波動率有 VIX 給不出來的獨立解釋力。樣本內、樣本外、不同 VIX 區間都重複出現, 這個結論很穩 。
- FSI 作為「早期警訊雷達」 ——AUC 0.704 高於純 VIX 的 0.643,達到「中等可用」等級。 結論成立但效力中等 ,不要當成神兵利器。
- FSI 作為「策略訊號」 ——拿 P75 / P90 門檻直接調倉位, 全期看起來最佳,但跨期間不穩、兩模型比較沒過嚴格統計檢驗門檻 。 這部分結論是 null(沒能拒絕「策略改善只是運氣」) 。
實務上比較有用的三個 takeaway:
- 內控/risk reporting :把 FSI 加進日報,當作 VIX 的補位變數是合理的;它的增量資訊在高 VIX 區段反而更有用。
- 波動率預測模型 :要做台股相關的預測模型,把 FSI 放進特徵集是值得的;ΔR² 從 0.13 到 0.21 這個量級對統計模型來說不算小。
- 直接作為交易訊號 :要更謹慎。需要 先在不同期間都驗過 、加上交易成本後仍穩、設計上避開閾值微調。K887 目前的證據還沒到讓人有信心 deploy 的程度。
已知的限制
把這份研究還能繼續延伸的點,老實列出來,避免過度宣稱:
- FSI 用等權重,沒做最佳化 :這是設計上的選擇(避免資料探勘),但不代表「等權就是最佳」。最佳權重可能會讓指標更好,也可能在新樣本失效。
- 只放四檔金融股 :擴到保險、證券、其他銀行可能更穩;目前 4 檔的代表性是有限的。
- VIX 已經包了大部分全球風險訊息 :FSI 的增量空間天花板就在那裡。
- 0050.TW 的拆股調整適用於 2014 之後 :早期資料品質仍有不確定。
- 回測沒納入交易成本 :FSI 旗標會增加倉位變動頻率,實務上摩擦成本會吃掉一部分名目改善。
- z-score 用滾動視窗,可能輕微 in-sample 過度擬合 :未來可改用真正前向的 z-score,避免微弱的窺視。
結論
K887 把「台股金融類股的波動率有領先性」這個 K757 的觀察, 往前推進到了一個可量化、可監控的指標 ——FSI。指標本身的統計性質乾淨、平穩、可以複製;對 0050 隔日波動率的增量預測力穩健而且樣本外站得住;當作風暴雷達時 AUC 約 0.70 屬於中等可用。
核心收穫是:FSI 是一個有獨立資訊量的風險體溫計,可以接到任何已經吃 VIX 的模型上當作補位特徵。
但是這份研究 沒有 證明「把 FSI 接到一個倉位調整規則上,就能穩穩贏過純 VT 基準」。跨期間穩定性沒過、兩模型比較統計強度不夠,這部分要當作 null 結果如實報告,這也是研究誠實原則最常被違反的地方:把「預測變數有效」混為「策略有效」一起包銷。本文刻意把兩件事分開講,讓讀者自己決定怎麼用。
圖表
資料來源
- 股價/指數 :yfinance(2881.TW、2882.TW、2891.TW、2886.TW、0050.TW、2330.TW、^VIX),日資料
- 樣本期間 :2010-01-05 ~ 2026-03-31,共 3,967 個交易日(FSI 構造後 3,904 觀測)
- 策略回測期間 :2011-04-19 ~ 2026-03-31,共 3,651 個交易日
- 實驗代號 :K887
- 前置研究 :K757 / K757b(金融類股波動率領先性的 Granger 因果)
- 方法論參考 :
- Adrian & Brunnermeier (2016), "CoVaR", American Economic Review
- Acharya et al. (2017), "Measuring Systemic Risk", Review of Financial Studies
- Billio et al. (2012), "Econometric measures of connectedness and systemic risk", Journal of Financial Economics
- 完整實驗腳本與結果 JSON :
experiments/k887/k887_financial_early_warning.py/experiments/k887/k887_financial_early_warning_results.json
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊