faq:marketdata_request

This is an old revision of the document!


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 Unique ID
263 SubscriptionRequestType Y Type of request
264 MarketDepth Y 1 (Top) to 10 (Full)
265 MDUpdateType N Throughput mode
267 NoMDEntryTypes Y Repeating Group
269 MDEntryType Y 0=Bid, 1=Offer, 4=LastTrade, etc.
146 NoRelatedSym Y Repeating Group
55 Symbol Y Contract ID
48 SecurityID Y Market ID
167 SecurityType Y FUT, OPT, STK, etc.
207 SecurityExchange Y Exchange ID
107 SecurityDesc N Set to 262 to identify by MDReqID
1070 QuoteType N 1=Ticks, 2=Decimal
3200-3205 Chart Data Fields N See above
Standard Trailer Y

Subscribe to Streaming Market

[FIXMARKETDATAREQUEST]  
34=1891|49=T4Example|56=T4|52=...|262=md-...|263=1|264=10|265=5|267=3|269=0|269=1|269=2|146=1|55=ES|48=CME_...|167=FUT|207=CME_Eq|

Unsubscribe from Market

[FIXMARKETDATAREQUEST]  
34=1892|49=T4Example|56=T4|52=...|262=md-...|263=2|264=10|...|

Chart Data Request

[FIXMARKETDATAREQUEST]  
263=4|264=1|267=0|146=1|55=ZC|48=LVCME_...|207=...|3200=20121212|3201=20121213|3202=09:00:00|3203=09:10:00|3204=2|3205=U|

Chart Data Response (Example compressed or uncompressed MarketDataSnapshot)

[FIXMARKETDATASNAPSHOT]  
262=mdc-...|55=ZC|48=...|207=...|3200=...|3201=...|3202=...|3203=...|3204=2|3205=U|268=2|269=Y|...|
  • faq/marketdata_request.1753703585.txt.gz
  • Last modified: 2025/07/28 11:53
  • by rob