Market Data Request (MsgType = V, FIXML = MarketDataReq)

Some systems allow the transmission of real-time quote, order, trade and/or other price information on a subscription basis. A Market Data Request (V) is a general request for market data on specific securities or forex quotes.

A successful Market Data Request (V) returns one or more Market Data messages containing one or more Market Data Entries. Each Market Data Entry is a Bid, an Offer, a Trade associated with a security, the opening, closing, or settlement price of a security, the value of an index, or the trading session high price, low price, or VWAP. Market Data Entries have a price and usually a quantity associated with them. For example, in an order book environment, requesting just the top of book will result in only two active Market Data Entries at a time - one for the best Bid and one for the best Offer. For a full book, the Bid and Offer side may each have several Market Data Entries. Each Market Data Entry might represent an aggregate for each price tier, and only one Market Data Entry per side per price would be active at a time. This is referred to as an Aggregated book. Or several Market Data Entries at one price tier could each represent a broker, Market Maker, ECN or Exchange\s quote in a security, or individual orders in a book. This is a Non-Aggregated book. Alternately, a Market Data Entry could represent a completed trade in a security, the value of an index, the opening, closing, or settlement price of an instrument, or the trading session high price, low price, or VWAP.

If the message is used for foreign exchange, conventions for identifying the forex transaction are as follows:

A Snapshot causes the current state of the market to be sent. A Snapshot + Updates causes the current state of the market to be sent, and any updates as they occur, until the client requests that the Snapshot + Updates be disabled.

When just a Snapshot is requested, the complete data for only one security or forex quote will be returned per FIX Market Data message.

One specifies whether a list of trades, a 1-sided or 2-sided book, index, opening, closing, settlement, high, low and VWAP prices should be returned by using the NoMDEntryTypes (267) field and MDEntryType repeating group to list all MDEntryType values that should be returned.

While this document specifies many parameters and modes in a request, the recipient of the request is not required to support all of them. A Market Data Request Reject (Y) may be sent in response to a request indicating that it cannot be honored.

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = V
262 MDReqID MDReqID Y Must be unique, or the ID of previous Market Data Request to disable if SubscriptionRequestType (263) = Disable previous Snapshot + Updates Request (2).
263 SubscriptionRequestType SubscriptionReqType Y SubscriptionRequestType (263) indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.
264 MarketDepth MarketDepth Y
265 MDUpdateType MDUpdateType C Required if SubscriptionRequestType (263) = Snapshot + Updates (1).
266 AggregatedBook AggregatedBook N
267 NoMDEntryTypes NoMDEntryTypes Y Number of MDEntryType (269) fields requested.
=> 269 MDEntryType MDEntryType Y Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting the Market Data is interested in receiving.
146 NoRelatedSym NoRelatedSym Y Number of symbols requested.
=> 55 Symbol Symbol Y Must be the first field in the repeating group.
=> 65 SymbolSfx SymbolSfx N Can be repeated multiple times if message is related to multiple symbols.
=> 48 SecurityID SecurityID N Can be repeated multiple times if message is related to multiple symbols.
=> 22 IDSource IDSource N Can be repeated multiple times if message is related to multiple symbols.
=> 167 SecurityType SecurityType N Must be specified if a Future or Option. If a Future: Symbol (55) , SecurityType (167) , and MaturityMonthYear (200) are required. If an Option: Symbol (55) , SecurityType (167) , MaturityMonthYear (200) , PutOrCall (201) , and StrikePrice (202) are required.
=> 200 MaturityMonthYear MonthYear C Specifies the month and year of maturity. Required if MaturityDay (205) is specified.
=> 205 MaturityDay Day N Can be used in conjunction with MaturityMonthYear (200) to specify a particular maturity date.
=> 201 PutOrCall PutCall C For Options.
=> 202 StrikePrice StrikePx C For Options.
=> 206 OptAttribute OptAttribute N For Options.
=> 231 ContractMultiplier ContractMultiplier N For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount.
=> 223 CouponRate CouponRate N For Fixed Income.
=> 207 SecurityExchange SecurityExch N Can be used to identify the security.
=> 106 Issuer Issuer N Can be repeated multiple times if message is related to multiple symbols.
=> 348 EncodedIssuerLen EncodedIssuerLen C Must be set if EncodedIssuer (349) field is specified and must immediately precede it.
=> 349 EncodedIssuer EncodedIssuer C Encoded (non-ASCII characters) representation of the Issuer (106) field in the encoded format specified via the MessageEncoding (347) field.
=> 107 SecurityDesc SecurityDesc N Can be repeated multiple times if message is related to multiple symbols.
=> 350 EncodedSecurityDescLen EncodedSecDescLen C Must be set if EncodedSecurityDesc (351) field is specified and must immediately precede it.
=> 351 EncodedSecurityDesc EncodedSecDesc C Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field.
=> 336 TradingSessionID TrdSesID N
<Standard Message Trailer> Y