About US Futures

The US Futures dataset by AlgoSeek provides Futures data, including price, volume, open interest, and expiry. The data covers the 162 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, CME, COMEX, and NYMEX.

Additionally this dataset includes ICE Sugar Futures (SB), and EUREX EU STOXX Futures (FESX).

This dataset also depends on the US Futures Security Master because the US Futures Security Master dataset contains information to construct continuous Futures.


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_cash(1000000)
        # Setting the continuous contract mapping criteria for both Gold and Micro Gold contracts, since we want to order the highest liquidity contracts
        self.set_security_initializer(lambda security: FuncSecuritySeeder(self.get_last_known_prices).seed_security(security))
        self.gold = self.add_future(Futures.Metals.GOLD,
            extended_market_hours=True,
            data_mapping_mode=DataMappingMode.OPEN_INTEREST,
            data_normalization_mode=DataNormalizationMode.BACKWARDS_RATIO,
            contract_depth_offset=0)
        self.micro_gold = self.add_future(Futures.Metals.MICRO_GOLD,
            extended_market_hours=True,
            data_mapping_mode=DataMappingMode.OPEN_INTEREST,
            data_normalization_mode=DataNormalizationMode.BACKWARDS_RATIO,
            contract_depth_offset=0)
        # The contract multiplier is cached in the Security symbol_properties property from the symbol properties database
        self.gold_multiplier = self.gold.symbol_properties.contract_multiplier
        self.micro_gold_multiplier = self.micro_gold.symbol_properties.contract_multiplier

    def on_data(self, slice: Slice) -> None:
        # Make sure to calculate the order size by the most updated price data of both contracts
        if not self.portfolio.invested and self.gold.symbol in slice.bars and self.micro_gold.symbol in slice.bars:
            # Calculate the order size for $500k
            # Get the quotient after dividing the contract multiplier since the order size must be whole number
            gold_quantity = 500000 / slice.bars[self.gold.symbol].close // self.gold_multiplier
            micro_gold_quantity = 500000 / slice.bars[self.micro_gold.symbol].close // self.micro_gold_multiplier

            self.market_order(self.gold.mapped, gold_quantity)
            self.market_order(self.micro_gold.mapped, micro_gold_quantity)
                
    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: