Try TT Now

FIX Adapter Reference

Market Data – Incremental Refresh (X)

Purpose

Used to send updated market data for an instrument

Message Direction

From TT FIX Adapter to FIX client

Message Availability

Use CasePrice SessionOrder Session

Drop Copy

Yes No

Order Routing

Yes No

Supported Tags

Tag # Field Name Req’d Comments
Component Block <Standard Header> Y 35=X (MsgType)
262 MDReqID Y

Unique ID matching the incoming request ID, sent in Tag 262 (MDReqID) in the Market Data Request (V) request.

TT FIX Adapter returns this ID in all responses corresponding to the Market Data Request (V) request.

Data type: String

18210 PriceFeedStatus C

Current state of the price feed. Valid values include:

  • 0: Price feed is unavailable
  • 1: Price feed is available

Data type: int

Condition: Sent only when all of the following are true:

  • TT FIX Adapter retrieves the market data from a price proxy environment.
  • The status of the Price Feed changes.
268 NoMDEntries Y

Number of market data entries in the message. Starts the repeating group.

Data type: NumInGroup

 

Market data entries repeating group

  279 MDUpdateAction Y

Type of market data update associated with this repeating group. Valid values include:

  • 0: New
  • 1: Change
  • 2: Delete

Data type: char

  269 MDEntryType Y

Type of market data to request. Valid values include:

  • 0: Bid
  • 1: Ask
  • 2: Trade
  • 4: Opening price
  • 5: Closing price
  • 6: Settlement price
  • 7: Trading session high price
  • 8: Trading session low price
  • A: Imbalance
  • P: Workup state
  • Y: Implied bid
  • Z: Implied ask
  • n: Market bid
  • o: Market ask
  • p: Indicative open
  • q: Indicative close
  • r: Indicative bid
  • s: Indicative ask
  • t: Indicative settlement

Data type: char

  270 MDEntryPx C

Price of the instrument associated with this entry. Interpret the value based on the entry type.

Data type: Price

Condition: Required unless Tag 269 (MDEntryType)= A (Imbalance), n (Market bid), o (Market ask), or if Tag 18210 (PriceFeedStatus) = 0 (Price feed not available).

  271 MDEntrySize C

Quantity associated with the related instrument.

Data type: Qty

Condition: Sent when Tag 269 (MDEntryType) contains:

  • 0: Bid
  • 1: Offer
  • 2: Trade
  • A: Imbalance
  • Y: Implied bid
  • Z: Implied ask
  • n: Market bid
  • o: Market ask
  • p: Indicative open
  • q: Indicative close
  • r: Indicative bid
  • s: Indicative ask

Note: Some gateways do not send this tag when Tag 269 (MDEntryType) = 2 (Trade), p (Indicative Open), q (Indicative close), r (Indicative bid), or s (Indicative ask). For more information, refer to the appropriate TT Gateway System Administration Manual.

  290 MDEntryPositionNo C

Position of the MD price level in relation to the best bid / best offer (1 being the best).

Data type: int

Condition: Tag 269 (MDEntryType) is either 0 (bid), 1 (offer), Y (implied bid), or Z (implied offer)

Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1. The FIX client must determine where the new price belongs based on Tag 270 (MDEntryPx).

  387 TotalVolumeTraded C

Total volume traded during the current trading session for this instrument.

Data type: Qty

Condition: Sent if available

Note: Included only in the first item in the repeating group

  198 SecondaryOrderID C

Unique identifier for the order (assigned by the exchange), based on the following:

  • When Tag 16486 (MDEntryState) = 1 (Open Workup) and Tag 269 (MDEntryType) = 0 (Bid), the value represents the order ID of the best bid at the top of the queue.
  • When Tag 16486 (MDEntryState) = 1 (Open Workup) and Tag 269 (MDEntryType) = 1 (Offer), the value represents the order ID of the best offer at the top of the queue.
  • When Tag 16486 (MDEntryState) = (2,4), the value represents the order ID of the workup owner of the ask side. In this situation, the order ID of the work owner on the bid side is the one that was provided in a prior update as the order ID at the top of the queue. (Note: if all offers at the workup price are fully filled, this tag contains the order ID of the best offer at the top of the queue.)
  • When Tag 16486 (MDEntryState) = (3,5), the value represents the order ID of the workup owner on the bid side. In this situation, the order ID of the workup owner on the ask side is the one that was provided as the order ID of the best ask at the top of the queue. (Note: if all bids at the workup price are fully filled, this tag contains the order ID of the best bid at the top of the queue.)

Data type: string

Condition: Sent only when Tag 16486 (MDEntryState) is provided.

Note: Only the TT BrokerTec Gateway supports this tag.

  16486 MDEntryState C

