track-agri-hedge-fund-positioning
npx skills add https://github.com/fatfingererr/macro-skills --skill track-agri-hedge-fund-positioning
Agent 安装分布
Skill 文档
<essential_principles>
CFTC Commitments of Traders å ±åæ¯è¿½è¹¤å°æ²åºéè¾²ç¢åé¨ä½çæ ¸å¿è³æï¼
- æªæ¢æ¥ï¼æ¯é±äºæ¶ç¤
- ç¼å¸æ¥ï¼æ¯é±äºä¸å 3:30 ET
- 交æè åé¡ï¼éåæ¥ï¼ææ©/åºéï¼ã忥ï¼é¿éªï¼ãéå ±å
è³éæµ = æ¬é±æ·¨é¨ä½ – ä¸é±æ·¨é¨ä½ï¼ä»¥åç´å£æ¸è¨ï¼
ä½¿ç¨ CFTC åçåçµï¼commodity_subgroup_nameï¼ï¼
| ç¾¤çµ | CFTC åçµå稱 | å å«åå |
|---|---|---|
| Grains | GRAINS | Corn, Wheat (SRW/HRW/HRS), Oats |
| Oilseeds | OILSEED and PRODUCTS | Soybeans, Soybean Oil/Meal, Canola |
| Meats | LIVESTOCK/MEAT PRODUCTS | Live Cattle, Lean Hogs, Feeder |
| Softs | FOODSTUFFS/SOFTS | Coffee, Sugar, Cocoa, OJ |
| Fiber | FIBER | Cotton |
| Dairy | DAIRY PRODUCTS | Milk, Butter, Cheese |
Total Flow = Grains + Oilseeds + Meats + Softs + Fiber + Dairy
ç«åè¡¡éåºéæ¯å¦éæå 碼空éï¼
net_pos_percentile = rank(current_net_pos, past_N_weeks)
firepower = 1 - net_pos_percentile
- é«ç«åï¼>0.6ï¼ï¼é¨ä½èæ¼æ·å²ä½æªï¼ä»æå¤§éè²·é²ç©ºé
- ä½ç«åï¼<0.3ï¼ï¼é¨ä½å·²æ¥è¿æ·å²é«æªï¼ææ 風éªé«
æ´åä¸å風éªåå¥½ææ¨ï¼
| ææ¨ | è¨èè§£è® |
|---|---|
| ç¾å (DXY) | èµ°å¼±ï¼è² å ±é ¬ï¼= 婿¼åå |
| åæ²¹ (WTI) | èµ°å¼·ï¼æ£å ±é ¬ï¼= 風éªå好ä¸å |
| é屬 | èµ°å¼·ï¼æ£å ±é ¬ï¼= 循ç°éæ±æ¨è§ |
macro_tailwind_score = (DXYå¼± + WTIå¼· + Metalså¼·) / 3
COT åªå°é±äºï¼é±ä¸ï½é±äºéç¨ä»£çèæï¼
- 广 ¼åè½ï¼è¾²ç¢å/ä»£çææ¸ Wed-Fri ç´¯ç©å ±é ¬
- æªå¹³åè®åï¼OI æ´å¼µ = æ°åï¼éç´ææï¼
- å®è§å ±æ¯ï¼è USDâãæ²¹å¹âãé屬â åææ§
</essential_principles>
- åå¾è³æï¼COT é±å ±ãå®è§ææ¨ï¼DXY/WTI/é屬ï¼ãåºæ¬é¢è§¸ç¼ï¼åºå£/USDAï¼
- è¨ç®æµéï¼æ·¨é¨ä½é±è®åï¼åçµå½ç¸½ï¼Grains/Oilseeds/Meats/Softs/Totalï¼
- éåç«åï¼ç¨æ·å²å使¸ä¼°ç®åºéå 碼空é
- æ´åè¨èï¼å¤æ·ãåºéåä¾è²·ã+ ãå®è§é 風ã+ ãåºæ¬é¢æ¯æã
- ç¢åºæäºï¼å°å表æ¨è¨»ï¼å¦ Strong Corn Demandï¼è½çºå¯éè¤çè¦å
輸åºï¼é±æµéæåºãææ°çæ ãç«å忏ãå®è§è©åãå¯äº¤æè¨»è§£ã
<quick_start>
å¿«ééå§ï¼åæææ° COT è³æ
cd .claude/skills/track-agri-hedge-fund-positioning/scripts
pip install pandas numpy requests yfinance pyarrow # 馿¬¡ä½¿ç¨
python analyze_positioning.py --start 2023-01-01
輸åºç¯ä¾ï¼çå¯¦è³æï¼ï¼
{
"skill": "track-agri-hedge-fund-positioning",
"as_of": "2026-01-20",
"data_source": "CFTC Socrata API (real data)",
"summary": {
"call": "Funds continue selling",
"all_signals": ["Funds continue selling", "Extreme short - watch for reversal", "Macro mood bullish"],
"confidence": 0.90
},
"latest_metrics": {
"flow_total_contracts": -24559,
"flow_by_group_contracts": {"grains": -31279, "oilseeds": 11517, "meats": 18972, "softs": -23887, "fiber": 1607, "dairy": -1489},
"buying_firepower": {"total": 0.86, "grains": 0.58, "oilseeds": 0.62, "meats": 0.31, "softs": 0.99, "fiber": 0.58, "dairy": 0.99},
"macro_tailwind_score": 0.67
}
}
è¦è¦ºåå表ï¼
python visualize_flows.py --weeks 52
# 輸åºï¼output/agri_fund_positioning_YYYY-MM-DD.png
</quick_start>
- å¿«éæª¢æ¥ – æ¥çææ°ä¸é±çåºéé¨ä½è®åèçæ
- 宿´åæ – æå®æ¥æç¯åçè³éæµååæè忏¬
- è¦è¦ºåå表 – çæåçµæ±çåèç«åæåºå
- ç£æ§æ¨¡å¼ – è¨å®é±åº¦æ´æ°èè¨èè¦å ±
- æ¹æ³è«å¸ç¿ – äºè§£ COT åæèç«åè¨ç®é輯
è«é¸ææç´æ¥æä¾åæåæ¸ã
ææè ³æ¬ä½¿ç¨ CFTC Socrata API åå¾çå¯¦è³æï¼ç¡æ¨¡æ¬æ¸æã
<reference_index>
åèæä»¶ (references/)
| æä»¶ | å §å®¹ |
|---|---|
| methodology.md | COT åææ¹æ³è«ãç«åè¨ç®ãè¨èé輯 |
| data-sources.md | CFTC COTãFREDãYahoo Finance è³æä¾æº |
| input-schema.md | 宿´è¼¸å ¥åæ¸å®ç¾© |
| contracts-map.md | æè²¨åç´èåå群çµå°ç §è¡¨ |
| macro-indicators.md | å®è§ææ¨å®ç¾©è代çåºå |
| </reference_index> |
<workflows_index>
| Workflow | Purpose | ä½¿ç¨ææ© |
|---|---|---|
| analyze.md | 宿´è³éæµååæ | éè¦æ·±åº¦åææ |
| visualize.md | çæè¦è¦ºåå表 | éè¦é建æ°èå表æ |
| monitor.md | é±åº¦ç£æ§èè¦å ± | æ¯é±äº COT æ´æ°å¾ |
| cross-check.md | å®è§èåºæ¬é¢äº¤åé©è | é©èæäºä¸è´æ§æ |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| output-json.md | JSON 輸åºçµæ§å®ç¾© |
| output-markdown.md | Markdown å ±åæ¨¡æ¿ |
| annotations.md | å表æ¨è¨»è¦åå°ç §è¡¨ |
| </templates_index> |
<scripts_index>
| Script | Command | Purpose |
|---|---|---|
| fetch_cot_data.py | --start 2023-01-01 --summary |
å¾ CFTC Socrata API æå COT |
| fetch_macro_data.py | --start 2025-01-01 --summary |
æåå®è§ææ¨ï¼Yahoo/FREDï¼ |
| analyze_positioning.py | --start 2023-01-01 |
主åæè ³æ¬ï¼èªåæå+è¨ç®ï¼ |
| visualize_flows.py | --weeks 52 |
çæ Bloomberg é¢¨æ ¼è¦è¦ºåå表 |
| </scripts_index> |
<input_schema_summary>
å¿ è¦åæ¸
| 忏 | é¡å | 說æ |
|---|---|---|
| date_start | string | èµ·å§æ¥æ (YYYY-MM-DD) |
| date_end | string | çµææ¥æ (YYYY-MM-DD) |
| cot_report | string | COT é¡å (legacy/disaggregated) |
| trader_group | string | 交æè åé¡ (noncommercial) |
| contracts_map | object | åç´â群çµå°ç §è¡¨ |
é¸ç¨åæ¸
| 忏 | é¡å | é è¨å¼ | 說æ |
|---|---|---|---|
| position_metric | string | net | é¨ä½è¡¡é (net/long/short) |
| lookback_weeks_firepower | int | 156 | ç«åè¨ç®è¦çªï¼é±ï¼ |
| macro_indicators | object | {…} | å®è§ææ¨è¨å® |
| fundamental_inputs | object | {…} | åºæ¬é¢è³æè¨å® |
| event_window_days | int | 3 | Wed-Fri äºä»¶è¦çª |
| output_mode | string | both | è¼¸åºæ ¼å¼ (markdown/json) |
宿´åæ¸å®ç¾©è¦ references/input-schema.mdã
</input_schema_summary>
<output_schema_summary>
{
"skill": "track-agri-hedge-fund-positioning",
"as_of": "2026-01-21",
"summary": {
"call": "Funds back & buying",
"confidence": 0.72,
"why": ["COT é±é¨ä½ç±è² è½æ£", "åçµåæ¥æ¹å", "å®è§é 風"],
"risks": ["COT åªå°é±äº", "USDA å ±åå¯è½åè½"]
},
"latest_metrics": {
"cot_week_end": "2026-01-21",
"flow_total_contracts": 58,
"flow_by_group_contracts": {
"grains": 35, "oilseeds": 25, "meats": 5, "softs": 0
},
"buying_firepower": {
"total": 0.63, "grains": 0.58, "oilseeds": 0.67
},
"macro_tailwind_score": 0.67
},
"annotations": [
{"label": "macro_mood_bullish", "rule_hit": true, "evidence": ["USD down", "crude up"]}
]
}
宿´è¼¸åºçµæ§è¦ templates/output-json.mdã
</output_schema_summary>
<success_criteria> å·è¡æåææç¢åºï¼
- 鱿µéæåºï¼Grains/Oilseeds/Meats/Softs/Fiber/Dairy/Totalï¼
- ææ°ä¸é±çæµéèæ·¨é¨ä½
- å群çµçç«å忏ï¼buying_firepowerï¼
- å®è§é 風è©åï¼macro_tailwind_scoreï¼
- å¯äº¤æå¼å«ï¼callï¼èä¿¡å¿æ°´æº
- å表æ¨è¨»ï¼annotationsï¼èè¦å觸ç¼
- é¢¨éªæç¤ºèä¸ä¸æ¥å»ºè°
- Bloomberg é¢¨æ ¼è¦è¦ºåå表ï¼output/agri_fund_positioning_YYYY-MM-DD.pngï¼ </success_criteria>