Macro-skills analyze-move-risk-gauges-leadlag

displayName: MOVE 風險指標領先落後分析

install
source · Clone the upstream repo
git clone https://github.com/fatfingererr/macro-skills
manifest: skills/analyze-move-risk-gauges-leadlag/skill.yaml
source content

displayName: MOVE 風險指標領先落後分析 emoji: "🏃" authorUrl: https://github.com/fatfingererr/macro-skills

tools:

  • claude-code

featured: false installCount: 0

testQuestions:

  • question: 'MOVE 目前是否對 JGB 殖利率變動感到恐慌?' imagePath: images/jgb-10y-move-panic-2026-01-23.png expectedResult: | MOVE 對 JGB 殖利率變動的反應
    判定:SPOOKED(有恐慌反應)

    量化證據 ┌──────────────────┬────────────────────────────┐ │ 項目 │ 數值 │ ├──────────────────┼────────────────────────────┤ │ 衝擊定義 │ 5 日內 JGB 10Y 變動 ≥ 15bp │ ├──────────────────┼────────────────────────────┤ │ 衝擊事件數 │ 9 次 │ ├──────────────────┼────────────────────────────┤ │ MOVE 平均反應 │ +18.17(明顯上升) │ ├──────────────────┼────────────────────────────┤ │ MOVE 當前 Z 分數 │ -1.25 │ └──────────────────┴────────────────────────────┘

    解讀 當 JGB 殖利率出現顯著波動時(5 日內變動 ≥ 15bp),MOVE Index 平均上升 18.17 點,這表示:

    1. 利率波動率市場對日本利率衝擊有明確反應,並非「無視」或「不恐慌」
    2. 這與「日本升息對全球利率波動率無影響」的敘事不一致
    3. 日本央行政策變化仍會傳導至美國利率波動率預期

    但有一個緩和因素 MOVE 當前 Z 分數為 -1.25(低於歷史平均超過 1 個標準差),顯示:

    • 儘管對事件有反應,但 MOVE 整體水位偏低
    • 市場對未來利率波動的預期目前並不高漲
    • 處於相對「平靜」狀態,但遇到衝擊時仍會反應

    一句話:MOVE 對 JGB 衝擊「會恐慌」,但目前處於低檔區間,尚未進入持續高度警戒狀態。

  • question: 'MOVE 目前是否是否領先 VIX 和信用利差?' imagePath: images/move-vix-credit-leadlag-2026-01-23.png expectedResult: | MOVE 領先落後分析結果

    核心發現 MOVE 目前並未領先 VIX 和信用利差,反而略微落後。 ┌────────────────┬──────────┬──────────┬─────────────────────────────┐
    │ 指標對 │ 最佳 Lag │ 相關係數 │ 解讀 │ ├────────────────┼──────────┼──────────┼─────────────────────────────┤ │ MOVE vs VIX │ -1 天 │ 0.385 │ MOVE 落後 VIX 約 1 個交易日 │ ├────────────────┼──────────┼──────────┼─────────────────────────────┤ │ MOVE vs Credit │ 0 天 │ 0.704 │ MOVE 與信用利差同步移動 │ └────────────────┴──────────┴──────────┴─────────────────────────────┘

    當前狀態

    • MOVE 當前 Z 分數:-1.25(低於歷史平均,偏低檔)
    • 方向一致性:MOVE 下行時,VIX 同步下行 71%、信用利差同步下行 66%

    結論 MOVE 目前並非領先指標,而是與 VIX/Credit 同步或略微落後。 MOVE 本身處於相對低檔區間(Z = -1.25),顯示利率波動率預期目前並不高漲。

qualityScore: overall: 74 badge: 白銀 evaluatedAt: "2026-01-24"

metrics: problemFit: 78 correctness: 75 dataGovernance: 72 robustness: 65 maintainability: 75 usability: 78

metricDetails: problemFit: score: 78 strengths: - SKILL.md 有清晰的 <objective> 說明核心問題 - 三層分析框架(領先落後、事件窗、方向一致性)定義明確 - workflows/ 有完整主路徑(analyze.md, visualize.md) - input-schema.md 欄位定義清晰,有表格說明 - 有 <success_criteria> 說明執行成功的標準 - 支援參數化利率輸入(可分析不同國家債券) improvements: - 缺少明確的「不適用情境」說明 - 缺少「缺資料分支」處理說明

