Skip to content
All library documents

Interpreting Add, Update, and Remove Events in Futures Depth Feeds

Article Quant Q&A · Author: morleyc

Summary

The document presents a question about Level 2 depth data for an E-mini S&P 500 futures contract. Its example shows an ask quote added at a ladder position, updated several times, and then removed. The author asks why other removal events appear without a corresponding earlier add, whether multiple market makers can share a ladder position, and whether market-maker identifiers affect interpretation.

No answer resolving those questions is included, so the document does not establish the feed’s event semantics or provide a definitive reconstruction method. Its practical lesson is that add, update, and remove records cannot necessarily be interpreted from a filtered excerpt alone; understanding the data source’s ordering, position, and participant fields matters. The sample is a single observed sequence, not evidence about all CME depth-feed behavior, and the post raises the need for more detailed documentation without supplying it.

Key ideas

  • The example shows a futures ask quote added, updated, and then removed in a depth stream.
  • The author reports removal events for which no earlier add is visible in the captured data.
  • The post asks how ladder positions and market-maker identifiers relate to quote events.
  • It offers no definitive explanation, so feed-specific documentation is needed to interpret the records.

Tags

Full text
# ES futures exchange with CMEGROUP_DOM Depth of Market (Level 2)


# ES futures exchange with CMEGROUP_DOM Depth of Market (Level 2)












I am looking at quote data from ES contracts on NinjaTrader using the CMEGROUP_DOM data source, and trying to understand the events of add/update/remove of quotes and ordering.

The below simple case makes sense and is as i expect, line is added, updated then removed:

```
Sequence,Symbol,Exchange,Time,Type,Operation,Price,Volume,Position,MarketMaker
ES 06-24,Globex,2024-04-01T20:21:35.0190000,Ask,Add,5290,122,2,
ES 06-24,Globex,2024-04-01T20:21:35.2770000,Ask,Update,5290,128,2,3
ES 06-24,Globex,2024-04-01T20:21:35.3860000,Ask,Update,5290,127,2,3
ES 06-24,Globex,2024-04-01T20:21:35.4700000,Ask,Update,5290,112,2,3
ES 06-24,Globex,2024-04-01T20:21:35.8090000,Ask,Remove,0,0,2,3
```

But I am also seeing cases within the same stream where removes are happening, without any corresponding add prior:

Questions please as I rule out any coding issues during my capture (I dump direct to a file currently for this analysis, above screenshot is filtered for positions 0,1,2 of ask side):

- Why are there multiple removes performed but none added prior?

- Can market makers share the same position on the ladder (this makes total sense, but not what i am seeing in the data)?

- Is the market maker important, is this what is confusing me here?

- Pointers for books or links to understand the stream in more detail.

Thanks in advance.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.