Download in Bulk
US Futures
Introduction
Download the US Futures dataset in bulk to get the full dataset without any selection bias. The bulk dataset packages contain trade, quote, and open interest data for every ticker and trading day.
Download History
To unlock local access to the US Futures dataset, open the Pricing page of your organization and subscribe to at least one of the following data packages:
- US Futures Daily History by AlgoSeek
- US Futures Hour History by AlgoSeek
- US Futures Minute History by AlgoSeek
- US Futures Second History by AlgoSeek
- US Futures Tick History by AlgoSeek
If you don't already subscribe to the billing permissions to change the organization's subscriptions.
data package, subscribe to it too. You needAfter you subscribe to local access, follow these steps to download the data:
- Log in to the Algorithm Lab.
- On the CLI tab of the dataset listing, use the CLI Command Generator to generate your download command and then copy it.
- Open a terminal in your organization workspace and then run the command from the CLI Command Generator.
The Ticker, Start Date, and End Date fields are irrelevant for bulk downloads.
Download Daily Updates
After you bulk download the US Futures dataset, new daily updates are available at 7 AM Eastern Time (ET) after each trading day. To unlock local access to the data updates, open the Pricing page of your organization and subscribe to at least one of the following data packages:
- US Futures Daily Updates by AlgoSeek
- US Futures Hour Updates by AlgoSeek
- US Futures Minute Updates by AlgoSeek
- US Futures Second Updates by AlgoSeek
- US Futures Tick Updates by AlgoSeek
You need billing permissions to change the organization's subscriptions.
After you subscribe to dataset updates, to update your local copy of the US Futures dataset, use the CLI Command Generator to generate your download command and then run it in a terminal in your organization workspace. Alternatively, instead of directly calling the lean data download
command, you can place a Python script in the data directory of your organization workspace and run it to update your data files. The following example script updates all data resolutions and markets:
import os import pandas as pd from datetime import datetime, time, timedelta from pytz import timezone from os.path import abspath, dirname os.chdir(dirname(abspath(__file__))) OVERWRITE = False # Define a method to download the data def __download_data(resolution, start=None, end=None): print(f"Updating {resolution} data...") command = f'lean data download --dataset "US Futures" --data-type "Bulk" --market "CBOT" --resolution "{resolution}"' if start: end = end if end else start command += f" --start {start} --end {end}" if OVERWRITE: command += " --overwrite" print(command) os.system(command) def __get_end_date() -> str: now = datetime.now(timezone("US/Eastern")) if now.time() > time(7,30): return (now - timedelta(1)).strftime("%Y%m%d") print('New data is available at 07:30 AM EST') return (now - timedelta(2)).strftime("%Y%m%d") def __download_high_frequency_data(latest_on_cloud): for resolution in ["minute", "second", "tick"]: dir_name = f"future/cbot/{resolution}/zc".lower() if not os.path.exists(dir_name): __download_data(resolution, '19980101') continue latest_on_disk = sorted(os.listdir(dir_name))[-1].split('_')[0] if latest_on_disk >= latest_on_cloud: print(f"{resolution} data is already up to date.") continue __download_data(resolution, latest_on_disk, latest_on_cloud) def __download_low_frequency_data(latest_on_cloud): for resolution in ["daily", "hour"]: file_name = f"future/cbot/{resolution}/zc.zip".lower() if not os.path.exists(file_name): __download_data(resolution) continue latest_on_disk = str(pd.read_csv(file_name, header=None)[0].iloc[-1])[:8] if latest_on_disk >= latest_on_cloud: print(f"{resolution} data is already up to date.") continue __download_data(resolution) if __name__ == "__main__": latest_on_cloud = __get_end_date() __download_low_frequency_data(latest_on_cloud) __download_high_frequency_data(latest_on_cloud)
The preceding script checks the date of the most recent ZC data you have from the CBOT market for tick, second, and minute resolutions. If there is new data available for any of these resolutions, it downloads the new data files and overwrites your hourly and daily files. If you don't intend to download all resolutions and markets, adjust this script to your needs.
Price
The following table shows the price of the US Futures dataset subscriptions:
Resolution | Price of Historical Data ($) | Price of Daily Updates ($/Year) |
---|---|---|
Daily | Contact us | 1,920 |
Hour | Contact us | 2,640 |
Minute | Contact us | 2,880 |
Second | Contact us | 2,880 |
Tick | Contact us | 2,880 |