Structure |
Related Messages
Description
Some systems allow the transmission of real-time quote, order, trade and/or other price information on a subscription basis.
A Market Data Request <V> is a general request for market data on specific securities or forex quotes.
A successful Market Data Request <V> returns one or more Market Data messages containing one or more Market Data Entries. Each Market Data Entry is a Bid, an
Offer, a Trade associated with a security, the opening, closing, or settlement price of a security, the value of an index,
or the trading session high price, low price, or VWAP. Market Data Entries have a price and usually a quantity associated
with them. For example, in an order book environment, requesting just the top of book will result in only two active Market
Data Entries at a time - one for the best Bid and one for the best Offer. For a full book, the Bid and Offer side may each
have several Market Data Entries. Each Market Data Entry might represent an aggregate for each price tier, and only one Market
Data Entry per side per price would be active at a time. This is referred to as an Aggregated book. Or several Market Data
Entries at one price tier could each represent a broker, Market Maker, ECN or Exchange's quote in a security, or individual
orders in a book. This is a Non-Aggregated book. Alternately, a Market Data Entry could represent a completed trade in a security,
the value of an index, the opening, closing, or settlement price of an instrument, or the trading session high price, low
price, or VWAP.
If the message is used for foreign exchange, conventions for identifying the forex transaction are as follows:
- The forex Symbol <55> is defined in "EBS" (Electronic Banking System) format: "CCY1/CCY2".
- Rates are expressed as "currency1 in currency2" (or "currency2 per currency1") and are calculated as CCY2 divided by CCY1
(NOT CCY1 divided by CCY2)
- e.g. "GBP/USD" represents a rate expressed as USD per GBP, "USD/JPY" represents a rate expressed as JPY per USD, etc.).
- CCY1 and CCY2 are ISO currency codes
- The value of the Currency <15> field represents the denomination of the quantity fields (e.g. JPY represents quantity of JPY).
- See Appendix O – Foreign Exchange Trading
A Snapshot causes the current state of the market to be sent. A Snapshot + Updates causes the current state of the market
to be sent, and any updates as they occur, until the client requests that the Snapshot + Updates be disabled.
When just a Snapshot is requested, the complete data for only one security or forex quote will be returned per FIX Market
Data message.
When Snapshot + Updates is requested, updates may be full or incremental:
- Full Refresh. This mode is optimized to trade off increased bandwidth for simplicity in processing and is intended for requests
on only a few instruments. Each FIX Market Data message in response to the request will contain the complete data requested
for one instrument. If more than just the top of book is requested, this means that both sides, and all price tiers, must
be reported in that Market Data message.
- Incremental Refresh. This mode is optimized for handling requests for many instruments while conserving bandwidth. Each Market
Data Entry is assigned an MDEntryID <278> unique among all other active entries, and several incremental updates of entries for different instruments can be included
in one FIX Market Data message.
One specifies whether a list of trades, a 1-sided or 2-sided book, index, opening, closing, settlement, high, low and VWAP
prices should be returned by using the NoMDEntryTypes <267> field and MDEntryType <269> repeating group to list all MDEntryType <269> values that should be returned.
While this document specifies many parameters and modes in a request, the recipient of the request is not required to support
all of them. A Market Data Request Reject <Y> may be sent in response to a request indicating that it cannot be honored.
Structure
Tag |
Field Name |
Req'd |
Comments |
<MessageHeader> |
Y |
MsgType <35> = V
|
262 |
MDReqID |
Y |
Must be unique, or the ID of previous Market Data Request <V> to disable if SubscriptionRequestType <263> ='2' (Disable previous Snapshot + Updates Request).
|
263 |
SubscriptionRequestType |
Y |
SubcriptionRequestType indicates to the other party what type of response is expected. A snapshot request only asks for current
information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages
from the counter party.
|
264 |
MarketDepth |
Y |
|
265 |
MDUpdateType |
N |
Required if SubscriptionRequestType <263> = '1' (Snapshot + Updates).
|
266 |
AggregatedBook |
N |
|
267 |
NoMDEntryTypes |
Y |
Number of MDEntryType <269> fields requested.
|
=> |
269 |
MDEntryType |
Y |
Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting
the Market Data is interested in receiving.
|
146 |
NoRelatedSym |
Y |
Number of symbols requested.
|
=> |
55 |
Symbol |
Y |
Must be the first field in the repeating group.
|
=> |
65 |
SymbolSfx |
N |
Can be repeated multiple times if message is related to multiple symbols.
|
=> |
48 |
SecurityID |
N |
Can be repeated multiple times if message is related to multiple symbols.
|
=> |
22 |
IDSource |
N |
Can be repeated multiple times if message is related to multiple symbols.
|
=> |
167 |
SecurityType |
N |
Must be specified if a Future or Option. If a Future:Symbol <55>, SecurityType <167>, and MaturityMonthYear <200> are required. If an Option:Symbol <55>, SecurityType <167>, MaturityMonthYear <200>, PutOrCall <201>, and StrikePrice <202> are required.
|
=> |
200 |
MaturityMonthYear |
N |
Specifiesthe month and year of maturity. Required if MaturityDay <205> is specified.
|
=> |
205 |
MaturityDay |
N |
Can be used in conjunction with MaturityMonthYear <200> to specify a particular maturity date.
|
=> |
201 |
PutOrCall |
N |
For Options.
|
=> |
202 |
StrikePrice |
N |
For Options.
|
=> |
206 |
OptAttribute |
N |
For Options.
|
=> |
231 |
ContractMultiplier |
N |
For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g.
contracts vs. shares) amount.
|
=> |
223 |
CouponRate |
N |
For Fixed Income.
|
=> |
207 |
SecurityExchange |
N |
Can be used to identify the security.
|
=> |
106 |
Issuer |
N |
Can be repeated multiple times if message is related to multiple symbols.
|
=> |
348 |
EncodedIssuerLen |
N |
Must be set if EncodedIssuer <349> field is specified and must immediately precede it.
|
=> |
349 |
EncodedIssuer |
N |
Encoded (non-ASCII characters) representation of the Issuer <106> field in the encoded format specified via the MessageEncoding <347> field.
|
=> |
107 |
SecurityDesc |
N |
Can be repeated multiple times if message is related to multiple symbols.
|
=> |
350 |
EncodedSecurityDescLen |
N |
Must be set if EncodedSecurityDesc <351> field is specified and must immediately precede it.
|
=> |
351 |
EncodedSecurityDesc |
N |
Encoded (non-ASCII characters) representation of the SecurityDesc <107> field in the encoded format specified via the MessageEncoding <347> field.
|
=> |
336 |
TradingSessionID |
N |
|
<MessageTrailer> |
Y |
|
|
Related Messages
|