Market Data Request(V) Message
Purpose
Used to request or manage subscriptions for market data
Warning
When a FIX client subscribes multiple times to the same instrument, the last
request will overwrite prior requests, so FIX client will always get market
data according to the last request that the QST FIX server received. The client
can ask for a Snapshot
while being subscribed to an instrument, this will not
interfere with the incremental or full refresh subscription for that instrument.
Note
If the client wants to change its subscription to an instrument, it should send a new subscribe request.
Note
For the clients that use API V2.0
version of the protocol, when they subscribe
to market data, they also subscribe to security status. The security status will
be sent alongside the Market Data Snapshot (W) message
and Market Data Incremental Refresh (X) message.
The SecurityStatusReqID (324) tag will be populated with the value of the
MDReqID (262) tag.
Note
QST server supports coalescing the incremental market data at 100 ms, 250 ms or it can send them uncoalesced. The default coalescing interval is 250 ms, this interval can be changed at client’s request to the QST’s support team.
Note
QST server allows clients to subscribe only to active instruments (that are not expired).
If client asks only for snapshots, QST server provides the snapshots for all active instruments and in addition to this for TOM it provides snapshots also for expired instruments, for DOM it will return error if instrument is expired.
Message Direction
From FIX client to QST FIX server API server
Supported tags
Note
Each Market Data Request message should start with Standard Header component(with the tag 35 (MsgType) = V
) and end with the Standard Trailer.
MDReqID - 262
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
262 |
MDReqID |
Y |
String |
Comments
Unique ID for this request. QST FIX server returns this ID in all responses to the request.
SubscriptionRequestType - 263
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
263 |
SubscriptionRequestType |
Y |
char |
Comments
Type of request.
Supported values include:
0
Snapshot
1
Snapshot plus updates (subscribe)
2
Disable previous (unsubscribe)
Note
For Snapshot subscriptions, updates are delivered at one-second intervals or greater.
For Snapshot plus updates subscriptions, updates are delivered at
250 ms
by default, but we support and other intervals.If the request type is
2
(Disable previous) then the client will be completely unsubscribed from the instrument, regardless of what values are populated in MDEntryType (269) field.
MarketDepth - 264
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
264 |
MarketDepth |
C |
int |
Comments
Market depth to return in a snapshot.
- Supported values include:
-
0
Full book1
Top of book
Condition: Required when Tag 263 (SubscriptionRequestType) is 0
or 1
.
MDUpdateType - 265
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
265 |
MDUpdateType |
C |
int |
Comments
Type of messages QST FIX server sends when updating market data.
Supported values include:
0
Full refresh
1
Incremental
Restrictions: Incremental Refresh updates are coalesced at 250 ms
by default, but we support and other intervals; Full Refresh updates are coalseced at (1) second.
Condition: Required when Tag 263 (SubscriptionRequestType) is 1
.
Warning
We do not allow a client to be subscribe to Incremental and Full Refresh at the same time for the same instrument.
NoMDEntryTypes - 267
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
267 |
NoMDEntryTypes |
Y |
NumInGroup |
Comments
Number of different Tag 269 (MDEntryType) fields in the request.
MDEntryType - 269
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
269 |
MDEntryType |
Y |
char |
Comments
Type of market data to request.
Supported values include:
0
Bid (For stocks, this represents: Round lot, Ready Market)
1
Ask (For stocks, this represents: Round lot, Ready Market)
2
Trade
4
Opening price
5
Closing price
6
Settlement price
7
Trading session high price
8
Trading session Low price
B
Trade volume
Y
Implied bid (For stocks, this represents: Odd lot, Unit Share)
Z
Implied ask (For stocks, this represents: Odd lot, Unit Share)
t
Initial settlement priceWarning
Supported only for clients that use
API V2.0
version of the protocol:
C
Open interest
N
Day high bid
O
Day low ask
W
Fixing price
M
Prior Settle Price
I
Indicative opening price
Note: The number of tag 269 tags must match the value of tag 267 (NoMDEntryTypes).
Component Instrument from FIX Client
Here is the content of this component: Instrument from FIX Client
IncludeNumberOfOrders - 18214
Tag number |
Field Name |
Required |
Data type |
---|---|---|---|
18214 |
IncludeNumberOfOrders |
N |
char |
Comments
Whether or not to include the number of orders that comprise the quantity in aggregated depth and an indicator as to whether or not that number is exact,
when the exchange provides this information. Valid values include Y
and N
(default).
Note
This tag is supported when tag 269 (MDEntryType) contains any of the following:
0
Bid
1
Ask
Y
Implied bid
Z
Implied ask
Message Notes
The Market Data Request (V) message is used by a FIX client to request market data information from QST FIX server API server. You can request information like the top of book (Bid, Ask, and session prices) and market depth data.
QST FIX server responds to a Market Data Request (V) message with a Market Data Snapshot (W) message. Additionally:
If the FIX Client sets Tag 263 (SubscriptionRequestType) to
0
, QST FIX server sends no further messages. It does not update the market data.If the FIX Client sets Tag 263 (SubscriptionRequestType) to
1
, QST FIX server updates market data according to the setting the FIX Client uses in Tag 265 (MDUpdateType):
0
To update market data, QST FIX server sends Market Data Snapshot (W) messages.
1
To update market data, QST FIX server sends Market Data Incremental Refresh (X) messages.If the FIX Client sets Tag 263 (SubscriptionRequestType) to
2
, QST FIX server stops sending updates.
If QST FIX server cannot fulfill a request for market data because the request contains an invalid instrument, it sends a Market Data Request Reject (Y) message.
Examples
Note
The checksum(tag 10) might not be correct for some examples, this is because the username was changed before we’ve added the example here. When a client sends requests to our server, the checksum must contain the correct value.
Identifying an instrument by a single security ID:
# Subscribe to asks and bids for a instrument identified by instrument internal id:
8=FIX.4.2|9=132|35=V|34=2|49=user123|52=20210823-14:56:27.357|56=qst_qapi|146=1|48=18531299|22=96|262=CL12.0001|263=1|264=0|265=1|267=2|269=0|269=1|10=207|
# Subscribe to asks, bids and trade volume for a instrument identified by instrument internal id without sending the IDSource (tag 22):
8=FIX.4.2|9=136|35=V|34=2|49=user123|52=20211104-10:16:59.304|56=qst_qapi|146=1|48=32111818|262=CL12.0001|263=1|264=0|265=1|267=3|269=0|269=1|269=B|10=182||
# Subscribe to asks and bids for a instrument identified by exchange id:
8=FIX.4.2|9=136|35=V|34=2|49=user123|52=20210823-14:57:23.588|56=qst_qapi|146=1|48=21558|207=CME|22=8|262=CL12.0001|263=1|264=0|265=1|267=2|269=0|269=1|10=170|
Identifying an instrument by multiple alternative security IDs:
# Subscribe to asks and bids for a instrument identified by alternative QST internal symbol representation of the instrument:
8=FIX.4.2|9=173|35=V|34=2|49=user123|52=20210823-15:03:33.759|56=qst_qapi|60052=20210823-15:00:56.871|146=1|207=CME|454=1|455=ESZ21|456=99|262=CL12.0001|263=1|264=0|265=1|267=2|269=0|269=1|10=020|
# Subscribe to asks and bids for a instrument identified by alternative exchange id:
8=FIX.4.2|9=144|35=V|34=2|49=user123|52=20210823-15:00:56.871|56=qst_qapi|146=1|207=CME|454=1|455=21558|456=8|262=CL12.0001|263=1|264=0|265=1|267=2|269=0|269=1|10=024|
Identifying an instrument by security attributes:
8=FIX.4.2|9=318|35=V|34=2|49=user123|52=20210823-15:03:51.599|56=qst_qapi|146=1|55=CL|167=MLEG|200=202112|205=1|207=CME|555=2|600=CL|609=FUT|616=CME|624=1|623=1|604=1|605=308149|606=8|600=CL|609=FUT|616=CME|624=2|623=1|604=1|605=349985|606=8|262=CL12.0001|263=1|264=0|265=1|267=9|269=0|269=1|269=2|269=4|269=5|269=6|269=7|269=8|269=B|10=085|
Subscribing to multiple instruments in the same request:
# Subscribing to 3 intruments to all entry types.
8=FIX.4.2|9=209|35=V|34=2|49=user123|52=20210823-15:06:54.833|56=qst_qapi|146=3|55=HPD|48=4099|207=CME|22=8|55=K3|48=1540|207=CME|22=8|55=DBD|48=1030|207=CME|22=8|262=CL12.0001|263=1|264=0|265=1|267=4|269=0|269=1|269=Z|269=Y|10=243|
Subscribing to full refresh for an instrument:
# Subscribe to asks and bids for a instrument identified by instrument internal id:
8=FIX.4.2|9=132|35=V|34=2|49=user123|52=20210823-14:56:27.357|56=qst_qapi|146=1|48=18531299|22=96|262=CL12.0001|263=1|264=0|265=0|267=2|269=0|269=1|10=207|