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.
Subscription Types
- 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.
Data Throughput / Buffering Levels
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) |
Book Depth
Requested via Tag `264` (MarketDepth):
- 1 — Top of book (Level 1)
- 10 — Full depth (up to 10 levels)
Matching Market Data
Data can be matched using:
- `48=SecurityID` (default)
- `262=MDReqID` if `107=262` is included in request.
Chart Data Requests
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)
Message Dictionary
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 |
Sample Messages
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|...|