Continuous contract symbology now fully supported for live data

April 10, 2025
Title picture for Live APIs now fully support continuous contract symbology

We're excited to announce that our live APIs now support continuous contract symbology for all roll rules. You can request live data using open interest (n) and volume-based (v) symbology across all futures datasets: CME Globex MDP 3.0, ICE Futures Europe iMpact, and ICE Endex iMpact.

Continuous contract symbology will be fully supported for all upcoming live datasets, including ICE Futures US, EEX, and Eurex.

This marks a major improvement over our previous functionality, which was limited to calendar-based (c) rolls. This follows the nearest contract by expiration order rather than the contract with the highest open interest or trading volume. With the addition of open interest and volume roll rules, it's easier to follow the most liquid futures and options on futures:

  • Open interest (n): Selects the contract with the highest open interest from the available expirations, reflecting longer-term positioning.
  • Volume (v): Selects the contract with the highest trading volume, capturing short-term activity.

Continuous contract symbology simplifies working with futures data by using a single symbol to track contracts as they roll over, ranked by expiration, open interest, or volume. The symbol automatically resolves based on the roll rule you specify in the stype_in parameter. This eliminates the need to manually update your code each month as the front-month contract expires or liquidity shifts. You can learn more in our documentation.

This example demonstrates how to subscribe to the lead month (highest-ranking) Low Sulphur Gasoil contract on ICE Futures Europe using each of the three continuous roll rules.

import databento as db

client = db.Live()
client.subscribe(
    dataset="IFEU.IMPACT",
    schema="trades",
    stype_in="continuous",
    symbols=["G.c.0", "G.v.0", "G.n.0"],
)
for i, rec in enumerate(client):
    if isinstance(rec, db.SymbolMappingMsg):
        print(f"{rec.stype_in_symbol} maps to {rec.stype_out_symbol}")
    if i == 2:
        break

As of April 8, 2025, this prints:

G.c.0 maps to G   FMJ0025!
G.v.0 maps to G   FMK0025!
G.n.0 maps to G   FMK0025!

The index 0 refers to the lead month (highest-ranked) contract. G.c.0 maps to the front-month April (J) contract, while both G.n.0 and G.v.0 map to the May (K) contract, which has both the highest open interest and the highest volume. These symbols will automatically roll forward to represent the next instrument as the current contract reaches its expiration date or as market conditions change.