| name | analyze-gas-fertilizer-contract-shock |
| description | 用天然氣與化肥價格的日頻數據,檢驗「天然氣暴漲→化肥供應受限/毀約→化肥飆價」敘事是否成立,輸出可標註到圖上的關鍵轉折點與領先落後分析。 |
<essential_principles>
**敘事驗證而非預測**
本技能專注於「用數據檢驗敘事」:
- 輸入:社群/新聞宣稱「天然氣暴漲導致化肥供應/價格異常」
- 輸出:時間序列上的因果假說檢驗結果
不做價格預測,只回答:「這個敘事在數據上是否有支撐?」
**三段式因果檢驗**
敘事成立需要三段條件同時滿足:
| 階段 | 條件 | 檢驗方式 |
|---|
| A 段 | 天然氣出現 shock regime | z-score 或斜率突破閾值 |
| B 段 | 化肥在 A 段後出現 spike | 同法檢驗,且起點晚於天然氣 |
| C 段 | 領先落後關係支持因果 | cross-correlation 顯示 gas 領先 fert |
若 A→B→C 成立,敘事有量化支撐;否則提供替代解釋。
**Regime 偵測邏輯**
使用 rolling z-score + 斜率雙重確認:
z_t = (r_t - rolling_mean(r, window)) / rolling_std(r, window)
shock = z_t >= threshold_z
slope_t = (price_t / price_{t-k} - 1) / k
shock |= slope_t >= threshold_slope
連續 shock 日合併為 regime,輸出起點/終點/峰值。
**領先落後解讀**
Cross-correlation 結果解讀:
| lag 值 | 意義 | 敘事支撐度 |
|---|
| lag > 0 | 天然氣領先化肥 | 高(符合預期) |
| lag ≈ 0 | 同時變動 | 中(共同驅動) |
| lag < 0 | 化肥領先天然氣 | 低(敘事較弱) |
合理領先期:1-8 週(7-56 天)
**數據來源優先順序**
主要:TradingEconomics(透過全自動 Chrome CDP 爬取)
備援:FRED Henry Hub + World Bank Pink Sheet
檢驗「天然氣暴漲→化肥飆價」的因果假說。
需要進行什麼分析?
| Response | Action |
|--------------------------------|--------------------------------------------|
| 1, "快速", "quick", "check" | 閱讀 `workflows/quick-check.md` 並執行 |
| 2, "完整", "full", "analyze" | 閱讀 `workflows/analyze.md` 並執行 |
| 3, "合約", "對沖", "hedge" | 閱讀 `workflows/hedge-hypothesis.md` 並執行|
| 4, "學習", "方法論", "why" | 閱讀 `references/methodology.md` |
| 提供參數 (如日期/商品) | 閱讀 `workflows/analyze.md` 並使用參數執行 |
**Type**: string (ISO YYYY-MM-DD)
**Description**: 分析起始日期
**Example**: "2025-08-01"
**Type**: string (ISO YYYY-MM-DD)
**Description**: 分析結束日期
**Example**: "2026-02-01"
**Type**: object
**Description**: TradingEconomics 商品代碼
```json
{
"natural_gas": "natural-gas", // 或 "Natural Gas"
"fertilizer": "urea" // 或 "dap", "fertilizer"
}
```
**Type**: object
**Defaults**:
```json
{
"return_window": 1,
"z_window": 60,
"parabolic_threshold": {"z": 3.0, "slope_pct_per_day": 1.5}
}
```
**Type**: object
**Defaults**:
```json
{
"max_lag_days": 60,
"method": "corr_returns"
}
```