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↓、油價↑、金屬↑ 同時性
- 取得資料:COT 週報、宏觀指標(DXY/WTI/金屬)、基本面觸發(出口/USDA)
- 計算流量:淨部位週變化,分組彙總(Grains/Oilseeds/Meats/Softs/Total)
- 量化火力:用歷史分位數估算基金加碼空間
- 整合訊號:判斷「基金回來買」+ 「宏觀順風」+ 「基本面支持」
- 產出敘事:將圖表標註(如 Strong Corn Demand)轉為可重複的規則
輸出:週流量時序、最新狀態、火力分數、宏觀評分、可交易註解。
快速開始:分析最新 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
- 快速檢查 - 查看最新一週的基金部位變化與狀態
- 完整分析 - 指定日期範圍的資金流向分析與回測
- 視覺化圖表 - 生成分組柱狀圖與火力時序圖
- 監控模式 - 設定週度更新與訊號警報
- 方法論學習 - 了解 COT 分析與火力計算邏輯
請選擇或直接提供分析參數。
所有腳本使用 CFTC Socrata API 取得真實資料,無模擬數據。
| 文件 |
內容 |
| methodology.md |
COT 分析方法論、火力計算、訊號邏輯 |
| data-sources.md |
CFTC COT、FRED、Yahoo Finance 資料來源 |
| input-schema.md |
完整輸入參數定義 |
| contracts-map.md |
期貨合約與商品群組對照表 |
| macro-indicators.md |
宏觀指標定義與代理序列 |
|
|
| 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 風格視覺化圖表 |
|
|
|
必要參數
| 參數 |
類型 |
說明 |
| 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。
完整輸出結構見 templates/output-json.md。
1---2name: track-agri-hedge-fund-positioning3description: 用 COT 非商業部位變化,量化對沖基金在農產品期貨的資金流向,並把出口需求、USDA 數據、美元/原油/金屬等宏觀風向整合成可交易的敘事與訊號。4---5
6<essential_principles>
7
8<principle name="cot_as_flow_proxy">
9**COT 週資料作為資金流代理**
10
11CFTC Commitments of Traders 報告是追蹤對沖基金農產品部位的核心資料:
12- **截止日**:每週二收盤
13- **發布日**:每週五下午 3:30 ET
14- **交易者分類**:非商業(投機/基金)、商業(避險)、非報告
15
16資金流 = 本週淨部位 - 上週淨部位(以合約口數計)
17</principle>
18
19<principle name="group_aggregation">
20**分組彙總邏輯**
21
22使用 CFTC 原生分組(commodity_subgroup_name):
23
24| 群組 | CFTC 分組名稱 | 包含商品 |
25|----------|-------------------------|-----------------------------------|
26| Grains | GRAINS | Corn, Wheat (SRW/HRW/HRS), Oats |
27| Oilseeds | OILSEED and PRODUCTS | Soybeans, Soybean Oil/Meal, Canola|
28| Meats | LIVESTOCK/MEAT PRODUCTS | Live Cattle, Lean Hogs, Feeder |
29| Softs | FOODSTUFFS/SOFTS | Coffee, Sugar, Cocoa, OJ |
30| Fiber | FIBER | Cotton |
31| Dairy | DAIRY PRODUCTS | Milk, Butter, Cheese |
32
33**Total Flow = Grains + Oilseeds + Meats + Softs + Fiber + Dairy**
34</principle>
35
36<principle name="firepower_definition">
37**火力(Buying Firepower)量化**
38
39火力衡量基金是否還有加碼空間:
40
41```
42net_pos_percentile = rank(current_net_pos, past_N_weeks)
43firepower = 1 - net_pos_percentile
44```
45
46- **高火力(>0.6)**:部位處於歷史低檔,仍有大量買進空間
47- **低火力(<0.3)**:部位已接近歷史高檔,擁擠風險高
48</principle>
49
50<principle name="macro_tailwind">
51**宏觀順風評分**
52
53整合三個風險偏好指標:
54
55| 指標 | 訊號解讀 |
56|------------|------------------------------|
57| 美元 (DXY) | 走弱(負報酬)= 利於商品 |
58| 原油 (WTI) | 走強(正報酬)= 風險偏好上升 |
59| 金屬 | 走強(正報酬)= 循環需求樂觀 |
60
61**macro_tailwind_score = (DXY弱 + WTI強 + Metals強) / 3**
62</principle>
63
64<principle name="wed_fri_validation">
65**週中回補驗證框架**
66
67COT 只到週二,週三~週五需用代理證據:
68
691. **價格動能**:農產品/代理指數 Wed-Fri 累積報酬
702. **未平倉變化**:OI 擴張 = 新倉(非純換手)
713. **宏觀共振**:與 USD↓、油價↑、金屬↑ 同時性
72</principle>
73
74</essential_principles>
75
76<objective>
77追蹤對沖基金在農產品期貨的部位變化與資金流向:
78
791. **取得資料**:COT 週報、宏觀指標(DXY/WTI/金屬)、基本面觸發(出口/USDA)
802. **計算流量**:淨部位週變化,分組彙總(Grains/Oilseeds/Meats/Softs/Total)
813. **量化火力**:用歷史分位數估算基金加碼空間
824. **整合訊號**:判斷「基金回來買」+ 「宏觀順風」+ 「基本面支持」
835. **產出敘事**:將圖表標註(如 Strong Corn Demand)轉為可重複的規則
84
85輸出:週流量時序、最新狀態、火力分數、宏觀評分、可交易註解。
86</objective>
87
88<quick_start>
89
90**快速開始:分析最新 COT 資料**
91
92```bash
93cd .claude/skills/track-agri-hedge-fund-positioning/scripts
94pip install pandas numpy requests yfinance pyarrow # 首次使用
95python analyze_positioning.py --start 2023-01-01
96```
97
98輸出範例(真實資料):
99```json
100{
101 "skill": "track-agri-hedge-fund-positioning",
102 "as_of": "2026-01-20",
103 "data_source": "CFTC Socrata API (real data)",
104 "summary": {
105 "call": "Funds continue selling",
106 "all_signals": ["Funds continue selling", "Extreme short - watch for reversal", "Macro mood bullish"],
107 "confidence": 0.90
108 },
109 "latest_metrics": {
110 "flow_total_contracts": -24559,
111 "flow_by_group_contracts": {"grains": -31279, "oilseeds": 11517, "meats": 18972, "softs": -23887, "fiber": 1607, "dairy": -1489},
112 "buying_firepower": {"total": 0.86, "grains": 0.58, "oilseeds": 0.62, "meats": 0.31, "softs": 0.99, "fiber": 0.58, "dairy": 0.99},
113 "macro_tailwind_score": 0.67
114 }
115}
116```
117
118**視覺化圖表**:
119```bash
120python visualize_flows.py --weeks 52
121# 輸出:output/agri_fund_positioning_YYYY-MM-DD.png
122```
123
124</quick_start>
125
126<intake>
127需要進行什麼操作?
128
1291. **快速檢查** - 查看最新一週的基金部位變化與狀態
1302. **完整分析** - 指定日期範圍的資金流向分析與回測
1313. **視覺化圖表** - 生成分組柱狀圖與火力時序圖
1324. **監控模式** - 設定週度更新與訊號警報
1335. **方法論學習** - 了解 COT 分析與火力計算邏輯
134
135**請選擇或直接提供分析參數。**
136</intake>
137
138<routing>
139| Response | Action |
140|--------------------------------|-----------------------------------------------------------|
141| 1, "快速", "quick", "latest" | 執行 `python scripts/analyze_positioning.py` |
142| 2, "分析", "analyze", "full" | 執行 `python scripts/analyze_positioning.py --start DATE` |
143| 3, "視覺化", "chart", "plot" | 執行 `python scripts/visualize_flows.py --weeks 52` |
144| 4, "監控", "monitor", "weekly" | 閱讀 `workflows/monitor.md` 並執行 |
145| 5, "學習", "方法論", "why" | 閱讀 `references/methodology.md` |
146| 提供參數 (如日期範圍、商品) | 使用參數執行 `analyze_positioning.py` |
147
148**所有腳本使用 CFTC Socrata API 取得真實資料,無模擬數據。**
149</routing>
150
151<reference_index>
152**參考文件** (`references/`)
153
154| 文件 | 內容 |
155|---------------------|----------------------------------------|
156| methodology.md | COT 分析方法論、火力計算、訊號邏輯 |
157| data-sources.md | CFTC COT、FRED、Yahoo Finance 資料來源 |
158| input-schema.md | 完整輸入參數定義 |
159| contracts-map.md | 期貨合約與商品群組對照表 |
160| macro-indicators.md | 宏觀指標定義與代理序列 |
161</reference_index>
162
163<workflows_index>
164| Workflow | Purpose | 使用時機 |
165|----------------|----------------------|--------------------|
166| analyze.md | 完整資金流向分析 | 需要深度分析時 |
167| visualize.md | 生成視覺化圖表 | 需要重建新聞圖表時 |
168| monitor.md | 週度監控與警報 | 每週五 COT 更新後 |
169| cross-check.md | 宏觀與基本面交叉驗證 | 驗證敘事一致性時 |
170</workflows_index>
171
172<templates_index>
173| Template | Purpose |
174|--------------------|--------------------|
175| output-json.md | JSON 輸出結構定義 |
176| output-markdown.md | Markdown 報告模板 |
177| annotations.md | 圖表標註規則對照表 |
178</templates_index>
179
180<scripts_index>
181| Script | Command | Purpose |
182|------------------------|-----------------------------------|---------------------------------|
183| fetch_cot_data.py | `--start 2023-01-01 --summary` | 從 CFTC Socrata API 抓取 COT |
184| fetch_macro_data.py | `--start 2025-01-01 --summary` | 抓取宏觀指標(Yahoo/FRED) |
185| analyze_positioning.py | `--start 2023-01-01` | 主分析腳本(自動抓取+計算) |
186| visualize_flows.py | `--weeks 52` | 生成 Bloomberg 風格視覺化圖表 |
187</scripts_index>
188
189<input_schema_summary>
190
191**必要參數**
192
193| 參數 | 類型 | 說明 |
194|---------------|--------|---------------------------------|
195| date_start | string | 起始日期 (YYYY-MM-DD) |
196| date_end | string | 結束日期 (YYYY-MM-DD) |
197| cot_report | string | COT 類型 (legacy/disaggregated) |
198| trader_group | string | 交易者分類 (noncommercial) |
199| contracts_map | object | 合約→群組對照表 |
200
201**選用參數**
202
203| 參數 | 類型 | 預設值 | 說明 |
204|--------------------------|--------|--------|---------------------------|
205| position_metric | string | net | 部位衡量 (net/long/short) |
206| lookback_weeks_firepower | int | 156 | 火力計算視窗(週) |
207| macro_indicators | object | {...} | 宏觀指標設定 |
208| fundamental_inputs | object | {...} | 基本面資料設定 |
209| event_window_days | int | 3 | Wed-Fri 事件視窗 |
210| output_mode | string | both | 輸出格式 (markdown/json) |
211
212完整參數定義見 `references/input-schema.md`。
213
214</input_schema_summary>
215
216<output_schema_summary>
217```json
218{
219 "skill": "track-agri-hedge-fund-positioning",
220 "as_of": "2026-01-21",
221 "summary": {
222 "call": "Funds back & buying",
223 "confidence": 0.72,
224 "why": ["COT 週部位由負轉正", "分組同步改善", "宏觀順風"],
225 "risks": ["COT 只到週二", "USDA 報告可能反轉"]
226 },
227 "latest_metrics": {
228 "cot_week_end": "2026-01-21",
229 "flow_total_contracts": 58,
230 "flow_by_group_contracts": {
231 "grains": 35, "oilseeds": 25, "meats": 5, "softs": 0
232 },
233 "buying_firepower": {
234 "total": 0.63, "grains": 0.58, "oilseeds": 0.67
235 },
236 "macro_tailwind_score": 0.67
237 },
238 "annotations": [
239 {"label": "macro_mood_bullish", "rule_hit": true, "evidence": ["USD down", "crude up"]}
240 ]
241}
242```
243
244完整輸出結構見 `templates/output-json.md`。
245</output_schema_summary>
246
247<success_criteria>
248執行成功時應產出:
249
250- [ ] 週流量時序(Grains/Oilseeds/Meats/Softs/Fiber/Dairy/Total)
251- [ ] 最新一週的流量與淨部位
252- [ ] 各群組的火力分數(buying_firepower)
253- [ ] 宏觀順風評分(macro_tailwind_score)
254- [ ] 可交易呼叫(call)與信心水準
255- [ ] 圖表標註(annotations)與規則觸發
256- [ ] 風險提示與下一步建議
257- [ ] Bloomberg 風格視覺化圖表(output/agri_fund_positioning_YYYY-MM-DD.png)
258</success_criteria>