US Futures Trade Only Minute Bar Guide
US Futures Trade Only Minute Bar Guide
version 1.3 (Jul 2021)
We are here to help you do great things with our market and reference data. For questions, feedback, and other concerns, you may reach our team of experts using the following contact information:
algoseek customer support
support@algoseek.com
(+1) 646 583 1832
algoseek sales
sales@algoseek.com
(+1) 646 583 1832
DATA ORGANIZATION AND FILE FORMAT 5
algoseek’s Futures, Spreads, and Future Options Trade Only Minute Bar datasets contain high-quality intraday transactions data for all securities listed on US exchanges. The data includes event-based bars designed for quantitative trading, backtesting, machine learning, and other advanced applications.
The contract specifications such as underlying asset, the quantity of the asset or contract size, expiration months, delivery location, and the delivery date upon execution can be found on the US futures products list, which is available at the following link: http://www.cmegroup.com/trading/products/.
The volume of futures varies from contract to contract. Some contracts, for example, ES front month, have multiple events per millisecond, and some contracts don’t have any trade events for 24 hours.
algoseek’s futures bars are event-based, which means a bar is only created when there is at least one event during a bar period.
Some futures have calculated prices that are not based on actual trades, and these are not included in bars. Only trades of the actual futures are included.
A bar file is created only if there is at least one trade during the entire 24 hours of a trading session.
If there is only one type of event during the bar period, the event fields will have the same values.
For example:
OpenPrice = HighPrice = LowPrice = ClosePrice
Bars are created only if there is a trade event. For illiquid futures with no trades on a given trade date, there will be no bar data file. Some very illiquid futures may not have any trades for weeks.
algoseek provides Futures market data in plain-text CSV files. The first row of the CSV file is a fixed header, and then rows of data corresponding to individual events. By default, data is organized into one file per symbol per trading day. For example, all events for ticker ESH0 on Jan 28, 2020, are stored in one CSV file.
Due to the large data size, CSV files are gzip-compressed (having a csv.gz extension) with a compression ratio of about 8:1.
Table 1 below provides the name, base event, default value, brief description, and data type for each data field (column) in the Futures Trade Only Minute Bar CSV file. Table column “Missing” indicates a default behavior in case the data field value is not present or cannot be calculated. The column value “Never” means that the data field value is always present.
Table 1: CSV File Fields Schema
Field | Type (Format) | Missing | Description |
Ticker | string | Never | Symbol name for a specific contract |
UTCDate | string (yyyymmdd) | Never | UTC trade date |
CallPut | string | Never | Option type (Call or Put) displayed as "C" or "P". Note: available only in Future Options dataset |
Strike | integer | Never | A fixed price for buying or selling underlying outright future contract. Note: available only in Future Options dataset |
Month | string | Never | A code for the expiration month for the option contract (as a single letter). Note: available only in Future Options dataset |
ExpirationYear | integer | Never | The expiration year of the option contract. Note: available only in Future Options dataset |
UTCTimeBarStart | string (time) | Never | For minute bars, the format is HH:MM. For second bars, it is HH:MM:SS. |
LocalDate | string (yyyymmdd) | Never | Local trade date based on local Chicago time |
LocalTimeBarStart | string (time) | Never | Local time in Chicago including daylight saving time changes |
OpenPrice | decimal | Blank | Price of the first trade |
HighPrice | decimal | Blank | Trade with the highest price |
LowPrice | decimal | Blank | Trade with the lowest price |
ClosePrice | decimal | Blank | Price of the last trade |
TotalVolume | integer | Never | Total Dollar Volume. (sum of each trade’s price * trade’s contract size) |
TotalQuantity | decimal | Never | The number of contracts. The Total Quantity is not equal to the sum of BuyQuantity + SellQuantity when there are trades with undefined buy/sell side in the bar. |
BuyQuantity | integer | Blank | Number of contracts with “Trade Aggressor on Buy” |
SellQuantity | integer | Blank | Number of contracts with “Trade Aggressor on Sell” |
TotalTradeCount |
integer |
Never | Total number of separate trades. The TotalTradeCount is not equal to the sum of BuyTradeCount + SellTradeCount when there are trades with undefined buy/sell side in the bar. |
BuyTradeCount | integer | Blank | Number of “Trade Aggressor on Buy” trades |
SellTradeCount | integer | Blank | Number of “Trade Aggressor on Sell” trades |
Time Bar Start Format: One-second bar 13:03:02 is from time greater than 13:03:01 to 13:03:02. One-minute bar 11:04 is from time greater than 11:04 to less than 11:05.
The timestamps are all in Coordinated Universal Time (UTC). However, each bar also includes fields “LocalDate” and “LocalTimeBarStart” in Chicago local time, which is in the Central Standard Time (CST) zone.
For example, an algoseek Futures timestamp of 181514415 is 18:15:14.415 UTC. During Daylight Saving Time this converts to 13:15:14.415 CST.
Given that UTC varies by five or six hours from Chicago local time, the “LocalDate” field can differ from the “UTCDate” field. Chicago Winter Time is UTC –6 hours, and Summer Daylight Saving Time (DST) is UTC –5 hours.
For example, UTCTimeBarStart time 01:30 (1:30 a.m. UTC) with UTC date 2017-08-15 will have LocalDate 2017-08-14, and LocalTimeBarStart 20:30 (8:30 p.m. CST) due to the 5-hour difference during Daylight Saving Time.
Note: Excel will automatically try to convert millisecond timestamps into Excel time and will fail. Please make sure to convert the millisecond timestamps to text when importing.