Is MDEntryPositionNo the Position Within a Price Level or Across All Price Levels?

Imported from previous forum

I am currently drafting a market data specification for disseminating order depth via the Market Data Incremental Refresh and/or Market Data Snapshot (Full Fresh) messages of FIX 5.0 Service Pack 1.

I am a little unclear on how the field MDEntryPositionNo (290) should be populated. Assume, for the sake of example, that there are four orders in an order book; two orders at the best price point and two orders and the next price point. If a third order is added to the second best price point is its MDEntryPositionNo “3” or “5”?

In terms of the Market Data Working Group’s Recommended Practices for Book Management, MDEntryPositionNo (290) is an order’s position within a price level.

However, in terms of its description in the specification for FIX 5.0 Service Pack 1, MDEntryPositionNo is the “display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1”. The inclusion of the words “per market side”, imply that MDEntryPositionNo is an order’s position within a side (not within a price level) of the order book. The fourth paragraph of the section that describes the Market Data Incremental Refresh message (Volume 3, page 77) also seems to imply that MDEntryPositionNo is an order’s position within a side.

Lalin,

from a performance point of view it does not seem advisable to have position numbers across a wide range of orders, e.g. all orders on one side of the book. The reason is that a new best order coming in would require to update all entry position numbers of one or even both sides. The recommended practice of doing this only per price level seems superior in terms of performance.

I would take the liberty of being more restrictive than the general field comment you cited below and read it as “display position of a bid or offer, numbered from most competitive to least competitive, per market side or market side and price level, beginning with 1”. It might be less complex to have just an overall numbering but there is a trade-off between complexity and performance.

Regards,
Hanno.

I am currently drafting a market data specification for disseminating
order depth via the Market Data Incremental Refresh and/or Market Data
Snapshot (Full Fresh) messages of FIX 5.0 Service Pack 1.

I am a little unclear on how the field MDEntryPositionNo (290) should be
populated. Assume, for the sake of example, that there are four orders
in an order book; two orders at the best price point and two orders and
the next price point. If a third order is added to the second best price
point is its MDEntryPositionNo “3” or “5”?

In terms of the Market Data Working Group’s Recommended Practices for
Book Management, MDEntryPositionNo (290) is an order’s position within a
price level.

However, in terms of its description in the specification for FIX 5.0
Service Pack 1, MDEntryPositionNo is the “display position of a bid or
offer, numbered from most competitive to least competitive, per market
side, beginning with 1”. The inclusion of the words “per market side”,
imply that MDEntryPositionNo is an order’s position within a side (not
within a price level) of the order book. The fourth paragraph of the
section that describes the Market Data Incremental Refresh message
(Volume 3, page 77) also seems to imply that MDEntryPositionNo is an
order’s position within a side.

It would be advisable to expand the definition of MDEntryPositionNo based on the usage described in the MDOWG Book Management Best Practices to indicate that it is used to identify the position of an order within a Price Level.

FIX 5.0 introduced MDPriceLevel/1023 for ordering each side of the book and reassigned the use of MDEntryPositionNo/290 to sequence orders within a price level.

Matt Simpson

Lalin,

from a performance point of view it does not seem advisable to have
position numbers across a wide range of orders, e.g. all orders on one
side of the book. The reason is that a new best order coming in would
require to update all entry position numbers of one or even both sides.
The recommended practice of doing this only per price level seems
superior in terms of performance.

I would take the liberty of being more restrictive than the general
field comment you cited below and read it as “display position of a bid
or offer, numbered from most competitive to least competitive, per
market side or market side and price level, beginning with 1”. It might
be less complex to have just an overall numbering but there is a trade-
off between complexity and performance.

Regards, Hanno.

I am currently drafting a market data specification for disseminating
order depth via the Market Data Incremental Refresh and/or Market Data
Snapshot (Full Fresh) messages of FIX 5.0 Service Pack 1.

I am a little unclear on how the field MDEntryPositionNo (290) should
be populated. Assume, for the sake of example, that there are four
orders in an order book; two orders at the best price point and two
orders and the next price point. If a third order is added to the
second best price point is its MDEntryPositionNo “3” or “5”?

In terms of the Market Data Working Group’s Recommended Practices for
Book Management, MDEntryPositionNo (290) is an order’s position within
a price level.

However, in terms of its description in the specification for FIX 5.0
Service Pack 1, MDEntryPositionNo is the “display position of a bid or
offer, numbered from most competitive to least competitive, per market
side, beginning with 1”. The inclusion of the words “per market side”,
imply that MDEntryPositionNo is an order’s position within a side (not
within a price level) of the order book. The fourth paragraph of the
section that describes the Market Data Incremental Refresh message
(Volume 3, page 77) also seems to imply that MDEntryPositionNo is an
order’s position within a side.

Hanno and Matt - Thanks very much indeed for your feedback.

I had already proceeded on the basis that MDEntryPositionNo (290) is the position within a price level. It seemed the more appropriate of the two options. Perhaps the description of this field could be refined slightly in a later version of the protocol. Although the description of MDPriceLevel (1023) does include the text “This is in contrast to MDEntryPositionNo which is used to convey the position of an order within a Price level”.