analyze-copper-inventory-rebuild-signal
npx skills add https://github.com/fatfingererr/macro-skills --skill analyze-copper-inventory-rebuild-signal
Agent 安装分布
Skill 文档
<essential_principles>
æ¬æè½å°ãèç¼çåãè½æçºå¯éåãå¯èªåæ´æ°çé層è¨è系統ï¼
| 層次 | åé¡ | æ ¸å¿ææ¨ | 決çè¼¸åº |
|---|---|---|---|
| çç· | æ¯å¦ãæé»è¶ åãï¼ | SHFE åè£é度 z-score + åº«åæ°´ä½ | CAUTION / NEUTRAL / SUPPORTIVE |
| é·ç· | æ¯å¦ãä»å便å®ãï¼ | é 广·å²å使¸ï¼10 å¹´ï¼ | CHEAP / FAIR / RICH |
é鵿´å¯ï¼SHFE 庫åå¿«éåè£ + æ°´ä½åé« â 常常貼è¿å¹æ ¼å±é¨é«é»ã
ä½¿ç¨ Chrome CDP å ¨èªåæå Highcharts åè¡¨æ¸æï¼å ±éä¸é¡æ¸æï¼
| æ¸æ | 便º | URL |
|---|---|---|
| SHFE é 庫å | MacroMicro (CDP) | https://en.macromicro.me/series/8743/copper-shfe-warehouse-stock |
| COMEX é 庫å | MacroMicro (CDP) | https://www.macromicro.me/series/8742/copper-comex-warehouse-stock |
| é æè²¨å¹æ ¼ | Yahoo Finance | HG=Fï¼COMEX é
æè²¨é£çºè¿æï¼ |
å£å¾ï¼åº«åçºå¯äº¤å²é 庫åï¼å¸ï¼ã广 ¼çºæ¶ç¤å¹ï¼USD/lbï¼
å°ä¸»è§ãåè£å¾å¿«ãè½åçºå®¢è§å¯æ¯è¼çæ¨æºåææ¨ï¼
rebuild_W = inv_t - inv_{t-W} (W = 4 é±)
z_score = (rebuild_W - μ) / Ï (μ, Ï çº 3 年滾å)
- z-score > 1.5ï¼åè£é度ãç°å¸¸å¿«ã
- z-score > 2.0ï¼åè£éåº¦ãæ¥µç«¯å¿«ã
- z-score < -1.5ï¼å»åº«åé度ãç°å¸¸å¿«ã
</essential_principles>
<quick_start>
å ¨èªåå·è¡ï¼ç¡éæåæä½ Chromeï¼
Step 1ï¼å®è£ä¾è³´
pip install requests websocket-client pandas numpy yfinance matplotlib
Step 2ï¼ä¸éµæåæææ¸æï¼SHFE + COMEX 庫å + é å¹ï¼
cd skills/analyze-copper-inventory-rebuild-signal/scripts
python fetch_copper_data.py
è ³æ¬æèªåï¼
- åå Chrome 調試模å¼
- ä¾åºæå SHFE å COMEX 庫åï¼~80 ç§ï¼
- æåé æè²¨å¹æ ¼ï¼Yahoo Financeï¼
- å²åå°
cache/shfe_inventory.csvãcache/comex_inventory.csvãcache/copper_price.csv - éé Chrome
Step 3ï¼å·è¡åº«åè¨èåæ
python inventory_signal_analyzer.py
Step 4ï¼çæè¦è¦ºåå表
python visualize_inventory_signal.py
輸åºï¼{å°æ¡æ ¹ç®é}/output/copper_inventory_signal_YYYY-MM-DD.png
</quick_start>
- å¿«éæª¢æ¥ – æ¥çç¶å SHFE 庫ååè£è¨èçæ
- 宿´åæ – å·è¡åè£è¨èè广 ¼é«é»çæ·å²é©è
- é·æå使¸ – é 广·å²å使¸å¤è®ï¼10 å¹´ï¼
- è¦è¦ºå – çæ Bloomberg é¢¨æ ¼åæå表
è«é¸ææç´æ¥æä¾åæåæ¸ã
è·¯ç±å¾ï¼å·è¡å°æå½ä»¤ã
<directory_structure>
analyze-copper-inventory-rebuild-signal/
âââ SKILL.md # æ¬æä»¶ï¼è·¯ç±å¨ï¼
âââ manifest.json # æè½å
è³æ
âââ skill.yaml # å端å±ç¤ºå
æ¸æ
âââ scripts/
â âââ fetch_copper_data.py # å
¨èªå CDP æ¸æç¬è²ï¼SHFE + COMEX + 广 ¼ï¼
â âââ fetch_shfe_inventory.py # SHFE å°ç¨ç¬è²ï¼åä¸ç¸å®¹ï¼
â âââ inventory_signal_analyzer.py # æ ¸å¿åæé輯
â âââ visualize_inventory_signal.py # Bloomberg é¢¨æ ¼è¦è¦ºå
âââ references/
â âââ data-sources.md # æ¸æä¾æºèªªæ
â âââ methodology.md # æ¹æ³è«èªªæ
â âââ historical-episodes.md # æ·å²äºä»¶å°ç
§
âââ templates/
â âââ output-json.md # JSON è¼¸åºæ ¼å¼
â âââ output-markdown.md # Markdown è¼¸åºæ ¼å¼
âââ workflows/
â âââ quick-check.md # å¿«éæª¢æ¥æµç¨
â âââ full-analysis.md # 宿´åææµç¨
â âââ visualize.md # è¦è¦ºåæµç¨
âââ cache/
â âââ shfe_inventory.csv # SHFE 庫åå¿«å
â âââ comex_inventory.csv # COMEX 庫åå¿«å
â âââ copper_price.csv # é
å¹å¿«å
âââ examples/
âââ sample_output.json # ç¯ä¾è¼¸åº
# è¦è¦ºå輸åºä½ç½®ï¼å°æ¡æ ¹ç®éï¼
{å°æ¡æ ¹ç®é}/output/
âââ copper_inventory_signal_YYYY-MM-DD.png # 輸åºå表ï¼å«æ¥æï¼
</directory_structure>
<scripts_index>
| Script | Command | Purpose |
|---|---|---|
| fetch_copper_data.py | python fetch_copper_data.py |
å ¨èªåæåæææ¸æï¼SHFE + COMEX + 广 ¼ï¼ |
| fetch_copper_data.py | --force-refresh |
å¼·å¶éæ°æåï¼å¿½ç¥å¿«åï¼ |
| fetch_copper_data.py | --source shfe |
åªæå SHFE 庫å |
| fetch_copper_data.py | --source comex |
åªæå COMEX 庫å |
| fetch_copper_data.py | --source price |
åªæåé å¹ |
| inventory_signal_analyzer.py | --quick |
å¿«éæª¢æ¥ç¶åè¨èçæ |
| inventory_signal_analyzer.py | --full |
宿´æ·å²é©èåæ |
| inventory_signal_analyzer.py | --long-term |
鷿广 ¼å使¸åæ |
| visualize_inventory_signal.py | ç¡åæ¸ | çæ Bloomberg é¢¨æ ¼å表ï¼è¼¸åºå°å°æ¡æ ¹ç®é output/ï¼ |
| visualize_inventory_signal.py | -o path.png |
æå®è¼¸åºè·¯å¾ |
| </scripts_index> |
<input_parameters>
åæåæ¸
| 忏 | é¡å | é è¨å¼ | 說æ |
|---|---|---|---|
start_date |
string | 2015-01-01 | 忏¬èµ·å§æ¥ |
end_date |
string | today | 忏¬çµææ¥ |
price_ticker |
string | HG=F | é æè²¨ä»£ç¢¼ï¼Yahoo Financeï¼ |
price_freq |
string | weekly | 广 ¼é »çï¼daily/weeklyï¼ |
fast_rebuild_window_weeks |
int | 4 | ãå¿«éåè£ãè§å¯çªï¼é±ï¼ |
fast_rebuild_z |
float | 1.5 | åè£é度 z-score éæª» |
high_inventory_mode |
string | percentile | 庫ååé«å¤å®æ¨¡å¼ï¼absolute/percentileï¼ |
high_inventory_percentile |
float | 0.85 | 庫ååé«å使¸é檻 |
peak_match_window_weeks |
int | 2 | è¨è尿广 ¼é«é»ç容許çªå£ï¼Â±N é±ï¼ |
long_term_window_years |
int | 10 | é·æå使¸è¨ç®çªå£ï¼å¹´ï¼ |
cheap_percentile |
float | 0.35 | ãé·æå便å®ãéæª» |
</input_parameters>
è¦è¦ºå輸åºï¼Bloomberg é¢¨æ ¼é 庫ååè£è¨èå表æ¿
éµå¾ª thoughts/shared/guide/bloomberg-style-chart-guide.md è¦ç¯è¨è¨ã
å å«ä¸ååå¡ï¼ä¸ä¸ä¸æåï¼ï¼
-
é å¹ + 總庫åå°ç §ï¼é軸åï¼
- R1 å³è»¸ï¼é å¹ï¼æ©ç´ è²ç·ï¼
- L2 左軸ï¼ç¸½åº«åé¢ç©åï¼SHFE + COMEX çå ï¼
- æ¨è¨ CAUTION è¨è觸ç¼é»
- ææ°å¹æ ¼æ¨è¨»
-
åè£é度 z-scoreï¼æåºåï¼
- SHFE z-scoreï¼é¢ç©å¡«å ï¼ç´ /éè²åååè£/å»åº«åï¼
- COMEX z-scoreï¼èç·çå
- éæª»ç·ï¼z=1.5, z=2.0, z=-1.5ï¼
-
è¨èçæ å表æ¿
- çæè¨èåå¡ï¼CAUTION/NEUTRAL/SUPPORTIVEï¼
- 鷿夿·åå¡ï¼CHEAP/FAIR/RICHï¼
- SHFE/COMEX z-score 峿æ¸å¼
é è²ï¼Bloomberg æ·±è²ä¸»é¡ï¼ä¾æ bloomberg-style-chart-guide.mdï¼
- èæ¯:
#1a1a2eï¼æ·±èé»è²ï¼ - ç¶²æ ¼:
#2d2d44ï¼æç°ç´«ï¼ - é
å¹ï¼primaryï¼:
#ff6b35ï¼æ©ç´ è²ï¼ - SHFE 庫åï¼secondaryï¼:
#ffaa00ï¼æ©é»è²ï¼ - COMEX 庫åï¼tertiaryï¼:
#ffff00ï¼é»è²ï¼ - CAUTION è¨è:
#ff4444ï¼ç´ è²ï¼ - SUPPORTIVE:
#00ff88ï¼ç¶ è²ï¼ - 䏿§:
#888888ï¼ç°è²ï¼
å¿«é繪åï¼
cd scripts
python visualize_inventory_signal.py
輸åºè·¯å¾ï¼{å°æ¡æ ¹ç®é}/output/copper_inventory_signal_YYYY-MM-DD.png
å表æèªå輸åºå°å°æ¡æ ¹ç®éç output/ è³æå¤¾ï¼æªåå
å«ç¶å¤©æ¥æã
<output_example>
Markdown 輸åºç¯ä¾
# é
ï¼åº«ååè£è¨èï¼SHFE / COMEXï¼
## ææ°çæ
- æ¸ææ¥æï¼2026-01-26
- SHFE 庫åï¼235,000 å¸
- SHFE 4 é±åè£é度 z-scoreï¼+1.9ï¼ç°å¸¸å¿«ï¼
- COMEX 庫åï¼18,500 å¸
- COMEX 4 é±åè£é度 z-scoreï¼+0.5ï¼æ£å¸¸ï¼
- 總庫åï¼SHFE + COMEXï¼ï¼253,500 å¸
- é
æè²¨å¹æ ¼ï¼4.52 USD/lb
## çæå¤æ·ï¼æ¯å¦ãæé»è¶
åãï¼
- è¨èï¼**â ï¸ CAUTION**
- åå ï¼SHFE 庫åãæ°´ä½åé«ãä¸ãåè£é度ç°å¸¸å¿«ã
- æ·å²é©èï¼éå»åé¡è¨èå¨ Â±2 é±å
§å°æå±é¨é«é»çå½ä¸çç´ **62%**
- è§£è®ï¼çç·æ´å®¹æåºç¾ãæ¼²å¢å壿°£ / åæªãè䏿¯ä¸è·¯é 風
## 鷿夿·ï¼æ¯å¦ä»ãå便å®ãï¼
- é
å¹ 10 å¹´æ·å²å使¸ï¼0.32ï¼ä½æ¼ 0.35ï¼
- çµè«ï¼**ð é·æå便å®**ï¼ä½ä¸ä»£è¡¨çç·ä¸æå
æ´çï¼
---
### æ¸æä¾æº
- SHFE 庫åï¼MacroMicro (CDP)
- COMEX 庫åï¼MacroMicro (CDP)
- é
å¹ï¼Yahoo Finance (HG=F)
JSON 輸åºç¯ä¾
{
"asof": "2026-01-26",
"near_term_signal": "CAUTION",
"long_term_view": "CHEAP",
"latest": {
"shfe_inventory_tonnes": 235000,
"shfe_rebuild_z": 1.9,
"comex_inventory_tonnes": 18500,
"comex_rebuild_z": 0.5,
"total_inventory_tonnes": 253500,
"copper_price": 4.52,
"price_percentile": 0.32
},
"backtest": {
"peak_match_window_weeks": 2,
"signal_to_local_peak_hit_rate": 0.62,
"signal_count": 21
}
}
</output_example>
<success_criteria> åææåææç¢åºï¼
- SHFE å COMEX åº«åæ¸æå·²å¾ MacroMicro å ¨èªåæå並快å
- é æè²¨å¹æ ¼æ¸æå·²å¾ Yahoo Finance æå
- SHFE å COMEX ç¶ååè£é度 z-score è庫åå使¸
- çæè¨èï¼CAUTION / NEUTRAL / SUPPORTIVEï¼
- æ·å²è¨èå½ä¸ç忏¬çµæ
- 鷿广 ¼å使¸èå¤è®ï¼CHEAP / FAIR / RICHï¼
- Bloomberg é¢¨æ ¼è¦è¦ºåå表
- æç¢ºæ¨è¨»æ¸æä¾æºèè¨ç®æ¹æ³ </success_criteria>
<references_index>
| æä»¶ | å §å®¹ |
|---|---|
| references/data-sources.md | SHFE 庫åèé 广¸æä¾æºãCDP æå說æ |
| references/methodology.md | åè£é度 z-scoreãå使¸è¨ç®æ¹æ³è« |
| references/historical-episodes.md | æ·å²è¨è觸ç¼äºä»¶å°ç § |
| </references_index> |
<workflows_index>
| Workflow | Purpose |
|---|---|
| workflows/quick-check.md | å¿«éæª¢æ¥ç¶åè¨èçæ |
| workflows/full-analysis.md | 宿´æ·å²é©èåæ |
| workflows/visualize.md | è¦è¦ºååè¡¨çæ |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| templates/output-json.md | JSON è¼¸åºæ ¼å¼è¦ç¯ |
| templates/output-markdown.md | Markdown è¼¸åºæ ¼å¼è¦ç¯ |
| </templates_index> |