EMA C++ RDM Usage Guide : 8 Market By Price Domain : 8.5 Specific Usage: LDF Direct and the Response Message Payload
 
8.5 Specific Usage: LDF Direct and the Response Message Payload
LDF Direct uses MARKET_BY_PRICE for several markets, including NYSE OpenBook, Archipelago ECN market depth, and Instinet ECN market depth.
The payload is a Map. Each refresh message for this Map includes SummaryData and up to 50 map entries. Updates are not sent for any map entry until after the RefreshMsg.Complete is set to true. DataDefinitions are not used to reduce bandwidth. Map.TotalCountHint is not provided.
Map.SummaryData is sent in every refresh message, even if it does not change. The fields used are from the RWFFld Field Dictionary:
PROD_PERM (1): Integer for permission information
CURRENCY (15): Enumeration of currency for the orders
TRD_UNITS (53): Enumeration of trade Units for the precision for which order prices are set
MKT_ST_IND (133): Enumeration of market state
RDN_EXCHD2 (1709): Enumeration of exchange on which the orders were placed
The MapEntry.Key’s data is a Buffer that contains the combination of price and order side (B for buy or S for Sell), so each key is unique within its map. The MapEntry.Key’’s data should be treated as a single entity and is not meant to be parsed.
The MapEntry.Value is a FieldList that contains the following information about the price point:
NO_ORD (3430): Integer for the Number of Orders aggregated into this MapEntry
ORDER_PRC (3427) & ORDER_SIDE (3428): Real and Enumeration for the order price & side (buy or sell/bid or ask)
ORDER_SIZE (3429): Real for the aggregated size of the order at this price
QUOTIM_MS (3855): Quote Time in millisecond since GMT of the current day in the GMT time zone
Some venues may provide an extra field that contains a map. The MapEntry.KeyData will have a KeyFieldId which is MMID (3435). If the positions of each market maker are available, then the MapEntry.Value will contain a FieldList. The field list will contain a single field with the position of that market maker. If positions for each market maker are not available, MapEntry.Value’s data type will be NoData.
The FieldList.DictId is 0, so it should be ignored.