K1339: 商品 ETF 動量體制切換後,銅 30 日波動率平均跳升 18%
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
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。當 CPER、USO、UNG 中至少兩檔出現「冷轉熱」動量切換後,CPER 未來 30 日已實現波動率平均提高 18.0% ,bootstrap p=0.003,95% 信賴區間為 [+7.2%, +29.2%] 。
這個結果被 Codex review 降為 CONDITIONAL_PASS 。主要原因有三個:多重檢定尚未完整校正、事件窗口可能重疊、ETF 動量斜率只能當期貨曲線狀態的 proxy。
方法與資料
| 項目 | 設定 |
|---|---|
| 商品 ETF | USO 原油、UNG 天然氣、CPER 銅 |
| Spillover 對照 | SPY |
| 資料來源 | yfinance adjusted close |
| 期間 | 2015-01-01 至 2026-06-14 |
| 樣本 | 2,878 個交易日 |
| 動量體制 proxy | 21 日 log return 與 63 日 log return 的年化斜率差 |
| 防 lookahead | regime 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 | H=30 平均波動率變化 | 95% 信賴區間 | Bootstrap p | n |
|---|---|---|---|---|
CPER 銅 | +18.0% | [+7.2%, +29.2%] | 0.003 | 52 |
UNG 天然氣 | +10.0% | [-0.2%, +22.6%] | 0.079 | 52 |
USO 原油 | +6.9% | [-4.0%, +18.2%] | 0.227 | 52 |
CPER 是唯一同時具備清楚平均效果與正向信賴區間的資產。Codex review 另外用 sign-flip null 檢查 CPER H=30,得到 p=0.0026,方向與 bootstrap 結果一致。
UNG 的方向相同,但信賴區間貼近零。USO 在這個設定下沒有顯著訊號。
核心發現二:訊號會衰減

CPER 的訊號集中在短窗口。H=60 仍有弱訊號,H=90 已不適合當成穩定規律。
| Horizon | CPER 平均波動率變化 | 95% 信賴區間 | Bootstrap p | n |
|---|---|---|---|---|
| H=30 | +18.0% | [+7.2%, +29.2%] | 0.003 | 52 |
| H=60 | +7.0% | [-0.5%, +14.7%] | 0.074 | 52 |
| H=90 | +4.3% | [-2.4%, +10.9%] | 0.213 | 52 |
這個衰減形狀符合事件研究直覺。若動量切換代表短期供需壓力或倉位重組,效果應該先出現在一個月內,再逐步被價格與倉位吸收。
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。
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