CFTC Commitment Of Traders — Weekly, 10y (2016–2026)
Ten years of weekly Commitment of Traders (COT) reports from the CFTC for 65 futures contracts (E-Mini S&P, Nasdaq 100, gold, oil, natural gas, grains, metals, currency futures, Treasury futures, VIX, and more). 31,976 weekly rows in a single gzipped CSV with ~128 columns covering: long/short positions for commercial hedgers, non-commercial speculators (managed money), other reportables, and non-reportables (small specs/retail), plus net positioning, open interest, and percentage breakdowns. Read with pandas.read_csv(path, compression='gzip', parse_dates=['date']). The classic positioning dataset for futures traders — useful for sentiment extremes, contrarian setups (commercial vs spec divergence), and macro-overlay strategies. Pair with the Macro Bundle's commodities OHLCV to combine price action with positioning shifts.
Use Cases
- Spec vs commercial positioning extremes as contrarian signals
- Net-position-change z-scores for macro overlay strategies
- Sentiment factor construction across commodities, currencies, equities futures
- Pair with Macro Bundle commodities OHLCV for price + positioning combined signals
- Backtest 'smart money' (commercial) vs 'dumb money' (small spec) regime models
Methodology
64 contracts from FMP commitment-of-traders-list. For each, fetched full weekly history from commitment-of-traders-report covering 2016-01-01 through build date.
Update Schedule
Static snapshot. CFTC publishes weekly on Friday for the prior Tuesday's data — refresh weekly if needed.
Attribution
Source: CFTC Commitment of Traders Reports via Financial Modeling Prep.
Schema
| name | type |
|---|---|
| symbol | string |
| date | string |
| cftcCommodityCode | string |
| cftcContractMarketCode | string |
| cftcMarketCode | string |
| cftcRegionCode | string |
| changeInCommLongAll | string |
| changeInCommShortAll | string |
| changeInNoncommLongAll | string |
| changeInNoncommShortAll | string |
| changeInNoncommSpeadAll | string |
| changeInNonreptLongAll | string |
| changeInNonreptShortAll | string |
| changeInOpenInterestAll | string |
Sample Data
| date | symbol | cftcMarketCode | cftcRegionCode | cftcCommodityCode | changeInCommLongAll | changeInCommShortAll | cftcContractMarketCode | changeInNoncommLongAll | changeInNonreptLongAll | changeInNoncommShortAll | changeInNoncommSpeadAll |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022-02-08 00:00:00 | NG | NYME | 1 | 23 | -5924 | -834 | 023651 | -1870 | 2062 | -6791 | -23147 |
| 2022-02-15 00:00:00 | NG | NYME | 1 | 23 | 17636 | 2884 | 023651 | -6151 | -2007 | 10184 | -45311 |
| 2022-02-22 00:00:00 | NG | NYME | 1 | 23 | -2845 | 1084 | 023651 | 7235 | 4196 | 6440 | 426 |
Get this via API
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'CFTC Commitment of Traders — Weekly, 10y (2016–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'CFTC Commitment of Traders — Weekly, 10y (2016–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urlsone time · open license
Details
Available formats