correctness:
  score: 75
  strengths:
    - methodology.md 有完整 LaTeX 公式推導
    - scripts/ 實作與文檔吻合
    - 有明確的參數定義(modelConfig.defaultParams)
    - 交叉相關、Z 分數、事件窗方法論可重現
  improvements:
    - examples/ 為空,缺少 golden case 可做回歸測試
    - 可增加邊界案例驗證

dataGovernance:
  score: 72
  strengths:
    - data-sources.md 完整(來源、頻率、延遲、fallback)
    - 有 fallback 策略表(MacroMicro CDP → 利率實現波動率)
    - 有 12 小時 cache 機制避免重複請求
    - 授權說明清楚(免費公開數據)
    - FRED/Yahoo 無需 API key
  improvements:
    - 無 cross-validate.md 或 explore_*.py 驗證流程
    - cache 輸出無 timestamp 記錄
    - Chrome CDP 穩定性仍待驗證

robustness:
  score: 65
  strengths:
    - 有 cache 機制避免重複請求
    - 有基本的缺值處理(ffill)
    - output-json.md 定義了 error 輸出結構
  improvements:
    - 錯誤處理不完整,缺少 try-except 包裹
    - 無 failure-modes.md 說明失敗模式
    - 無明確的降級輸出機制實作
    - Chrome CDP 失敗時的處理策略不明確

maintainability:
  score: 75
  strengths:
    - manifest.json 有 semver 版本(0.1.0)
    - 有完整 dependencies 清單
    - templates/ 欄位命名穩定
    - 無重複文件(沒有 root + references 同名 md)
    - 參數集中在 modelConfig.defaultParams
    - 新增 visualize_rates_move.py 支援參數化利率分析
  improvements:
    - visualize.py 和 visualize_rates_move.py 有部分重複代碼
    - 可增加自動化測試

usability:
  score: 78
  strengths:
    - output-markdown.md 有 TL;DR(結論一句話)
    - 有 reasons 列表作為依據
    - output-json.md 有 status + confidence + reasons
    - 有多個 visualizer 腳本(visualize.py, visualize_rates_move.py)
    - 有解讀說明(methodology.md 有解讀表格)
    - skill.yaml 有 testQuestions 提供實際範例
    - 圖表支援軸翻轉與 Z 分數對齊,視覺比較更直觀
  improvements:
    - 缺少「下一步建議」
    - 無 historical-episodes.md(歷史對照)

details: | 任務適配度(78/100) - SKILL.md 有清晰的 <objective> 與 <success_criteria> - 三層分析框架(領先落後、事件窗、方向一致性)定義明確 - 支援參數化利率輸入(--rates-col, --rates-name) - 待改進:增加不適用情境說明、缺資料分支處理

**正確性(75/100)**
- methodology.md 有完整 LaTeX 公式推導
- scripts/ 實作與文檔吻合
- 待改進:examples/ 為空,需增加 golden case

**資料治理(72/100)**
- data-sources.md 完整,有 fallback 策略
- 有 12 小時 cache 機制
- 待改進:無 cross-validate 流程、無 timestamp 記錄

**穩健性(65/100)**
- 有 cache 與基本缺值處理
- 待改進:錯誤處理不完整、需增加 failure-modes.md

**可維護性(75/100)**
- manifest.json 有 semver 版本與 dependencies
- 參數集中定義,模板穩定
- 待改進:部分代碼重複、可增加自動化測試

**輸出可用性(78/100)**
- 有 TL;DR + 依據 + status/confidence/reasons
- 多個 visualizer 腳本,支援軸翻轉與 Z 分數對齊
- 待改進:缺少下一步建議、無歷史對照

