Chuyển đến nội dung
Tất cả tài liệu trong thư viện

Dùng vị thế nhà giao dịch CFTC làm đặc trưng tâm lý hợp đồng tương lai

Bài viết Machine Learning for Trading

Tóm tắt

Hướng dẫn này giới thiệu các báo cáo Commitment of Traders công khai của CFTC như một nguồn dữ liệu vị thế hợp đồng tương lai hàng tuần. Hướng dẫn phân biệt báo cáo Traders in Financial Futures, phân loại người tham gia như đại lý giao dịch, nhà quản lý tài sản và nhà đầu tư dùng đòn bẩy, với báo cáo phân tách dùng cho hợp đồng tương lai hàng hóa, có các nhóm như đơn vị thương mại, nhà quản lý tiền và đại lý hoán đổi. Tệp ở cấp sản phẩm có ngày báo cáo, hợp đồng mở và vị thế mua, bán, ròng của nhà giao dịch. Tài liệu nêu phân tích vị thế, điểm z, tín hiệu ngược chiều và đặc trưng chiến lược hợp đồng tương lai là những cách dùng khả dĩ, nhưng không đưa ra quy tắc giao dịch đã kiểm thử hay bằng chứng hiệu suất.

Lưu ý triển khai trọng yếu là thời điểm công bố. Mỗi ảnh chụp mô tả vị thế tính đến thứ Ba nhưng đến chiều thứ Sáu mới được công bố; hướng dẫn đề xuất độ trễ khả dụng thận trọng hơn là sáu ngày theo lịch cho backtest dữ liệu thanh ngày. Điều này giúp ngăn thiên lệch nhìn trước khi căn chỉnh báo cáo với dữ liệu thị trường. Các cột khác nhau giữa báo cáo tài chính và hàng hóa, vì vậy dữ liệu kết hợp cần xử lý những khác biệt về cấu trúc đó. Tài liệu giải thích quy ước truy cập và lưu trữ nhưng không đánh giá sức mạnh tín hiệu, cách diễn giải nhóm hay liệu đặc trưng vị thế có cải thiện lợi nhuận hay không.

Ý chính

  • Báo cáo CFTC cung cấp vị thế hợp đồng tương lai hàng tuần, được nhóm theo loại nhà giao dịch.
  • Hợp đồng tương lai tài chính và hàng hóa dùng các loại báo cáo và tên nhóm khác nhau.
  • Các thước đo vị thế gồm mua, bán, ròng, hợp đồng mở, sản phẩm và ngày báo cáo.
  • Backtest cần tính đến khoảng cách giữa ảnh chụp vị thế vào thứ Ba và thời điểm công bố vào thứ Sáu.
  • Hướng dẫn nêu các cách dùng đặc trưng khả dĩ nhưng không xác lập một chiến lược vị thế sinh lời.

Thẻ

Toàn văn
# 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

Hiển thị toàn văn kèm ghi nguồn theo giấy phép của tài liệu gốc. Giấy phép: MIT

Bản tóm tắt này do tác nhân nghiên cứu của Stratmill biên soạn từ tài liệu gốc; đây không phải bản sao của tài liệu.