Article

IBKR Futures Symbols: ES, NQ, CL and GC

Why a bare futures root returns the wrong instrument on a broker chart, and the exchange each of the common CME, CBOT, NYMEX and COMEX roots actually routes to.

Lee, who builds MyLinedChart

Author: Lee H., from Little Bird Trading

Created SEPTEMBER 11, 2026 | Last updated SEPTEMBER 11, 2026

  • Topic: ibkr futures symbol
  • Audience: futures traders, IBKR users, ES traders, NQ traders
Trading Platforms & Toolsfutures tradersIBKR usersES tradersibkr futures symbol

Type ES into a broker chart and there is a good chance you get Eversource Energy, a utility stock on the NYSE, instead of the E-mini S&P 500. The ticker is not wrong. It is incomplete, because a futures contract is only identified once you also say which exchange it trades on.

Why a Bare Futures Root Returns the Wrong Instrument

Ticker symbols are namespaced by exchange, not globally unique. ES is the E-mini S&P 500 on the CME and also Eversource Energy on the NYSE. CL is Light Sweet Crude on NYMEX and also Colgate-Palmolive. GC is gold on COMEX and also a handful of listed shells over the years.

When you send a bare root to a broker API, nothing in the request says which of those you meant. Interactive Brokers resolves contracts from a combination of symbol, security type and exchange. Send only the symbol and the default security type is a stock, so the stock is what comes back. The request succeeded. It just answered a different question.

This is not an IBKR quirk. Any broker API that models contracts properly has the same requirement, because the ambiguity is real and the API is refusing to guess.

  • Symbol alone does not identify a futures contract.
  • The default security type is an equity, so equities win the collision.
  • The call returns a valid result, which is why the mistake is easy to miss.

The Exchange Each Common Root Routes To

The four exchanges that cover almost all retail futures activity are CME, CBOT, NYMEX and COMEX. Which one a root belongs to is fixed and knowable, so it can be filled in for you rather than typed every time.

CME carries the equity index and FX complex: ES and MES for the S&P 500, NQ and MNQ for the Nasdaq 100, RTY and M2K for the Russell 2000, and the currency futures 6E, 6J, 6B, 6A and 6C.

CBOT carries the Dow contracts YM and MYM, the Treasury complex ZB, ZN, ZF and ZT, and the grains ZC, ZS, ZW, ZL and ZM.

NYMEX carries energy: CL and MCL for crude, NG for natural gas, RB for gasoline and HO for heating oil. COMEX carries metals: GC and MGC for gold, SI and SIL for silver, and HG for copper.

Note that the Dow and Treasury contracts sit on CBOT rather than CME even though they are CME Group products and quoted alongside the CME index futures. That single distinction is responsible for a large share of hand-typed routing errors.

  • CME: ES, MES, NQ, MNQ, RTY, M2K, 6E, 6J, 6B, 6A, 6C
  • CBOT: YM, MYM, ZB, ZN, ZF, ZT, ZC, ZS, ZW, ZL, ZM
  • NYMEX: CL, MCL, NG, RB, HO
  • COMEX: GC, MGC, SI, SIL, HG

Month-Coded Contracts: ESZ5 Is Not the Same Request as ES

A specific contract is written as root plus a month code plus a year digit. The month codes are the standard exchange set: F G H J K M N Q U V X Z for January through December. ESZ5 is the December E-mini, CLF26 is the January crude contract.

That is a different request from a bare ES. A bare root asks for the continuous front-month series, which is what you want for a chart that should keep working after expiry. A month-coded ticker pins one contract with a fixed expiry, which is what you want when you are reviewing a trade you actually held.

Single-digit year codes are ambiguous across decades by convention. ESZ5 could be 2025 or 2035, and the exchange convention never needed to distinguish them because nobody trades ten years out in the E-mini. Resolving to the nearest matching year is the correct reading.

  • Bare root: continuous front month, survives expiry.
  • Month-coded root: one contract, fixed expiry, correct for trade review.
  • Two-digit years such as CLF26 remove the decade ambiguity entirely.

What This Looks Like in Practice

In MyLinedChart you type ES and the chart resolves it to ES.CME before the request leaves your machine. CL becomes CL.NYMEX, GC becomes GC.COMEX, ZN becomes ZN.CBOT. Month-coded tickers are parsed first, so ESZ5 resolves its root to CME and then carries its own expiry alongside.

Symbols that already carry a dot are left alone, which matters more than it sounds. BRK.B is a share class, not an exchange suffix, and any rule that treats every dot as a routing hint breaks it. The suffix is only read as an exchange when it is a recognised one.

Everything here happens locally. The chart runs on your machine against your own broker credentials, and MyLinedChart reads market data rather than sending orders. See IBKR vs Alpaca vs Tradier: Costs, Limits, Data Gaps for how the broker APIs differ on contract modelling more broadly.

  • ES becomes ES.CME, CL becomes CL.NYMEX, GC becomes GC.COMEX.
  • Existing dotted symbols such as BRK.B are never rewritten.
  • Resolution happens on your machine, against your own credentials.

Where Inference Stops and You Type It Yourself

Inference covers the roots that are unambiguous enough to be safe. The bar for including a root is not that a future exists with those letters, it is that a trader typing them means the future. That is a deliberately conservative bar, and it means the list above is shorter than the full futures universe.

Anything outside it still works, you just supply the exchange yourself with a suffix. CFE for the VIX complex, ICEUS for the softs, and EUREX for the European rates and index contracts are all recognised, along with the four above.

If a root you use regularly is missing and genuinely unambiguous, that is a reasonable thing to raise. The failure mode being avoided is the opposite one: silently hijacking a bare ticker away from an equity that someone actually wanted.

  • The inference list is deliberately conservative, not exhaustive.
  • CFE, ICEUS and EUREX suffixes are recognised when typed explicitly.
  • An explicit suffix always overrides inference.

FAQ

Why does typing ES give me a utility stock instead of the E-mini?

Because ES is a valid NYSE ticker for Eversource Energy as well as the CME futures root. With no security type or exchange in the request, the broker API resolves to the equity. Adding the exchange, as ES.CME, removes the ambiguity.

Which exchange do the Dow and Treasury futures use?

CBOT, not CME. YM, MYM, ZB, ZN, ZF and ZT are CME Group products but they clear on CBOT, and routing them to CME will not resolve. This is the single most common hand-typed routing error.

What is the difference between ES and ESZ5?

ES requests the continuous front-month series, which keeps working after each expiry and is what you want on a running chart. ESZ5 pins the December contract with a fixed expiry, which is what you want when reviewing a trade you actually held in that contract.

Does this work for futures outside the common roots?

Yes, by typing the exchange suffix yourself. CFE, ICEUS and EUREX are recognised alongside CME, CBOT, NYMEX and COMEX. Automatic inference is limited to roots where a bare ticker unambiguously means the future.

Sample Structured Chart-Data Exports

Review how chart drawings, annotations, OHLC, volume, and execution context become reusable structured data.

Related Articles

More Video Guides