upgradeNotes: targetBadge: 黃金 requirements: - metric: robustness currentScore: 65 targetScore: 75 suggestion: | 1. 增加 failure-modes.md 說明失敗模式與處理策略 2. 在 scripts/ 中增加 try-except 包裹與降級輸出 3. Chrome CDP 失敗時自動切換到 fallback 數據源 - metric: correctness currentScore: 75 targetScore: 80 suggestion: | 1. 在 examples/ 增加至少 1 個 golden case 可做回歸測試 2. 增加邊界案例驗證(如數據不足、極端值) - metric: dataGovernance currentScore: 72 targetScore: 80 suggestion: | 1. 增加 cross-validate.md 或 explore_*.py 驗證流程 2. cache 輸出增加 timestamp 和 source 記錄 - metric: usability currentScore: 78 targetScore: 85 suggestion: | 1. 增加 historical-episodes.md 歷史對照 2. output-markdown.md 增加「下一步建議」區塊

bestPractices:

  • title: 使用 Z 分數而非絕對值 description: MOVE/VIX 的絕對值難以跨時期比較,Z 分數標準化後更有意義
  • title: 平滑處理降低噪音 description: 短期噪音會干擾領先落後判斷,建議使用 5 日移動平均
  • title: 注意數據發布延遲 description: JGB 殖利率數據可能有 1-2 天延遲,分析時需考慮

pitfalls:

  • title: 過度解讀短期相關 description: 市場結構變化可能導致領先落後關係反轉 consequence: 歷史模式不一定適用於未來
  • title: 忽略極端行情 description: 極端恐慌時所有資產同步暴跌,領先落後關係可能消失 consequence: 正常時期的分析不適用於危機
  • title: 混淆軸翻轉與原始方向 description: | 時序圖的利率 Y 軸已翻轉,Z 分數也已取負。 解讀時需注意:圖表上「向上」代表利率下降/緊縮緩和, 「向下」代表利率上升/緊縮壓力 consequence: 誤讀圖表方向可能導致錯誤的市場判斷

faq:

  • question: 什麼是 MOVE Index? answer: | MOVE(Merrill Lynch Option Volatility Estimate)是衡量美國 國債選擇權隱含波動率的指數,類似於股市的 VIX。 MOVE 越高代表債券市場波動預期越大,通常與風險規避相關。

  • question: 為什麼利率 Y 軸要翻轉? answer: | 翻轉利率 Y 軸(invert_yaxis)的目的是讓視覺比較更直觀:

    • 利率下降(寬鬆)→ 圖表向上 → 風險偏好上升
    • 利率上升(緊縮)→ 圖表向下 → 風險偏好下降 這樣當 MOVE 和利率正相關時,兩條線會同向移動, 便於快速判斷兩者的相關性與方向一致性。
  • question: Z 分數為什麼也要翻轉? answer: | Z 分數面板需與時序圖保持視覺一致性。 假設利率上升(Z=+2),但時序圖的軸已翻轉(向下), 則 Z 分數也需取負值(-2)才能讓「高值在上」的慣例一致。 否則會出現時序圖向下、Z 分數卻向上的視覺矛盾。

  • question: 如何分析其他國家債券對 MOVE 的影響? answer: | 使用 visualize_rates_move.py 的參數化功能:

    分析德國 Bund 10Y

    python visualize_rates_move.py --rates-col BUND10Y --rates-name "Bund 10Y"

    分析美國 UST 10Y

    python visualize_rates_move.py --rates-col UST10Y --rates-name "UST 10Y"

    注意:需確保數據源有對應的欄位,否則需先擴充 fetch_data.py。

about: repository: https://github.com/fatfingererr/macro-skills branch: main additionalInfo: | ## 參考來源

- ICE BofA MOVE Index: 原版 MOVE 指數
- Bloomberg Terminal: MOVE / VIX / CDX IG 圖表
- MacroMicro: 公開 MOVE 歷史數據

## 數據來源

**FRED(免費,無需 API key)**
- 信用利差代理:BAMLC0A4CBBB (BBB OAS), BAMLC0A0CM (IG OAS)
- 國債殖利率:DGS10

**Yahoo Finance**
- VIX: ^VIX

**需爬蟲取得**
- MOVE Index: MacroMicro / Investing.com
- JGB 10Y Yield: Investing.com / MOF Japan