Позиции трейдеров CFTC как признаки настроений на рынке фьючерсов
Сводка
В руководстве открытые отчёты CFTC Commitment of Traders представлены как источник еженедельных данных о позициях на рынке фьючерсов. Различаются отчёт Traders in Financial Futures, где участники распределены по категориям, включая дилеров, управляющих активами и фонды с кредитным плечом, и дезагрегированный отчёт по товарным фьючерсам с такими категориями, как коммерческие участники, управляющие капиталом и своп-дилеры. Файлы по отдельным инструментам содержат даты отчётов, открытый интерес, а также длинные, короткие и чистые позиции трейдеров. В материале упомянуты возможные применения для анализа позиционирования, z-оценок, контртрендовых сигналов и признаков фьючерсных стратегий, но не приводятся проверенное торговое правило или данные об эффективности.
Главное предостережение при реализации касается сроков публикации. Каждый снимок описывает позиции по состоянию на вторник, но публикуется только в пятницу после полудня; для бэктестов на дневных барах руководство рекомендует более консервативную задержку доступности в шесть календарных дней. Это важно, чтобы избежать смещения из-за заглядывания вперёд при совмещении отчётов с рыночными данными. Столбцы в отчётах по финансовым и товарным инструментам различаются, поэтому объединённый набор данных должен учитывать эти различия схем. В документе объясняются способы доступа и хранения, но не оцениваются сила сигналов, интерпретация категорий или влияние признаков позиционирования на доходность.
Ключевые идеи
- Отчёты 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 по оригиналу и не является его копией.