Skip to content

[FR] Add CME Equity Index Futures Provider (ES, NQ, MNQ, MES) #7427

@edcadet10

Description

@edcadet10

Problem Statement

OpenBB's current futures coverage is limited to:

  • yFinance — delayed daily OHLCV bars, limited symbol mapping
  • Deribit — crypto derivatives only (BTC/ETH futures)
  • CBOE — futures curve data only

There is no dedicated provider for CME equity index futures — the most actively traded futures contracts globally (ES, NQ, MNQ, MES, RTY, YM). These are critical for:

  • Quantitative research and backtesting
  • Institutional portfolio analysis
  • Overnight/globex session analysis
  • Basis/spread analysis between cash index and futures

Proposed Solution

Create an openbb-cme provider extension that sources data from freely available CME Group APIs and public data feeds:

Data Sources (No API Key Required)

  1. CME DataMine (delayed) — Free historical settlement data: https://www.cmegroup.com/market-data/datamine-api.html
  2. CME Settlements — Daily settlement prices published publicly
  3. CME QuikStrike — Implied volatility, term structure (public endpoints)
  4. CFTC COT Enhancement — Extend the existing openbb-cftc provider with futures-specific positioning data

Proposed Fetchers

Fetcher Standard Model Description
CMEFuturesHistorical FuturesHistoricalData OHLCV + settlement + open interest
CMEFuturesCurve FuturesCurveData Term structure across expirations
CMEFuturesInfo FuturesInfoData Contract specs (tick size, multiplier, margins)
CMEFuturesInstruments FuturesInstrumentsData Available contracts + expiration dates

Additional Fields (Provider-Specific)

  • settlement_price — official daily settlement (distinct from close)
  • open_interest — daily OI from CME
  • tick_size, point_value, multiplier — contract specifications
  • session (RTH/ETH/globex) — for session-aware analysis
  • margin_initial, margin_maintenance — from CME SPAN

Priority Symbols

Symbol Name Exchange Daily Volume
ES E-mini S&P 500 CME/Globex ~1.5M contracts
NQ E-mini Nasdaq-100 CME/Globex ~800K contracts
MES Micro E-mini S&P CME/Globex ~1.5M contracts
MNQ Micro E-mini Nasdaq CME/Globex ~1M contracts
RTY E-mini Russell 2000 CME/Globex ~200K contracts
YM E-mini Dow CBOT/Globex ~100K contracts

Benefits

Implementation Notes

  • Follows existing provider pattern (see openbb-deribit as template for futures-specific models)
  • Standard models already exist: FuturesHistoricalData, FuturesCurveData, FuturesInfoData, FuturesInstrumentsData
  • I trade CME Micro E-mini Nasdaq (MNQ) futures daily and have experience with CME data formats, contract rollovers, and session mechanics
  • Happy to implement this — looking for maintainer feedback on scope before starting

Acceptance Criteria

  • Historical OHLCV + settlement for ES, NQ, MNQ, MES, RTY, YM
  • Contract specifications (tick size, multiplier, margins)
  • Futures curve / term structure
  • Available instruments with expiration dates
  • Tests with recorded HTTP fixtures (>90% coverage)
  • Documentation with usage examples

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions