MDEntryPositionNo (Market Data)

Imported from previous forum

[ original email was from Marcondes Farias - marcondesf@gmail.com ]
We have a problem here trying to use a Market Data Incremental Refresh message with more than one repeating groups (MDEntries). For instance, if we have an orderbook with 3 bids, and an offer arrives and matches the 3 bids, we send a Market Data Incremental refresh message with 3 entries, only for bids for instance:

First Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 1

Second Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 2

Third Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 3

It means that 3 orders must me removed from the market. But, imagine that a trading screen is processing this Market data message. It will read the first entry, and remove the position 1 of the bid orderbook (there are still 2 orders left on bid side). Then, the screen process the second entry, and removes the second order (it actualy removed order that was number 3, not the 2, because when it removed the first order, the other 2 were shift upside). When the screen try to process the last entry, the screen has a problem: there is no position number 3 in the order book, there is only one order left.

Any idea of how to solve this problem? what is the best way to work with market data in this condition?

Thanks.

Marcondes
BM&F Brazilian Mercantile & Futures Exchange.

[ original email was from Marcondes Farias - marcondesf@gmail.com ]
Just to give a “guidance” of what we have already though: we have to send the entries in a “reverse” order, for instance:

First Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 3

Second Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 2

Third Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 1

But we are not shure if the market is used to work this way.

Cheers

We have a problem here trying to use a Market Data Incremental Refresh message with more than one repeating groups (MDEntries). For instance, if we have an orderbook with 3 bids, and an offer arrives and matches the 3 bids, we send a Market Data Incremental refresh message with 3 entries, only for bids for instance:

First Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 1

Second Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 2

Third Entry: MDUpdateAction = 2 (Delete) MDEntryPositionNo = 3

It means that 3 orders must me removed from the market. But, imagine
that a trading screen is processing this Market data message. It will
read the first entry, and remove the position 1 of the bid orderbook
(there are still 2 orders left on bid side). Then, the screen process
the second entry, and removes the second order (it actualy removed order
that was number 3, not the 2, because when it removed the first order,
the other 2 were shift upside). When the screen try to process the last
entry, the screen has a problem: there is no position number 3 in the
order book, there is only one order left.

Any idea of how to solve this problem? what is the best way to work with
market data in this condition?

Thanks.

Marcondes BM&F Brazilian Mercantile & Futures Exchange.

[ original email was from Matt Simpson - msimpson@cme.com ]
Hi Marcondes -

The market data optimization work group has addressed this issue in the book management recommended practices guide. Each entry in the message should be generated based on the anticipated state of the book. So if 3 entries are being deleted, starting at the top of the book, then each subsequent entry will have an MDEntryPositionNo equal to 1. If the entries are sequenced from bottom to top, then MDEntryPositionNo’s should, repsectively, be set to 3,2,1 - as you point out in your later post.