Current state of a workup order. Valid values include:

  • 1: Open workup
  • 2: Public workup where the aggressor hit the bid
  • 3: Public workup where the aggressor took the ask
  • 4: Private workup where the aggressor hit the bid
  • 5: Private workup where the aggressor took the ask

Data type: int

Condition: Sent only for workup markets

Note: Currently TT FIX Adapter supports BrokerTec workup markets.

  277 TradeCondition C

Whether the quantity represented in Tag 271 (MDEntrySize) represents an imbalance with more buyers or an imbalance with more sellers. Valid values include:

  • P: Imbalance More Buyers (Cannot be used in combination with Q)
  • Q: Imbalance More Sellers (Cannot be used in combination with P)

Data type: MultipleValueString

Condition: Sent when Tag 269 (MDEntryType) = A (Imbalance).

  288 MDEntryBuyer C

The buying party in the trade.

Data type: int

Condition: Sent only when Tag 269 (MDEntryType) = 2 (Trade), and when the TT Gateway provides the information.

Note: For a list of possible values, refer to the appropriate TT Gateway System Administration Manual.

  289 MDEntrySeller C

The selling party in the trade.

Data type: int

Condition: Sent only when Tag 269 (MDEntryType) = 2 (Trade), and when the TT Gateway provides the information.

Note: For a list of possible values, refer to the appropriate TT Gateway System Administration Manual.

 

346

NumberOfOrders

C

Number of orders that comprise the quantity represented in Tag 271 (MDEntrySize) of this message.

Data type: int

Condition: Sent only when all of the following are true:

  • Tag 18214 (IncludeNumberOfOrders) was set to Y on the Market Data Request (V) message.
  • Tag 269 (MDEntryType) contains: 0 (Bid), 1 (Ask), Y (Implied bid), or Z (Implied ask).
  • The TT Gateway provides this information.
Note: Supported only for the TT OSE Gateway.
     

    16489

    ExactNumOrdersIndicator

    C

    Whether the number of orders specified in Tag 346 (NumberOfOrders) represents an exact or inexact value.

    • Y: Exact
    • N: Inexact

    Data type: Boolean

    Condition: Sent only when all of the following are true:

    • Tag 18214 (IncludeNumberOfOrders) was set to Y on the Market Data Request (V) message.
    • Tag 346 (NumberOfOrders) is provided.
    • The TT Gateway provides this information.
    Note: Supported only for the TT OSE Gateway.
        Component Block <Instrument> Y

      For tags that you include in the Instrument Component Block and any restrictions in their use, refer to Component block: Instrument (TT FIX Adapter response).

      Component Block <Standard Trailer> Y  

      Message Notes

      The Market Data Incremental Refresh (X) message is used to send updates whenever the market data changes for an instrument to which a FIX client subscribes for incremental updates.

      Calculating entry positions

      Market Data Incremental Refresh (X) messages can contain multiple New, Delete and Change actions for the same contract and MDEntryType. The FIX client must take into account that Tag 290 (MDEntryPositionNo) in an update always indicates the position of the entry before processing the current message.

      The following shows an example of an algorithm you can use to process market depth updates:

      • Create a ladder data structure that is sorted by price.
      • Create a before instance and an after instance.
      • Populate both instances with the Market Data Snapshot Full Refresh (W) message.
      • When a Market Data Incremental Refresh (X) is received and
        • Tag 279 (MDUpdateAction) is 0 (New), insert it directly into the after instance.
        • Tag 279 (MDUpdateAction) is 1 (Change), apply the quantity change to the before instance.
        • Tag 279 (MDUpdateAction) is 2 (Delete), mark it for deletion in the before instance but do not actually delete it.
      • After the entire Market Data Incremental Refresh (X) is processed in this manner, insert all records not marked for deletion in the before instance into the after instance.
      • Delete the contents of the before instance.
      • Copy the contents of after instance to the before instance.
      • Display the after instance to the user.

      Avoiding duplicate LTP and LTQ updates

      When TT FIX Adapter loses its connection to a gateway while a FIX client is connected and subscribed for incremental price updates, the FIX client might receive duplicate LTP/LTQ updates when the connection to the gateway is reestablished. Thus, TT recommends that FIX clients subscribe for Gateway Status (UAT) messages for all gateways from which incremental price updates are being requested. If the FIX client receives a Gateway Status (UAT) message indicating that the TT FIX Adapter lost its connection to a gateway, the FIX client should unsubscribe for incremental price updates for all contracts from the indicated gateway. When a Gateway Status (UAT) message is received indicating that the connection to the gateway has been reestablished, the FIX client can then re-subscribe.

      Related Information

      Gateway Status (UAT)

      Market Data Request (V)

      Market Data Snapshot/Full Refresh (W)

      Market Data Request Reject (Y)