About US Futures

The US Futures dataset by AlgoSeek provides Futures data, including price, volume, open interest, and expiry. The data covers the 75 most liquid contracts, starts in May 2009, and is delivered on any frequency from tick to daily. This dataset is created by monitoring the trading activity on the CFE, CBOT, NYMEX, ICE*, SGX, India, and COMEX markets.

This dataset does not include ICE Futures, except for Sugar until July 2021.


About AlgoSeek

AlgoSeek is a leading historical intraday US market data provider offering the most comprehensive and detailed market data and analytics products in the financial industry covering equities, futures, options, cash forex, and cryptocurrencies. AlgoSeek data is built for quantitative trading and machine learning. For more information about AlgoSeek, visit algoseek.com.


About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.


Algorithm Example

from AlgorithmImports import *
from QuantConnect.DataSource import *

class USFuturesDataAlgorithm(QCAlgorithm):

    def initialize(self) -> None:
        self.set_start_date(2013, 12, 20) 
        self.set_end_date(2014, 2, 20)
        self.set_cash(1000000) 
        self.universe_settings.asynchronous = True
        # Requesting data
        self.mini_gold = self.add_future(Futures.Metals.GOLD) 
        self.mini_gold.set_filter(0, 90)
        
        self.micro_gold = self.add_future(Futures.Metals.MICRO_GOLD) 
        self.micro_gold.set_filter(0, 90)
        
        self.contract = {self.mini_gold.symbol: None, self.micro_gold.symbol: None}
    
    def on_data(self, slice: Slice) -> None:
        for kvp in slice.future_chains:
            symbol = kvp.Key
            
            if symbol in self.contract:
                chain = kvp.Value
                
                # Select the contract with the greatest open interest
                most_liquid_contract = sorted(chain, key=lambda contract: contract.open_interest, reverse=True)[0]
                
                if self.contract[symbol] is None or most_liquid_contract.symbol != self.contract[symbol].symbol:
                    if self.contract[symbol] is not None:
                        self.liquidate(self.contract[symbol].symbol)
                    self.contract[symbol] = most_liquid_contract
                    
                    if symbol == self.mini_gold.symbol:
                        self.market_order(self.contract[symbol].symbol, 1)
                    elif symbol == self.micro_gold.symbol:
                        self.market_order(self.contract[symbol].symbol, -1)
                
                
    def on_securities_changed(self, changes: SecurityChanges) -> None:
        for security in changes.added_securities:
            # Historical data
            history = self.history(security.symbol, 10, Resolution.MINUTE)
            self.debug(f"We got {len(history)} from our history request for {security.symbol}")

Example Applications

The US Futures dataset enables you to accurately design Futures strategies. Examples include the following strategies: