faq:marketdata_request

MarketData Request

Subscribing to Streaming Data

The T4 FIX API provides (optional) subscriptions to streaming market data for all markets available in order routing. Market data is made available asynchronously and concurrently to order routing flow. Market data subscriptions are initiated with Market Data Request messages (Tag `35=V`) and are active during a FIX Session.

A Market Data Request specifies:

  • Exchange (`207=SecurityExchange`)
  • Contract (`55=Symbol`)
  • Market (`48=SecurityID`)

Subscription and unsubscription are handled via:

  • `263=1` – Subscribe (Snapshot + Updates)
  • `263=2` – Unsubscribe

Successful subscriptions return:

  • MarketData Snapshot (`35=W`)
  • MarketData Incremental Refresh (`35=X`)

Each Market Data Entry (e.g., bid, offer, trade, volume) may include price and quantity. For example:

  • Top of book: 2 entries (bid + offer)
  • Full book: multiple entries per side

Incremental Refresh provides only updated depth levels, improving bandwidth efficiency.

Unsuccessful requests result in a MarketData Request Reject message.

  • Snapshot (263=0) — Current state only.
  • Subscribe (263=1) — Snapshot + Updates.
  • Unsubscribe (263=2) — Cancel updates.
  • Subscribe Incremental (263=7) — Snapshot + Incremental Refresh.
  • Chart Data (263=4,5) — See below.

Buffering level (Tag `265`) options:

Value Buffering Type Description
2 SlowTrade SlowSmart + individual trades
3 SmartTrade Smart + individual trades
4 SlowSmart ~1/sec update if changed
5 Smart (Recommended) variable rate
6 FastSmart More frequent updates
7 All No buffering (high bandwidth)
8 FastTrade FastSmart + trades
9 TradeOnly Trades only (no depth)

Requested via Tag `264` (MarketDepth):

  • 1 — Top of book (Level 1)
  • 10 — Full depth (up to 10 levels)

Data can be matched using:

  • `48=SecurityID` (default)
  • `262=MDReqID` if `107=262` is included in request.

Available only in FIX sessions with `372=V` set.

Tag `263` values for Chart Data:

  • 4 = TIME_AND_SALES_DATA_BATCH (multi-day + session)
  • 5 = TIME_AND_SALES_CONTRACT (single day, no session span)

Additional fields:

  • `3200` = Start Date (UTCDateOnly)
  • `3201` = End Date
  • `3202`, `3203` = Session Time span (UTCTimeOnly)
  • `3204` = ChartType (0=Tick, 1=Sec, 2=Min, etc.)
  • `3205` = DataFormat (U, T, Z)
Tag Field Name Req’d Description
Standard Header Y MsgType = V
262 MDReqID Y MarketData Request ID
263 SubscriptionRequestType Y 0 = Snapshot, 1 = Subscribe, 2 = Unsubscribe, 4/5 = Chart
264 MarketDepth Y 1 = Top of book, 10 = Full depth
265 MDUpdateType N Throughput mode
267 NoMDEntryTypes Y Repeating Group
269 MDEntryType Y 0=Bid, 1=Offer, 2=Trade, 4=LastTrade, 5=Volume
146 NoRelatedSym Y Repeating Group
55 Symbol Y Contract Symbol
48 SecurityID Y T4 Market ID
167 SecurityType Y FUT, OPT, STK, etc.
207 SecurityExchange Y Exchange ID
107 SecurityDesc N If 107=262, match by MDReqID
1070 QuoteType N 1 = Ticks, 2 = Decimal
3200 StartDate N UTCDateOnly (for chart)
3201 EndDate N UTCDateOnly (for chart)
3202 SessionStartTime N UTCTimeOnly
3203 SessionEndTime N UTCTimeOnly
3204 ChartType N 0=Tick, 1=Sec, 2=Min, 3=Hour, 4=Day
3205 DataFormat N U = Uncompressed, T = Text, Z = Compressed
Standard Trailer Y

Subscribe to streaming data from a specific market

