tl;dr: If you use L2 Market by Order messages for CME/ICE futures, do you feel your systtem greatly benefits from the broader range of updated price points and/or the ability to correlate the OrderId with the L1 messages?
I'm asking because I coded my system under an older protocol so I only have L2 Market by Price. It works fine. But I'm trying to gague whether it's worth it to go back and update my custom software system (a fairly invasive change).
---- Original message below ----
I'm an IQFeed API programmer who mostly analyzes CME/ICE futures and I joined DTN well after the older forum posts which initially requested something like the L2 MBO data. Yet I also joined before protocol 6 was out of beta. As such, I originally coded my apps using protocol 5.2 to pull in the L2 MBP data and 'it wasn't broke so I didn't fix it'. I did upgrade my IQFeed client and protocol once 6.x came out and my apps do use the latest of each (though still only pull MBP data).
Lately, out of curiosity about whether my algorithms might beneifit from more/different data, I've been wondering what the main benefits of MBO data are over MBP. Here's what I believe I understand about the differences:
- MBO data doesn't have the same limitation on number of levels per side (buy, sell)
- As a consequence of the first point, MBO summary messages may be of high volume while the initial state of all(?) prices are transmitted (with a consideration in the documentation to perhaps throttle these requests to avoid saturating the network connection and perhaps stalling other watches).
- There's an OrderId with MBO messages that lets you correlate(?) these messages with the OrderIds of L1 messages
- MBP updates replace the previous message you received at that price with a new aggregated total
- MBO updates are only deltas and you must maintain the structure of the price levels yourself and mathmatically apply the deltas as they come in
- Equity L2 (NASDAQ) comes through as MBO messages and includes MMID but not Order Id
If I made any errors or significant omissions above, please comment to correct them. So , focusing on futures -- I think the main benefits of MBO are the expanded price levels and using the OrderID to correlate with the L1 messages. Yet the cost would be recoding my apps to maintian the structure of the L2 data by applying the updates mathematically as well as potentially ingesting a bunch of price points far(?) from the current price activity. There is a potential fragility if MBO updates are somehow lost.
Please comment with your thoughts about switching from MBP levels to MBO updates (for markets that offer it). Do you make much use of the Order Id correlation and the broader price range (which may include prices far from the current price action)? Does an app analyzing L2 MBO data suddenly start consuming 3X the memory (vs MBP) to hold all the new price levels? If you switched, do you feel it was worth it? etc.
-Mark D. ValorEdited by mkvalor on Jul 20, 2023 at 10:54 PM