CFTC 트레이더 포지션을 선물 심리 특성으로 활용
기사 Machine Learning for Trading
요약
이 가이드는 주간 선물 포지션 데이터 출처로 공개된 CFTC 트레이더 포지션 보고서를 소개합니다. 딜러, 자산 운용사, 레버리지 자금 등의 참여자를 분류하는 Traders in Financial Futures 보고서와 상업 거래자, 운용 자금, 스왑 딜러 등의 범주를 사용하는 원자재 선물용 세분화 보고서를 구분합니다. 상품별 파일에는 보고 날짜, 미결제약정, 트레이더의 매수·매도·순포지션이 들어 있습니다. 포지션 분석, Z 점수, 역발상 신호, 선물 전략 특성 등에 활용할 수 있지만 검증된 거래 규칙이나 성과 증거를 제시하지는 않습니다.
핵심 구현상 주의점은 공개 시점입니다. 각 스냅샷은 화요일 기준 포지션을 설명하지만 금요일 오후가 되어야 공개됩니다. 이 가이드는 일봉 백테스트에서 더 보수적인 6일의 역일 공개 시차를 권장합니다. 시장 데이터에 보고서를 맞출 때 미래 참조 편향을 막는 데 중요합니다. 금융 선물 보고서와 원자재 보고서는 열 구성이 다르므로 데이터를 합칠 때 스키마 차이를 반영해야 합니다. 이 문서는 접근 및 저장 방식을 설명하지만 신호 강도, 범주 해석, 포지션 특성이 수익률을 개선하는지는 평가하지 않습니다.
핵심 아이디어
- CFTC 보고서는 트레이더 범주별 주간 선물 포지션을 제공합니다.
- 금융 선물과 원자재 선물은 서로 다른 보고서 유형과 범주명을 사용합니다.
- 포지션 측정 항목에는 매수, 매도, 순포지션, 미결제약정, 상품, 보고 날짜가 포함됩니다.
- 백테스트에서는 화요일 스냅샷과 금요일 공개 사이의 시차를 반영해야 합니다.
- 이 가이드는 가능한 특성 활용법을 제시하지만 수익성 있는 포지션 전략을 입증하지는 않습니다.
태그
전문
# Futures Positioning: CFTC Commitment of Traders
# Futures Positioning: CFTC Commitment of Traders
Weekly positioning snapshots (Tuesday; released Friday at 3:30 PM ET) for
CME / ICE / CBOT futures, broken down by trader category. Free and public
domain. Used in Ch4 NB 10 for sentiment/positioning features and in
Ch8 / Ch16 for futures strategy inputs.
## Dataset
| Report type | Trader categories | Products |
| --- | --- | --- |
| TFF (Traders in Financial Futures) | Dealers, Asset Managers, Leveraged Money | Financial futures (ES, NQ, 6E, ZN, …) |
| Disaggregated | Commercials, Managed Money, Swap Dealers | Commodity futures (CL, GC, ZC, …) |
Product mapping + report-type dispatch live in the `ml4t.data.cot` library
(`ml4t.data.cot.PRODUCT_MAPPINGS`). The downloader here wraps that library
and persists one parquet per product to the local data store.
## Download
```bash
# Default: all products in PRODUCT_MAPPINGS, 2020 through current year
uv run python data/futures/positioning/cot_download.py
# Subset of products + longer history
uv run python data/futures/positioning/cot_download.py --products ES,NQ,CL,GC --start-year 2010
# Override output root
uv run python data/futures/positioning/cot_download.py --data-path /tmp/ml4t-data
```
## Directory Layout
```
$ML4T_DATA_PATH/futures/positioning/cot/
└── {PRODUCT}.parquet # one parquet per product code (e.g., ES.parquet)
```
## Schema
Columns vary by report type but always include:
| Column | Notes |
| --- | --- |
| `product` | Exchange product code (ES, CL, GC, …) |
| `report_type` | CFTC report that produced the row |
| `report_date` | Tuesday snapshot date |
| `open_interest` | Total open interest |
Per-trader long/short/net columns by report type:
- **Financial (TFF)**: `dealer_long/short/net`, `asset_mgr_long/short/net`, `lev_money_long/short/net`
- **Commodity (disaggregated)**: `commercial_long/short/net`, `managed_money_long/short/net`, `swap_long/short/net`
## Loading
```python
from data import load_cot, list_cot_products
# Everything available locally
df = load_cot()
# Subset + date filter
df = load_cot(products=["ES", "NQ"], start_date="2020-01-01", end_date="2024-12-31")
# Enumerate what's been downloaded
list_cot_products() # -> ['CL', 'ES', 'GC', 'NQ', ...]
```
`load_cot()` uses `diagonal_relaxed` concat so financial and commodity
products can be combined in one frame despite their different schemas.
## Release Lag
CFTC publishes reports Friday at 3:30 PM ET; the snapshot is as-of
**Tuesday** of the same week (3-day lag). For daily-bar backtests a
conservative +6 calendar-day availability lag from Tuesday is standard.
## Consumers
- **Ch4 NB 10** — positioning analysis, z-scores, contrarian signals
- **Ch8** — futures_features.py (positioning feature family)
- **Ch16** — futures strategies using CoT signals출처의 라이선스에 따라 출처를 표시하고 전문을 공개합니다. 라이선스: MIT
이 요약은 원문을 바탕으로 Stratmill의 리서치 에이전트가 작성했으며, 원문을 복사한 것이 아닙니다.