>> 10/10/2012 9:37:58 AM   [FIXMARKETDATAREQUEST] 34=1891|49=T4Example|56=T4|52=20121010-14:37:58.720|262=md-10/10/2012 9:37:58 AM|263=1|264=10|265=5|1070=1|267=3|269=0|269=1|269=2|146=1|55=ES|48=CME_20121200_ESZ2|167=FUT|207=CME_Eq|
[FIXMARKETDATAREQUEST]
[MsgSeqNum] 34 = 1891
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121010-14:37:58.720
[MDReqID] 262 = md-10/10/2012 9:37:58 AM
[SubscriptionRequestType] 263 = 1 (SNAPSHOT_PLUS_UPDATES)
[MarketDepth] 264 = 10
[MDUpdateType] 265 = 5 (SMART)
[NoMDEntryTypes] 267 = 3
[MDEntryType] 269 = 0 (BID)
[MDEntryType] 269 = 1 (OFFER)
[MDEntryType] 269 = 2 (IMPLIED_BID)
[NoRelatedSym] 146 = 1
[Symbol] 55 = ES
[SecurityID] 48 = CME_20121200_ESZ2
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq

UnSubscribe from a currently streaming market

>> 10/10/2012 9:37:59 AM   [FIXMARKETDATAREQUEST] 34=1892|49=T4Example|56=T4|52=20121010-14:37:59.765|262=md-10/10/2012 9:37:59 AM|263=2|264=10|265=5|1070=1|267=3|269=0|269=1|269=2|146=1|55=ES|48=CME_20121200_ESZ2|167=FUT|207=CME_Eq|
[FIXMARKETDATAREQUEST]
[MsgSeqNum] 34 = 1892
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121010-14:37:59.765
[MDReqID] 262 = md-10/10/2012 9:37:59 AM
[SubscriptionRequestType] 263 = 2 (DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST)
[MarketDepth] 264 = 10
[MDUpdateType] 265 = 5 (SMART)
[NoMDEntryTypes] 267 = 3
[MDEntryType] 269 = 0 (BID)
[MDEntryType] 269 = 1 (OFFER)
[MDEntryType] 269 = 2 (IMPLIED_BID)
[NoRelatedSym] 146 = 1
[Symbol] 55 = ES
[SecurityID] 48 = CME_20121200_ESZ2
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq

Chart Data Request (Uncompressed 1-minute bar for 10 minutes over 2 days)

>> 6/26/2013 6:40:01 PM   [FIXMARKETDATAREQUEST] 34=3|49=T4Example|56=T4|52=20130626-23:40:01.294|262=mdc-6/26/2013 6:40:01 PM|263=4|264=1|265=5|1070=1|267=0|146=1|55=ZC|48=LVCME_20121200_ZCZ2|167=FUT|207=LVCME_C|3200=20121212|3201=20121213|3202=09:00:00|3203=09:10:00|3204=2|3205=U|
[FIXMARKETDATAREQUEST]
[MsgSeqNum] 34 = 3
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20130626-23:40:01.294
[MDReqID] 262 = mdc-6/26/2013 6:40:01 PM
[SubscriptionRequestType] 263 = 4 (TIMEANDSALES_DATA_BATCH)
[MarketDepth] 264 = 1
[MDUpdateType] 265 = 5 (SMART)
[NoMDEntryTypes] 267 = 0
[NoRelatedSym] 146 = 1
[Symbol] 55 = ZC
[SecurityID] 48 = LVCME_20121200_ZCZ2
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = LVCME_C
[TradeDateStart] 3200 = 20121212
[TradeDateEnd] 3201 = 20121213
[SessionStartTime] 3202 = 09:00:00
[SessionEndTime] 3203 = 09:10:00
[ChartType] 3204 = 2 (MINUTE)
[DataFormat] 3205 = U (UNCOMPRESSED)

Chart Data Response

<< 06/26/2013 06:40:01.528 PM  [fixmarketdatasnapshot] 34=3|49=T4|56=T4Example|50=T4FIX|52=20130626-23:40:01.528|262=mdc-6/26/2013 6:40:01 PM-0|55=ZC|48=LVCME_20121200_ZCZ2|207=LVCME_C|965=16|3200=20121212|3201=20121213|3202=09:00:00.000|3203=09:10:00.000|3204=2|3205=2|268=2|269=Y|75=20121213|3210=15|3212=6|3211=20121213|3212=3|3213=20121212-22:59:30.004|3214=6|3212=3|3213=20121212-23:00:00.167|3214=2|3212=0|3280=25|3281=0|3208=MC|3209=12.5|3212=11|3225=20121213-07:09:06.379|3226=2342|3212=12|3222=20121213-07:09:06.379|3223=2445|3212=12|3222=20121213-14:30:52.193|3223=2147|3212=5|3254=20121213-15:05:00.000|3255=20121213-15:05:03.121|3256=72100|3257=72100|3258=72100|3259=72100|3260=1|3261=1|3262=0|3263=1|3264=1|3265=0|3212=3|3213=20121213-20:00:00.002|3214=7|3212=4|3216=20121213-20:15:06.096|3217=71225|3212=10|3219=20121213-20:15:06.096|3220=712.25|3212=3|3213=20121213-20:30:00.020|3214=1|3212=3|3213=20121213-22:00:00.014|3214=5|3212=3|3213=20121213-22:45:00.038|3214=1|3212=5|3254=20121213-15:06:00.000|3255=20121213-15:06:58.047|3256=72175|3257=72175|3258=72175|3259=72175|3260=4|3261=0|3262=4|3263=4|3264=0|3265=4|269=Y|75=20121212|3210=22|3212=6|3211=20121212|3212=3|3213=20121211-22:59:30.004|3214=6|3212=3|3213=20121211-23:00:00.035|3214=2|3212=0|3280=25|3281=0|3208=MC|3209=12.5|3212=11|3225=20121212-07:09:17.816|3226=3072|3212=12|3222=20121212-07:09:17.816|3223=3912|3212=3|3213=20121212-12:32:26.754|3214=0|3212=3|3213=20121212-12:37:11.707|3214=2|3212=3|3213=20121212-14:15:46.901|3214=0|3212=3|3213=20121212-14:26:11.089|3214=2|3212=5|3254=20121212-15:00:00.000|3255=20121212-15:00:58.211|3256=72375|3257=72400|3258=72375|3259=72400|3260=4|3261=0|3262=4|3263=4|3264=0|3265=4|3212=5|3254=20121212-15:01:00.000|3255=20121212-15:01:53.910|3256=72375|3257=72375|3258=72375|3259=72375|3260=32|3261=0|3262=32|3263=25|3264=0|3265=25|3212=5|3254=20121212-15:03:00.000|3255=20121212-15:03:59.071|3256=72400|3257=72425|3258=72400|3259=72425|3260=2|3261=0|3262=2|3263=2|3264=0|3265=2|3212=3|3213=20121212-15:33:00.451|3214=0|3212=3|3213=20121212-15:36:51.107|3214=2|3212=3|3213=20121212-20:00:00.002|3214=7|3212=4|3216=20121212-20:15:05.373|3217=72100|3212=10|3219=20121212-20:15:05.373|3220=72100|3212=3|3213=20121212-20:30:00.017|3214=1|3212=3|3213=20121212-22:00:00.015|3214=5|3212=3|3213=20121212-22:45:00.041|3214=1|3212=5|3254=20121212-15:09:00.000|3255=20121212-15:09:58.192|3256=72425|3257=72425|3258=72425|3259=72425|3260=10|3261=10|3262=0|3263=6|3264=6|3265=0|
[FIXMARKETDATASNAPSHOT]
[MsgSeqNum] 34 = 3
[SenderCompID] 49 = T4
[TargetCompID] 56 = T4Example
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20130626-23:40:01.528
[MDReqID] 262 = mdc-6/26/2013 6:40:01 PM-0
[Symbol] 55 = ZC
[SecurityID] 48 = LVCME_20121200_ZCZ2
[SecurityExchange] 207 = LVCME_C
[SecurityStatus] 965 = 16 (SUCCESS)
[TradeDateStart] 3200 = 20121212
[TradeDateEnd] 3201 = 20121213
[SessionStartTime] 3202 = 09:00:00.000
[SessionEndTime] 3203 = 09:10:00.000
[ChartType] 3204 = 2 (MINUTE)
[DataFormat] 3205 = 2 (T4BIN)
[NoMDEntries] 268 = 2
[MDEntryType] 269 = Y (CHART_DATA_BATCH)
[TradeDate] 75 = 20121213
[NoChartDatas] 3210 = 15
[Change] 3212 = 6 (TRADE_DATE)
[TradeDate] 3211 = 20121213
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-22:59:30.004
[MarketMode] 3214 = 6 (SUSPENDED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-23:00:00.167
[MarketMode] 3214 = 2 (OPEN)
[Change] 3212 = 0 (NONE)
[MinPriceIncrement] 3280 = 25
[Decimals] 3281 = 0
[PriceCode] 3208 = MC
[TickValue] 3209 = 12.5
[Change] 3212 = 11 (CLEARED_VOLUME)
[ClearedVolumeTime] 3225 = 20121213-07:09:06.379
[ClearedVolume] 3226 = 2342
[Change] 3212 = 12 (OPEN_INTEREST)
[OpenInterestTime] 3222 = 20121213-07:09:06.379
[OpenInterest] 3223 = 2445
[Change] 3212 = 12 (OPEN_INTEREST)
[OpenInterestTime] 3222 = 20121213-14:30:52.193
[OpenInterest] 3223 = 2147
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121213-15:05:00.000
[BarCloseTime] 3255 = 20121213-15:05:03.121
[BarOpenPrice] 3256 = 72100
[BarHighPrice] 3257 = 72100
[BarLowPrice] 3258 = 72100
[BarClosePrice] 3259 = 72100
[BarVolume] 3260 = 1
[BarBidVolume] 3261 = 1
[BarOfferVolume] 3262 = 0
[BarTradeCount] 3263 = 1
[BarTradesAtBid] 3264 = 1
[BarTradesAtOffer] 3265 = 0
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121213-20:00:00.002
[MarketMode] 3214 = 7 (HALTED)
[Change] 3212 = 4 (SETTLEMENT)
[SettlementTime] 3216 = 20121213-20:15:06.096
[Settlement] 3217 = 71225
[Change] 3212 = 10 (HELD_SETTLEMENT)
[HeldSettlementTime] 3219 = 20121213-20:15:06.096
[HeldSettlement] 3220 = 71225
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121213-20:30:00.020
[MarketMode] 3214 = 1 (PRE_OPEN)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121213-22:00:00.014
[MarketMode] 3214 = 5 (CLOSED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121213-22:45:00.038
[MarketMode] 3214 = 1 (PRE_OPEN)
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121213-15:06:00.000
[BarCloseTime] 3255 = 20121213-15:06:58.047
[BarOpenPrice] 3256 = 72175
[BarHighPrice] 3257 = 72175
[BarLowPrice] 3258 = 72175
[BarClosePrice] 3259 = 72175
[BarVolume] 3260 = 4
[BarBidVolume] 3261 = 0
[BarOfferVolume] 3262 = 4
[BarTradeCount] 3263 = 4
[BarTradesAtBid] 3264 = 0
[BarTradesAtOffer] 3265 = 4
[MDEntryType] 269 = Y (CHART_DATA_BATCH)
[TradeDate] 75 = 20121212
[NoChartDatas] 3210 = 22
[Change] 3212 = 6 (TRADE_DATE)
[TradeDate] 3211 = 20121212
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121211-22:59:30.004
[MarketMode] 3214 = 6 (SUSPENDED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121211-23:00:00.035
[MarketMode] 3214 = 2 (OPEN)
[Change] 3212 = 0 (NONE)
[MinPriceIncrement] 3280 = 25
[Decimals] 3281 = 0
[PriceCode] 3208 = MC
[TickValue] 3209 = 12.5
[Change] 3212 = 11 (CLEARED_VOLUME)
[ClearedVolumeTime] 3225 = 20121212-07:09:17.816
[ClearedVolume] 3226 = 3072
[Change] 3212 = 12 (OPEN_INTEREST)
[OpenInterestTime] 3222 = 20121212-07:09:17.816
[OpenInterest] 3223 = 3912
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-12:32:26.754
[MarketMode] 3214 = 0 (UNDEFINED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-12:37:11.707
[MarketMode] 3214 = 2 (OPEN)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-14:15:46.901
[MarketMode] 3214 = 0 (UNDEFINED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-14:26:11.089
[MarketMode] 3214 = 2 (OPEN)
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121212-15:00:00.000
[BarCloseTime] 3255 = 20121212-15:00:58.211
[BarOpenPrice] 3256 = 72375
[BarHighPrice] 3257 = 72400
[BarLowPrice] 3258 = 72375
[BarClosePrice] 3259 = 72400
[BarVolume] 3260 = 4
[BarBidVolume] 3261 = 0
[BarOfferVolume] 3262 = 4
[BarTradeCount] 3263 = 4
[BarTradesAtBid] 3264 = 0
[BarTradesAtOffer] 3265 = 4
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121212-15:01:00.000
[BarCloseTime] 3255 = 20121212-15:01:53.910
[BarOpenPrice] 3256 = 72375
[BarHighPrice] 3257 = 72375
[BarLowPrice] 3258 = 72375
[BarClosePrice] 3259 = 72375
[BarVolume] 3260 = 32
[BarBidVolume] 3261 = 0
[BarOfferVolume] 3262 = 32
[BarTradeCount] 3263 = 25
[BarTradesAtBid] 3264 = 0
[BarTradesAtOffer] 3265 = 25
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121212-15:03:00.000
[BarCloseTime] 3255 = 20121212-15:03:59.071
[BarOpenPrice] 3256 = 72400
[BarHighPrice] 3257 = 72425
[BarLowPrice] 3258 = 72400
[BarClosePrice] 3259 = 72425
[BarVolume] 3260 = 2
[BarBidVolume] 3261 = 0
[BarOfferVolume] 3262 = 2
[BarTradeCount] 3263 = 2
[BarTradesAtBid] 3264 = 0
[BarTradesAtOffer] 3265 = 2
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-15:33:00.451
[MarketMode] 3214 = 0 (UNDEFINED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-15:36:51.107
[MarketMode] 3214 = 2 (OPEN)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-20:00:00.002
[MarketMode] 3214 = 7 (HALTED)
[Change] 3212 = 4 (SETTLEMENT)
[SettlementTime] 3216 = 20121212-20:15:05.373
[Settlement] 3217 = 72100
[Change] 3212 = 10 (HELD_SETTLEMENT)
[HeldSettlementTime] 3219 = 20121212-20:15:05.373
[HeldSettlement] 3220 = 72100
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-20:30:00.017
[MarketMode] 3214 = 1 (PRE_OPEN)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-22:00:00.015
[MarketMode] 3214 = 5 (CLOSED)
[Change] 3212 = 3 (MARKET_MODE)
[MarketModeTime] 3213 = 20121212-22:45:00.041
[MarketMode] 3214 = 1 (PRE_OPEN)
[Change] 3212 = 5 (TRADE_BAR)
[BarStartTime] 3254 = 20121212-15:09:00.000
[BarCloseTime] 3255 = 20121212-15:09:58.192
[BarOpenPrice] 3256 = 72425
[BarHighPrice] 3257 = 72425
[BarLowPrice] 3258 = 72425
[BarClosePrice] 3259 = 72425
[BarVolume] 3260 = 10
[BarBidVolume] 3261 = 10
[BarOfferVolume] 3262 = 0
[BarTradeCount] 3263 = 6
[BarTradesAtBid] 3264 = 6
[BarTradesAtOffer] 3265 = 0
  • faq/marketdata_request.txt
  • Last modified: 2025/07/28 12:04
  • (external edit)