analyze-gas-fertilizer-contract-shock
npx skills add https://github.com/fatfingererr/macro-skills --skill analyze-gas-fertilizer-contract-shock
Agent 安装分布
Skill 文档
<essential_principles>
æ¬æè½å°æ³¨æ¼ãç¨æ¸ææª¢é©æäºãï¼
- è¼¸å ¥ï¼ç¤¾ç¾¤/æ°è宣稱ãå¤©ç¶æ°£æ´æ¼²å°è´åè¥ä¾æ/广 ¼ç°å¸¸ã
- 輸åºï¼æéåºåä¸çå æå說檢é©çµæ
ä¸å广 ¼é 測ï¼åªåçï¼ãéåæäºå¨æ¸æä¸æ¯å¦ææ¯æï¼ã
æäºæç«éè¦ä¸æ®µæ¢ä»¶åææ»¿è¶³ï¼
| éæ®µ | æ¢ä»¶ | æª¢é©æ¹å¼ |
|---|---|---|
| A 段 | å¤©ç¶æ°£åºç¾ shock regime | z-score ææççªç ´é¾å¼ |
| B 段 | åè¥å¨ A 段å¾åºç¾ spike | åæ³æª¢é©ï¼ä¸èµ·é»ææ¼å¤©ç¶æ°£ |
| C 段 | é å è½å¾éä¿æ¯æå æ | cross-correlation 顯示 gas é å fert |
è¥ AâBâC æç«ï¼æäºæé忝æï¼å¦åæä¾æ¿ä»£è§£éã
ä½¿ç¨ rolling z-score + æçéé確èªï¼
# z-score 嵿¸¬
z_t = (r_t - rolling_mean(r, window)) / rolling_std(r, window)
shock = z_t >= threshold_z # é è¨ 3.0
# æç嵿¸¬ï¼è£å
ï¼
slope_t = (price_t / price_{t-k} - 1) / k
shock |= slope_t >= threshold_slope # é è¨ 1.5%/day
é£çº 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
å ¨èªå Chrome CDP ç¬åï¼ è ³æ¬èªå宿以䏿¥é©ï¼ç¡éæåæä½ï¼
- èªååå Chrome 調試模å¼
- éå TradingEconomics é é¢ä¸¦çå¾ å表è¼å ¥
- éé WebSocket 飿¥å·è¡ JavaScript æå Highcharts æ¸æ
- èªåå°èªå°å¤åååé é¢ï¼å¦å¤©ç¶æ°£âåè¥ï¼
- 宿å¾èªåéé Chrome
å®å ¨ç¹é Cloudflareï¼ç¡éæåé©èã
</essential_principles>
輸åºä¸å±¤åæï¼
- Shock Regimes: å¤©ç¶æ°£èåè¥çæç©ç·/æ´è¡åé
- Lead-Lag Test: é å è½å¾ç¸éåæ
- Narrative Assessment: æäºå¯ä¿¡åº¦å¤æ·
<quick_start>
å ¨èªå模å¼ï¼ä¸éµå®ææ¸ææåãåæèè¦è¦ºå
è ³æ¬æèªååå Chromeãæåæ¸æãéé Chromeï¼ç¡éæåæä½ã
Step 1ï¼å®è£ä¾è³´
pip install requests websocket-client pandas numpy matplotlib scipy
Step 2ï¼å ¨èªåæåæ¸æï¼èªååå/éé Chromeï¼
cd scripts
python fetch_te_data.py --symbol natural-gas --symbol urea
Step 3ï¼å·è¡å æå說åæ
python gas_fertilizer_analyzer.py \
--gas-file ../data/cache/natural-gas.csv \
--fert-file ../data/cache/urea.csv \
--output ../data/analysis_result.json
Step 4ï¼çæè¦è¦ºåå表ï¼Bloomberg é¢¨æ ¼ï¼
python visualize_shock_regimes.py
# èªå輸åºå°: output/gas_fert_shock_YYYY-MM-DD.png
輸åºç¯ä¾ï¼
{
"signal": "narrative_supported",
"confidence": "medium",
"gas_shock_regimes": [
{"start": "2026-01-20", "peak": "2026-01-22", "regime_return_pct": 29.1}
],
"fert_spike_regimes": [
{"start": "2025-10-27", "peak": "2025-10-27", "regime_return_pct": 0.0}
],
"lead_lag_test": {
"best_lag_days_gas_leads_fert": 21,
"best_corr": 0.131
},
"interpretation": "å¤©ç¶æ°£é å
åè¥ç´ 21 å¤©ï¼æäºæé忝æ"
}
注æï¼é¦æ¬¡å·è¡æï¼Chrome æèªååå並å¨èæ¯æåæ¸æï¼ç´ 60 ç§ï¼ï¼å®æå¾èªåééã
</quick_start>
- å¿«éæª¢æ¥ – æ¥çæè¿æ¯å¦æå¤©ç¶æ°£ shock ååè¥è·é¨
- 宿´åæ – å·è¡ä¸æ®µå¼å ææª¢é©ä¸¦çæå ±å
- åç´å°æ²å說 – è¼¸å ¥åç´å¹æ ¼ï¼è¨ç®å¹å·®å£åææ¨
- æ¹æ³è«å¸ç¿ – äºè§£ shock 嵿¸¬èé å è½å¾åæåç
è«é¸ææç´æ¥æä¾åæåæ¸ã
è·¯ç±å¾ï¼é±è®å°ææä»¶ä¸¦å·è¡ã
<directory_structure>
analyze-gas-fertilizer-contract-shock/
âââ SKILL.md # æ¬æä»¶ï¼è·¯ç±å¨ï¼
âââ skill.yaml # å端å±ç¤ºå
æ¸æ
âââ manifest.json # æè½å
è³æ
âââ workflows/
â âââ analyze.md # 宿´ä¸æ®µå¼åæå·¥ä½æµ
â âââ quick-check.md # å¿«éæª¢æ¥å·¥ä½æµ
â âââ hedge-hypothesis.md # åç´å°æ²å說åæ
âââ references/
â âââ data-sources.md # Chrome CDP ç¬è²èªªæ
â âââ methodology.md # Shock 嵿¸¬èé å
è½å¾æ¹æ³è«
â âââ input-schema.md # 輸å
¥åæ¸å®ç¾©
â âââ historical-episodes.md # æ·å²æ¡ä¾å°ç
§
âââ templates/
â âââ output-json.md # JSON è¼¸åºæ¨¡æ¿
â âââ output-markdown.md # Markdown å ±åæ¨¡æ¿
âââ scripts/
â âââ fetch_te_data.py # TradingEconomics CDP ç¬è²
â âââ gas_fertilizer_analyzer.py # 主åæè
³æ¬
â âââ visualize_shock_regimes.py # Shock regime è¦è¦ºå
âââ data/ # æ¸æå¿«åç®é
â âââ cache/ # å¿«åæªæ¡
âââ examples/
âââ sample_output.json # ç¯ä¾è¼¸åº
</directory_structure>
<reference_index>
æ¹æ³è«: references/methodology.md
- Shock/Spike 嵿¸¬é輯ï¼z-score + æçï¼
- é å è½å¾ç¸éåæ
- Regime åä½µæ¼ç®æ³
è³æä¾æº: references/data-sources.md
- TradingEconomics Chrome CDP ç¬è²èªªæ
- å¤©ç¶æ°£èåè¥åå代碼
- åæ´æ¸ææºï¼FRED/World Bankï¼
è¼¸å ¥åæ¸: references/input-schema.md
- 宿´åæ¸å®ç¾©èé è¨å¼
- te_symbolsãspike_detectionãlead_lag ç
æ·å²æ¡ä¾: references/historical-episodes.md
- 2021-2022 ææ´²å¤©ç¶æ°£å±æ©
- 2022 ä¿çè¡çªæé
- å£ç¯æ§æ³¢åæ¡ä¾
</reference_index>
<workflows_index>
| Workflow | Purpose | ä½¿ç¨ææ© |
|---|---|---|
| analyze.md | 宿´ä¸æ®µå¼å æåæ | éè¦é©èæäºæ |
| quick-check.md | å¿«éæª¢æ¥æè¿ shock | æ¥å¸¸ç£æ§æå¿«éåç |
| hedge-hypothesis.md | åç´å°æ²åèªªåæ | 給å®åç´å¹æ ¼è¨ç®å¹å·®å£å |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| output-json.md | JSON 輸åºçµæ§å®ç¾© |
| output-markdown.md | Markdown å ±åæ¨¡æ¿ |
| </templates_index> |
<scripts_index>
| Script | Command | Purpose |
|---|---|---|
| fetch_te_data.py | --symbol natural-gas --symbol urea |
å ¨èªå CDP ç¬åï¼èªååå/éé Chromeï¼ |
| gas_fertilizer_analyzer.py | --gas-file X.csv --fert-file Y.csv |
宿´ä¸æ®µå¼å æåæ |
| visualize_shock_regimes.py | ï¼ç¡åæ¸ï¼èªåè®åå¿«åï¼ | Bloomberg é¢¨æ ¼è¦è¦ºåå表 |
| </scripts_index> |
<input_schema>
</input_schema>
<output_schema>
åè¦ templates/output-json.md ç宿´çµæ§å®ç¾©ã
æè¦ï¼
{
"signal": "narrative_supported | narrative_weak | inconclusive",
"confidence": "high | medium | low",
"gas_shock_regimes": [...],
"fert_spike_regimes": [...],
"lead_lag_test": {
"best_lag_days": 12,
"best_corr": 0.41,
"interpretation": "gas é å
fert"
},
"narrative_assessment": "䏿®µå¼æª¢é©çµææè¦",
"artifacts": {
"charts": ["output/gas_fert_shock.png"]
}
}
</output_schema>
<success_criteria> åææåææç¢åºï¼
- å¤©ç¶æ°£èåè¥ç shock/spike regime æ¸ å®
- é å è½å¾ç¸éåæçµæ
- 䏿®µå¼å ææª¢é©å¤æ·
- æäºå¯ä¿¡åº¦èæ¿ä»£è§£é
- Shock Regime å°æ¯åï¼output/gas_fert_shock_YYYY-MM-DD.pngï¼
- 坿ä½çå®è§è§£è®
- æç¢ºæ¨è¨»è³æéå¶èåè¨ </success_criteria>