US Futures Trade Only Second Bar
One-second event-based bars built only from executed trades in CME-listed futures: OHLC, dollar-style volume, contract and trade counts, and buy/sell aggressor splits.
How to use it
UTCDate/UTCTime are the event time in UTC and files cover UTC calendar days, so one CME overnight session spans two files and Sunday-evening trading lands under Monday's UTCDate. LocalDate/LocalTime are Chicago clock time and do not roll at the 17:00 CT session open; derive the exchange trade date yourself. The ticker is one contract month (e.g. ESZ3), not a continuous series; roll explicitly. Aggressor side comes from TypeMask bits 7 (buy) and 6 (sell); a plain TRADE means the initiator is unknown. Rows flagged as calculated (Flags 8) are not trades.
Typical use
Futures backtesting, roll research, and intraday microstructure on CME Group venues.
Limitations
Delivered as recorded from the source feed: AlgoSeek does not remove crossed or locked quotes, bad prints, or out-of-sequence packets unless contracted to. Consumers own cleaning. In the sample TotalQuantity differs from BuyQuantity + SellQuantity in 0 of 100 bars (trades with no aggressor side); BuyQuantity/BuyTradeCount are blank in 41 bars and SellQuantity/SellTradeCount in 33 (guide Missing = Blank). Bars are event-based and trade-only: a row exists only for a second with at least one actual trade, so the series is sparse (sample UTCTimeBarStart values skip empty intervals). A contract-day with no trades has no file; very illiquid contracts may have none for weeks. A file is created only if there is at least one trade in the whole 24-hour session. Calculated trade prices (not actual trades, Flags 8 in the tick data) are excluded from bars. If a bar has a single trade, OpenPrice = HighPrice = LowPrice = ClosePrice.
Coverage
Page: futures on US exchanges incl. CME, CBOT, COMEX and NYMEX, trade-only, full historical archive plus daily automated updates. Guide: bars for securities listed on US exchanges. Start of history not stated.
Venues (4)
- CME
- CBOT
- COMEX
- NYMEX
Answers to common questions
- What time zone are the timestamps in?
- UTC, with LocalDate/LocalTime fields in US Central (Chicago) time.
- Which file holds a Sunday-evening CME session?
- The Monday UTCDate file; files are UTC calendar days.
Usage constraints
- Licensed vendor data: never export raw rows to a tenant-local destination or include them verbatim in a public artifact; serve only through entitlement-checked platform reads.
- Do not treat the vendor's `Ticker` as a stable identity across time; join on an AlgoSeek security key (SecId or ASID, which are distinct) or the platform symbol mapping.
Known issues (4)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyGuide note says a one-second bar 13:03:02 covers times greater than 13:03:01 up to 13:03:02, which reads as end-labelled, while the column is named UTCTimeBarStart; the sample's first bar is 00:00:00 UTC (18:00:00 local, 20240129/20240128) with 6 trades, which is more consistent with a start-labelled [t, t+1 s) window, but the sample has no event times to prove it.
- Documentation discrepancyThe guide's worked timestamp example uses a minute-level time (UTCTimeBarStart 01:30 -> LocalTimeBarStart 20:30) although this dataset has only one-second bars.
- Documentation discrepancyGuide names TotalVolume 'Total Dollar Volume' (sum of price x contract size), but it equals price x number of contracts in price units, not USD notional (no contract multiplier). E.g. the 00:00:01 UTC bar has 11 contracts all at 4904.25 and TotalVolume 53946.75 in the sample.
16 columns in delivery order · file or table name fut_trades_1sec. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| Ticker | string | Key 1 · Partition · Required | Contract symbol: base symbol + month code + last digit of expiry year (e.g. ESZ3). Missing values: Never · Source: vendor guide and sample |
| UTCDate | dateyyyymmdd | Key 2 · Partition · Required | UTC trade date of the bar (the UTC calendar day of the bar start). Missing values: Never · Source: vendor guide and sample |
| UTCTimeBarStart | timeHH:MM:SS | Key 3 · Required | UTC start of the one-second bar, HH:MM:SS. Missing values: Never · Source: vendor guide and sample |
| LocalDate | dateyyyymmdd | Required | Chicago calendar date of the bar start (guide: local trade date); differs from UTCDate when UTC is 5-6 h ahead of the date. Missing values: Never · Source: vendor guide and sample |
| LocalTimeBarStart | timeHH:MM:SS | Chicago local start time of the bar (DST-aware), HH:MM:SS. Missing values: Never · Source: vendor guide and sample | |
| OpenPrice | number | Price of the first trade in the bar. Missing values: Blank · Source: vendor guide and sample | |
| HighPrice | number | Highest trade price in the bar. Missing values: Blank · Source: vendor guide and sample | |
| LowPrice | number | Lowest trade price in the bar. Missing values: Blank · Source: vendor guide and sample | |
| ClosePrice | number | Price of the last trade in the bar. Missing values: Blank · Source: vendor guide and sample | |
| TotalVolume | number | Sum of trade price x contracts over the bar (guide: 'Total Dollar Volume'); in price units, no contract multiplier applied (sample-checked). Missing values: Never · Source: vendor guide and sample | |
| TotalQuantity | integeri64 | Required | Total contracts traded in the bar; can exceed BuyQuantity + SellQuantity when some trades have no aggressor side. Unit: contracts · Missing values: Never · Source: vendor guide and sample |
| BuyQuantity | integeri64 | Contracts in trades with 'Trade Aggressor on Buy'; blank if none. Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| SellQuantity | integeri64 | Contracts in trades with 'Trade Aggressor on Sell'; blank if none. Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| TotalTradeCount | integeri64 | Required | Number of separate trades in the bar; can exceed BuyTradeCount + SellTradeCount when some trades have no aggressor side. Unit: count · Missing values: Never · Source: vendor guide and sample |
| BuyTradeCount | integeri64 | Number of 'Trade Aggressor on Buy' trades; blank if none. Unit: count · Missing values: Blank · Source: vendor guide and sample | |
| SellTradeCount | integeri64 | Number of 'Trade Aggressor on Sell' trades; blank if none. Unit: count · Missing values: Blank · Source: vendor guide and sample |
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- errorprimary_key_uniqueuniqueness
The declared primary key is unique within each delivered partition (one file or table snapshot).
duplicateValues (properties: Ticker, UTCDate, UTCTimeBarStart) must be 0
- errorbar_high_ge_lowaccuracy
HighPrice is never below LowPrice in the same row.
SELECT COUNT(*) FROM {object} WHERE HighPrice IS NOT NULL AND LowPrice IS NOT NULL AND HighPrice < LowPrice - warningopen_close_within_rangeaccuracy
Open and close usually sit inside the high-low range. Only a warning: some AlgoSeek aggregations take open/close from a different event set than high/low (seen in the Daily OHLC sample).
SELECT COUNT(*) FROM {object} WHERE OpenPrice > HighPrice OR OpenPrice < LowPrice OR ClosePrice > HighPrice OR ClosePrice < LowPrice - errorBuyTradeCount_non_negativeaccuracy
BuyTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE BuyTradeCount < 0 - errorSellTradeCount_non_negativeaccuracy
SellTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE SellTradeCount < 0 - errorTotalTradeCount_non_negativeaccuracy
TotalTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE TotalTradeCount < 0 - errorTotalVolume_non_negativeaccuracy
TotalVolume is never negative.
SELECT COUNT(*) FROM {object} WHERE TotalVolume < 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with a fixed header row, gzip-compressed (.csv.gz, about 8:1). By default one file per symbol (contract) per trading day (guide example: ESH0 on 2020-01-28). A file exists only if the contract had enough activity that day; no bucket, path or file-name pattern is given.
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
Service levels
- Update frequency
- Daily
- Retention
- Bounded by the license term
- Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
- History starts
- Not stated in the vendor documentation
Service levels describe the vendor feed as documented. They are draft values, not a commitment by AlphaSwarm.
Data Contract Editor · read-only preview — edits are not saved
Open-source Data Contract Editor (MIT). Changes stay in this browser tab: Cancel restores the published contract, and Download copy saves your edited YAML to your device only.
Contracts follow the Open Data Contract Standard (Bitol, LF AI & Data).
Vendor names are trademarks of their owners.