The Market Data messages are used as the response to a Market Data Request (V) message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these.
Market Data messages sent as the result of a Market Data Request (V) message will specify the appropriate MDReqID. Unsolicited Market Data messages can be sent; in such cases, MDReqID (262) will not be present.
Market Data messages include many fields, and not all are required to be used. A firm may, at its option, choose to send the minimum fields required, or may choose to send more information, such as tick direction, tagging of best quotes, etc.
Market Data messages can take two forms. The first Market Data message format used for a Snapshot, or a Snapshot + Updates where MDUpdateType (265) = Full Refresh (0) is as follows:
For Market Data Requests where a Bid or Offer is added, changed, or deleted, every update to a Market Data Entry results in a new Market Data message that contains the entirety of the data requested for that instrument, not just the changed Market Data Entry. In other words, both sides of the market, or just one side in the case of a request of only bids or offers, for the depth requested, must be sent in one FIX Market Data message.
A Market Data message may contain several trades, imbalances, an index value, opening, closing, settlement, high, low, and/or VWAP price for one instrument, as well as the traded volume and open interest, but only one instrument per message.
Messages containing bids and/or offers cannot contain trades, imbalances, index value, opening, closing, settlement, high, low, and/or VWAP prices, trade volume, or open interest as separate entires.
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 = W | |||||
| <ApplicationSequenceControl> | N | ||||||
| 911 | TotNumReports | @TotNumRpts | N | Total number or reports returned in response to a request. | |||
| 963 | MDReportID | @RptID | N | Unique indentifier for Market Data Report | |||
| 715 | ClearingBusinessDate | @BizDt | N | ||||
| 1021 | MDBookType | @MDBkTyp | N | Describes the type of book for which the feed is intended. Can be used when multiple feeds are provided over the same connection | |||
| 1173 | MDSubBookType | @MDSubBkTyp | N | Can be used to define a subordinate book. | |||
| 264 | MarketDepth | @MktDepth | N | Can be used to define the current depth of the book. | |||
| 1022 | MDFeedType | @MDFeedTyp | N | Describes a class of service for a given data feed, ie Regular and Market Maker | |||
| 1187 | RefreshIndicator | @RefInd | N | ||||
| 75 | TradeDate | @TrdDt | N | Used to specify the trading date for which a set of market data applies | |||
| 262 | MDReqID | @ReqID | N | Conditionally required if this message is in response to a Market Data Request. | |||
| <Instrument> | Y | Insert here the set of "Instrument" fields defined in "Common Components of Application Messages". | |||||
| 711 | NoUnderlyings | Undly | 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 | ||||
| 291 | FinancialStatus | @FinclStat | N | ||||
| 292 | CorporateAction | @CorpActn | N | ||||
| 451 | NetChgPrevDay | @NetChgPrevDay | N | ||||
| 268 | NoMDEntries | Full | Y | Number of entries following. | |||
| => | 269 | MDEntryType | @Typ | Y | Must be the first field in this repeating group. | ||
| => | 278 | MDEntryID | @ID | N | Conditionally required when maintaining an order-depth book, that is, when AggregatedBook (266) is "N". allows subsequent Incremental changes to be applied using MDEntryID. | ||
| => | 270 | MDEntryPx | @Px | C | Conditionally required if MDEntryType (269) is not Imbalance(A), Trade Volume (B), or Open Interest(C); Conditionally required when MDEntryType (269) = "auction clearing price" | ||
| => | 423 | PriceType | @PxTyp | N | |||
| => | <YieldData> | N | Insert here the set of YieldData (yield-related) fields defined in "Common Components of Application Messages" | ||||
| => | <SpreadOrBenchmarkCurveData> | N | Insert here the set of SpreadOrBenchmarkCurveData (Fixed Income spread or benchmark curve) fields defined in Common Components of Application Messages | ||||
| => | 40 | OrdType | @OrdTyp | N | Used to support market mechanism type; limit order, market order, committed principal order. | ||
| => | 15 | Currency | @Ccy | N | Can be used to specify the currency of the quoted price. | ||
| => | 271 | MDEntrySize | @Sz | C | Conditionally required if MDEntryType (269) = Bid(0), Offer(1), Trade(2), Trade Volume (B), or Open Interest(C); Conditionally required when MDEntryType (269) = "auction clearing price" | ||
| => | 1177 | NoOfSecSizes | SecSizesGrp | C | Number of entries following. Conditionally required when MDUpdateAction = New(0) and MDEntryType = Bid(0) or Offer(1). | ||
| => | => | 1178 | MDSecSizeType | @MDSecSizeType | C | Defines the type of secondary size specified in MDSecSize(1179). Must be first field in this repeating group | |
| => | => | 1179 | MDSecSize | @MDSecSize | N | ||
| => | 1093 | LotType | @LotTyp | N | Can be used to specify the lot type of the quoted size in order depth books. | ||
| => | 272 | MDEntryDate | @Dt | N | |||
| => | 273 | MDEntryTime | @Tm | N | |||
| => | 274 | TickDirection | @TickDirctn | N | |||
| => | 275 | MDMkt | @Mkt | N | Market posting quote / trade. Valid values: See Volume 6: Appendix 6-C | ||
| => | 336 | TradingSessionID | @SesID | N | |||
| => | 625 | TradingSessionSubID | @SesSub | N | |||
| => | 326 | SecurityTradingStatus | @TrdgStat | N | |||
| => | 327 | HaltReason | @HaltRsn | N | |||
| => | 276 | QuoteCondition | @QCond | N | Space-delimited list of conditions describing a quote. | ||
| => | 277 | TradeCondition | @TrdCond | N | Space-delimited list of conditions describing a trade | ||
| => | 282 | MDEntryOriginator | @Orig | N | |||
| => | 283 | LocationID | @LctnID | N | Deprecated in FIX.5.0. | ||
| => | 284 | DeskID | @DeskID | N | Deprecated in FIX.5.0. | ||
| => | 286 | OpenCloseSettlFlag | @OpenClsSettlFlag | N | Used if MDEntryType (269) = Opening Price(4), Closing Price(5), or Settlement Price(6). | ||
| => | 59 | TimeInForce | @TmInForce | N | For optional use when this Bid or Offer represents an order | ||
| => | 432 | ExpireDate | @ExpireDt | C | For optional use when this Bid or Offer represents an order. ExpireDate (432) and ExpireTime (126) cannot both be specified in one Market Data Entry. | ||
| => | 126 | ExpireTime | @ExpireTm | C | For optional use when this Bid or Offer represents an order. ExpireDate (432) and ExpireTime (126) cannot both be specified in one Market Data Entry. | ||
| => | 110 | MinQty | @MinQty | N | For optional use when this Bid or Offer represents an order | ||
| => | 18 | ExecInst | @ExecInst | N | Can contain multiple instructions, space delimited. | ||
| => | 287 | SellerDays | @SellerDays | N | |||
| => | 37 | OrderID | @OrdID | N | For optional use when this Bid, Offer, or Trade represents an order | ||
| => | 198 | SecondaryOrderID | @OrdID2 | N | For optional use to support Hit/Take (selecting a specific order from the feed) without disclosing a private order id. | ||
| => | 299 | QuoteEntryID | @EntryID | N | For optional use when this Bid, Offer, or Trade represents a quote | ||
| => | 288 | MDEntryBuyer | @Buyer | N | For optional use in reporting Trades | ||
| => | 289 | MDEntrySeller | @Seller | N | For optional use in reporting Trades | ||
| => | 346 | NumberOfOrders | @NumOfOrds | N | In an Aggregated Book, used to show how many individual orders make up an MDEntry | ||
| => | 290 | MDEntryPositionNo | @PosNo | N | Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1 | ||
| => | 546 | Scope | @Scope | N | |||
| => | 811 | PriceDelta | @PxDelta | N | |||
| => | 58 | Text | @Txt | N | Text to describe the Market Data Entry. Part of repeating group. | ||
| => | 354 | EncodedTextLen | @EncTxtLen | C | Must be set if EncodedText (355) field is specified and must immediately precede it. | ||
| => | 355 | EncodedText | @EncTxt | C | Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field. | ||
| => | 1023 | MDPriceLevel | @MDPxLvl | N | Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1 | ||
| => | 528 | OrderCapacity | @Cpcty | N | Designates the capacity of the firm placing the order | ||
| => | 1024 | MDOriginType | @MDOrigTyp | N | |||
| => | 332 | HighPx | @HighPx | N | Used to report high price in association with trade, bid or ask rather than a separate entity | ||
| => | 333 | LowPx | @LowPx | N | Used to report low price in association with trade, bid or ask rather than a separate entitty | ||
| => | 1020 | TradeVolume | @TrdVol | N | Used to report trade volume in association with trade, bid or ask rather than a separate entity | ||
| => | 63 | SettlType | @SettlTyp | N | |||
| => | 64 | SettlDate | @SettlDt | N | |||
| => | 1070 | MDQuoteType | @MDQteTyp | N | |||
| => | 83 | RptSeq | @RptSeq | N | Used to identify the sequence number within a feed type | ||
| => | 1048 | DealingCapacity | @DealingCpcty | N | Identifies role of dealer; Agent, Principal, RisklessPrincipal. | ||
| => | 1026 | MDEntrySpotRate | @MDEntrySpotRt | N | |||
| => | 1027 | MDEntryForwardPoints | @MDEntryFwdPnts | N | |||
| => | <Parties> | N | |||||
| 813 | ApplQueueDepth | @ApplQuDepth | N | Depth of application messages queued for transmission as of delivery of this message | |||
| 814 | ApplQueueResolution | @ApplQuResolution | N | Action taken to resolve application queuing | |||
| 215 | NoRoutingIDs | Rtg | C | Required if any RoutingType (216) and RoutingIDs are specified. Indicates the number within repeating group. | |||
| => | 216 | RoutingType | @RtgTyp | C | Indicates type of RoutingID. Required if NoRoutingIDs (215) is > 0. | ||
| => | 217 | RoutingID | @RtgID | C | Identifies routing destination. Required if NoRoutingIDs (215) is > 0. | ||
| <Standard Message Trailer> | Y | ||||||
© 2026.
EPAM Systems. All Rights Reserved.
All material contained within the website is copyright of EPAM Systems, Inc. No material contained herein can be copied or otherwise used without the express permission of the copyright holder.