This message is used to send incremental updates to market data for one or more instruments. This is optimized to minimize network overhead. If doing so is not important then Market Data Snapshot Full Refresh <35=W> will usually result in a simpler workflow. This message may contain any combination of new, changed, or deleted market data entries, for any number of instruments, so long as the maximum FIX message size is not exceeded.
Market data entries may have an MDEntryID (278), which must be unique among all currently active entries so they can be referenced later. When changing a market data entry, it may retain its MDEntryID (278), in which case only MDEntryID (278) would be populated. Alternatively, the MDEntryID (278) can change, in which case MDEntryID (278) will contain the new ID, and MDEntryRefID (280) specifies. An MDEntryID (278) can be reused within a day only if it has first been deleted.
Alternately, when showing the best quotes from a market maker or exchange, rather than orders in a book, MDEntryID (278) can be omitted. In this case, the combination side, symbol and market maker/exchange acts as a unique key. 'New' and 'change' entries will replace the previous entry for that key, and 'delete' will remove the entry.
If used, MDEntryPositionNo (290) requires special consideration. For example, assume ten bids for a security. Adding a new bid with MDEntryPositionNo (290) = 4 requires the receiver to shift down other entries, i.e. the 4th entry will shift to 5th, the 5th entry to 6th, etc. The sender must not send a modification of all entries in the less favourable positions just to update the MDEntryPositionNo (290) field; the recipient must infer the change.
Similarly, deleting an entry in the 7th position causes the 8th entry to move to 7th, the 9th entry to 8th, etc.
A change to MDEntryPositionNo (290) causes the entries lying between the old and new positions to shift. For instance, suppose an entry that occupied the 5th position is changed to the 8th position. This means that the 6th entry shifts to the 5th position, the 7th to 6th, and what was in the 8th position shifts into 7th to make room for the changed entry.
Several techniques are employed to reduce network traffic.
An instrument only needs to be identified when a market data entry is first created.
An entry can refer to a previous market data entry for the same instrument instead of duplicating the information.
A new market data entry will default to the same instrument of the previous entry within the message if Symbol (55) and MDEntryRefID (280) are omitted.
In the case of a change in an entry, only the changed fields need to be sent. For example, a change in MDEntrySize (271) but not MDEntryPx (270) only requires including the former.
When creating a new entry for an instrument similar to the instrument of the previous entry in the same message, only the symbol identification fields that have changed need to be send, such as MaturityMonthYear (200) or StrikePrice (202).
Tag | Name | Type | Required | Description |
---|---|---|---|---|
Component | ||||
262 | String | Conditionally required if this message is in response to a Market Data Request | ||
Component | Number of entries following | |||
813 | Int | Depth of application messages queued for transmission as of delivery of this message | ||
814 | Int Enum | Action taken to resolve application queuing | ||
Component |