← 研究動態
研究2026/06/28 下午10:00

K1339: 商品 ETF 動量體制切換後,銅 30 日波動率平均跳升 18%

USOvolatilityevent studyUNGCPERcommodityregime proxy

讀者互動

已追蹤瀏覽 0 次,登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

K1339: 商品 ETF 動量體制切換後,銅 30 日波動率平均跳升 18%

 實驗 K1339  | yfinance 調整收盤價 | USO、UNG、CPER、SPY | 2015-01-01 至 2026-06-14 | 2,878 個交易日

摘要

K1339 檢驗一個很窄的問題:商品 ETF 的短中期動量體制翻轉後,接下來 30、60、90 個交易日的已實現波動率是否改變。

最清楚的訊號出現在銅 ETF CPER。當 CPERUSOUNG 中至少兩檔出現「冷轉熱」動量切換後,CPER 未來 30 日已實現波動率平均提高  18.0% ,bootstrap p=0.003,95% 信賴區間為  [+7.2%, +29.2%] 。

這個結果被 Codex review 降為  CONDITIONAL_PASS 。主要原因有三個:多重檢定尚未完整校正、事件窗口可能重疊、ETF 動量斜率只能當期貨曲線狀態的 proxy。

方法與資料

項目設定
商品 ETFUSO 原油、UNG 天然氣、CPER
Spillover 對照SPY
資料來源yfinance adjusted close
期間2015-01-01 至 2026-06-14
樣本2,878 個交易日
動量體制 proxy21 日 log return 與 63 日 log return 的年化斜率差
防 lookaheadregime state 使用 prices.shift(1),只看 t-1 以前資料
事件確認翻轉後連續維持 10 個交易日,且 21 個交易日內至少兩檔 ETF 同向確認
Forward window從 event_date+1 起算 H=30、60、90
統計paired bootstrap,B=5000,seed=42

「冷轉熱」在本文代表 ETF momentum-slope 由負轉正。它近似商品曲線從 contango-like 轉向 backwardation-like 的狀態,但 K1339 沒有直接使用期貨近遠月價差。

這個區分很重要。本文的可驗證說法是「ETF 動量體制切換後的波動率行為」,不是「真實期貨曲線翻轉後的完整 roll-yield 定價」。

事件數量

K1339 最終抓到兩組跨 ETF 確認事件。

方向事件數解讀
冷轉熱,momentum-slope 負轉正52短期動能強過中期動能
熱轉冷,momentum-slope 正轉負43短期動能弱於中期動能

事件日定義為「第 10 個確認日」。因此 forward return 和 forward volatility 從隔日開始,不把確認期本身偷放進結果。

核心發現一:CPER 的 30 日波動率跳升最穩

商品 ETF 冷轉熱後 30 日波動率變化

冷轉熱事件後,三檔 ETF 的 30 日波動率反應並不對稱。

ETFH=30 平均波動率變化95% 信賴區間Bootstrap pn
CPER +18.0%  [+7.2%, +29.2%]  0.003 52
UNG 天然氣+10.0%[-0.2%, +22.6%]0.07952
USO 原油+6.9%[-4.0%, +18.2%]0.22752

CPER 是唯一同時具備清楚平均效果與正向信賴區間的資產。Codex review 另外用 sign-flip null 檢查 CPER H=30,得到 p=0.0026,方向與 bootstrap 結果一致。

UNG 的方向相同,但信賴區間貼近零。USO 在這個設定下沒有顯著訊號。

核心發現二:訊號會衰減

CPER 冷轉熱訊號隨 horizon 衰減

CPER 的訊號集中在短窗口。H=60 仍有弱訊號,H=90 已不適合當成穩定規律。

HorizonCPER 平均波動率變化95% 信賴區間Bootstrap pn
H=30 +18.0%  [+7.2%, +29.2%]  0.003 52
H=60+7.0%[-0.5%, +14.7%]0.07452
H=90+4.3%[-2.4%, +10.9%]0.21352

這個衰減形狀符合事件研究直覺。若動量切換代表短期供需壓力或倉位重組,效果應該先出現在一個月內,再逐步被價格與倉位吸收。

NULL 結果同樣重要

熱轉冷方向沒有通過同樣標準。back_to_contango 方向的 USO、UNG、CPER 在 30、60、90 日窗口都未達 p<0.10。

跨資產 spillover 也沒有成立。以 CPER 冷轉熱後 30 日為例,與 SPY 的相關度變化平均只有 +0.038,95% 信賴區間為 [-0.032, +0.108],p=0.291。

因此 K1339 不能被解讀成「銅會把美股一起拖進高波動」。比較保守的說法是:銅 ETF 自身的短期波動,在特定動量切換後更容易抬高。

多重檢定與 CONDITIONAL_PASS

K1339 測了 3 個資產、2 個方向、3 個 horizon,共 18 個波動率 cell。若把 SPY 相關度變化也算入,同一張表有 36 個統計檢定。

CPER H=30 的 p=0.003 在 18 個波動率 cell 的 Bonferroni 門檻下仍可保留。若用 36 個 cell 的更嚴格門檻,結果落在邊界附近。

事件獨立性也是限制。60 日與 90 日 forward window 容易互相重疊,paired bootstrap 可能把信賴區間估得太窄。下一版需要 block bootstrap 或 independence-filtered event subset。

實務含義

K1339 比較適合作為波動率模型的候選特徵,而不是獨立交易規則。

若研究者正在建商品 ETF 的 HAR-RV 或 GARCH 類模型,可以把 CPER 的冷轉熱動量切換加成 binary feature,再檢查 OOS QLIKE 或 VaR/ES 是否改善。

若是風控使用,較合理的解讀是:銅 ETF 動量體制從冷轉熱後,接下來 30 個交易日的部位波動預算應該上調。這不等於看多銅,也不等於應該買進波動率產品。

限制與下一步

第一,K1339 使用 ETF 價格 proxy,尚未取得真實期貨曲線。下一步應用 Bloomberg 或其他 futures curve 資料直接計算 roll yield。

第二,多重檢定需要正式處理。建議在全部 36 個 cell 上報告 BH-FDR 或 family-wise adjusted p-value。

第三,事件重疊需要重新抽樣設計。短窗口 H=30 的結果較乾淨,H=60 與 H=90 需要 block bootstrap。

第四,現有腳本逐 cell bootstrap seed 使用 Python hash(),在不同 PYTHONHASHSEED 下可能改變細部 p 值。核心 CPER H=30 已被 sign-flip null 交叉確認,但正式版本仍應改成穩定 hash。

結論

K1339 的最小可支持結論是:2015 至 2026 年間,商品 ETF 的冷轉熱動量切換後,CPER 未來 30 日已實現波動率平均增加 18.0%。

這個發現有統計訊號,但尚未達到 paper-grade 強結論。它目前適合進入後續模型特徵測試與期貨曲線資料驗證,不適合被包裝成可直接交易的商品曲線策略。

本文基於實驗 K1339。腳本:experiments/K1339/K1339.py;結果:experiments/K1339/K1339_results.json;審查:experiments/K1339/codex_review.md。資料來源為 yfinance adjusted close,標的為 USO、UNG、CPER、SPY,期間 2015-01-01 至 2026-06-14。

相關文章

先讀正式關聯,若無則使用標籤與主題相似度補齊