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

Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, 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 buyer or seller imbalance for a security, the value of an index, the trading session high price, low price, or VWAP, or the trade volume or open interest in a security. Market Data Entries usually have a price and 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. When several Market Data Entries at one price tier could each represent a broker, Market Maker, ECN or Exchanges 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, the trading session high price, low price, or VWAP, or the volume traded or open interest in a security.

If the message is used for disseminating imbalance information, conventions are as follows:

MDEntrySize (271) represents the size of the imbalance and is always a positive integer.

A TradeCondition (277) of either P or Q is required to indicate the side of the imbalance.

Markets may wish to indicate the presence of an imbalance but not the actual size. In this case, MDEntrySize (271) need not be specified.

One specifies whether a list of trades, a 1-sided or 2-sided book, index, opening, closing, settlement, high, low and VWAP prices and imbalance volumes should be returned by using the NoMDEntryTypes (267) field and MDEntryType (269) repeating group to list all MDEntryType (269) 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.

See VOLUME 7 - PRODUCT: FOREIGN EXCHANGE section for more detailed usage notes specific to Foreign Exchange.

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = V
262 MDReqID @ReqID Y Must be unique, or the ID of previous Market Data Request (V) to disable if SubscriptionRequestType (263) = Disable previous Snapshot + Updates Request (2).
263 SubscriptionRequestType @SubReqTyp Y SubcriptionRequestType 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.
<Parties> N Insert here the set of Parties (firm identification) fields defined in "Common Components of Application Messages".
264 MarketDepth @MktDepth Y
265 MDUpdateType @UpdtTyp C Required if SubscriptionRequestType (263) = Snapshot + Updates (1).
266 AggregatedBook @AggBook N
286 OpenCloseSettlFlag @OpenClsSettlFlag N Can be used to clarify a request if MDEntryType (269) = Opening Price(4), Closing Price(5), or Settlement Price(6).
546 Scope @Scope N Defines the scope(s) of the request
547 MDImplicitDelete @ImplctDel N Can be used when MarketDepth (264) >= 2 and MDUpdateType (265) = Incremental Refresh(1).
267 NoMDEntryTypes Req Y Number of MDEntryType (269) fields requested.
=> 269 MDEntryType @Typ 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 InstReq Y Number of symbols (instruments) requested.
=> <Instrument> Y Insert here the set of "Instrument" fields defined in "Common Components of Application Messages".
=> 711 NoUnderlyings N Number of underlyings
=> => <UnderlyingInstrument> C Must be provided if Number of underlyings > 0
=> 555 NoLegs Leg N Number of legs Identifies a Multi-leg Execution if present and non-zero.
=> => <InstrumentLeg> C Must be provided if Number of legs > 0
=> 15 Currency @Ccy N
=> 537 QuoteType @Typ N
=> 63 SettlType @SettlTyp N
=> 64 SettlDate @SettlDt N
=> 271 MDEntrySize @Sz N Quantity or volume represented by the Market Data Entry. In the context of the Market Data Request (V) this allows the Initiator to indicate the quantity of the market data request. Specific to FX this field indicates the ceiling amount the customer is seeking prices for.
386 NoTradingSessions TrdSes N Specifies the number of repeating TradingSessionIDs
=> 336 TradingSessionID @SesID C Required if NoTradingSessions (386) is > 0.
=> 625 TradingSessionSubID @SesSub N
815 ApplQueueAction @ApplQuActn N Action to take if application level queuing exists
812 ApplQueueMax @ApplQuMax N Maximum application queue depth that must be exceeded before queuing action is taken.
1070 MDQuoteType @MDQteTyp N
<Standard Message Trailer> Y