TT® FIX

Execution Report (8) Message

Purpose

Used to send order information to a FIX client, such as confirmations, fills, and unsolicited changes

Message Direction

From TT FIX to FIX client

Supported Tags

Tag # Field Name Req’d Data type Comments
Component Block <Standard Header> Y 35=8 (MsgType)
17 ExecID Y string

Unique identifier for this execution report.

Uniqueness is guaranteed within a single trading day or the life of a multi-day order. Firms that want to maintain historical archives should consider appending a date to the ExecID field value to assure uniqueness across days.

Note: Do not try to interpret or parse the value.

19 ExRefID C String

Reference identifier used with Correct transaction types

Tag 19 (ExecRefID) will be populated with the Tag 17 (ExecID) value of the fill that is being corrected.

If there are multiple corrections to a fill, Tag 19 (ExecRefID) will be populated with the Tag 17 (ExecID) value of the most recent execution report for the fill. Tag 16017 (OrigExecID) will always provide the Tag 17 (ExecID) value of the original execution report.

Condition: Sent when Tag 20 (ExecTransType) = 2 (Correct)

20 ExecTransType Y char

Type of execution report

Possible values include:

  • 0: New
  • 1: Cancel
  • 2: Correct
  • 3: Status (in response to an Order Status Request (H) message)
37 OrderId Y string

Internal TT order key assigned to all orders submitted through any TT software.

The value remains constant for the life of an order.

Note: The value is unique per TT environment.

198 SecondaryOrderId Y string

Unique identifier for the order, as assigned by the exchange.

Note: The value can vary over time for the same order.

11 ClOrdId C string

Unique identifier as defined by the client application

Condition: Sent only for solicited orders (those placed through TT FIX Order Router).

526 SecondaryClOrdID C String

Unique identifier for the order as assigned by the buy-side

Condition: Sent when provided by the exchange

527 SecondaryExecOrdID Y String

Exchange-generated unique fill ID

For exchanges that do not provide this tag, the value will be set to order_id:order_sequence.

41 OrigClOrdID C String

Previous order identifier. Equal to Tag 11 (ClOrdID) of the original request message

Condition: Sent if available

10011 TTClOrdID C String

Internal unique id across TT system; used primarily for internal debugging

Condition: Sent when available

16116 OrderIDGUID C int

TT order ID

This tag is populated with the regular TT order ID when a shortened ID is sent in tag 37 (OrderID).

Condition: Sent only when the Send and receive Order ID values in short form setting is enabled for the FIX session in the Setup application.

150 ExecType Y char

Indicates the reason for sending this Execution Report

Possible values include:

  • 0: New
  • 1: Partially filled
  • 2: Filled
  • 3: Done for day
  • 4: Canceled
  • 5: Replaced
  • 6: Pending cancel
  • 7: Stopped
  • 8: Rejected
  • 9: Suspended (Held)
  • A: Pending new
  • B: Calculated
  • C: Expired
  • D: Restated
  • E: Pending replace
  • F: Trade
  • G: Trade correction
  • H: Trade cancel
  • I: Order status
  • J: Trade in a clearing hold
  • K: Trade has been released to clearing
  • L: Triggered or activated by system
18 ExecInst C MultipleStringValue

Execution instructions sent in the order request

Possible values include:

  • 2: Work (default)
  • S: Suspend
  • q: Release from suspension

Condition: Sent when available

103 OrdRejReason C int

Reason for rejecting the incoming request

Possible values include:

  • 0: Broker option
  • 1: Unknown symbol
  • 2: Exchange closed
  • 3: Order exceeds limit
  • 4: Too late to enter
  • 5: Unknown order
  • 6: Duplicate order
  • 7: Duplicate of a verbally-communicated order
  • 8: Stale order
  • 9: Trade along required
  • 10: Invalid Investor ID
  • 11: Unsupported order characteristic
  • 12: Surveillance option
  • 13: Incorrect quantity
  • 14: Incorrect allocated quantity
  • 15: Unknown account
  • 16: Price exceeds current price band
  • 18: Invalid price increment
  • 19: Message pending
  • 20: Routing error
  • 99: Other
  • 1003: Market closed
  • 1007: FIX field missing or incorrect
  • 1010: Required field missing
  • 1011: FIX field incorrect
  • 1012: Price must be greater than zero
  • 1013: Invalid order qualifier
  • 1014: User not authorized
  • 2013: Market hours not suported by opposite
  • 2019: Invalid expire date
  • 2044: Order not in book
  • 2045: Order not in book 2
  • 2046: Disclosed qty cannot be greater
  • 2047: Unknown contract
  • 2048: Cancel with different sender comp id
  • 2049: ClOrdId different than correleation ClOrdId
  • 2050: ClOrdId different than original ClOrdId
  • 2051: Different side
  • 2052: Different group
  • 2053: Different security type
  • 2054: Different account
  • 2055: Different qty
  • 2056: Cancel with different trader id
  • 2058: Stop price must be greater
  • 2059: Stop price must be smaller
  • 2060: Sell stop price must be below ltp
  • 2061: Buy stop price must be above ltp
  • 2100: Different product
  • 2101: Different inflight fill modification
  • 2102: Modify with different sender comp id
  • 2103: Modify with different trader id
  • 2115: Order qty outside allowable range
  • 2130: Invalid order type for pcp
  • 2137: Order price outside limits
  • 2179: Order price outside bands
  • 2311: Invalid order type for group
  • 2500: Instrument cross request in process
  • 2501: Ordr qty too low
  • 2600: Market maker protection has tripped
  • 4000: Engine did not respond
  • 7000: Order rejected
  • 7001: Contract not gtc gtd eligible
  • 7009: Contract past expiration
  • 7011: Max contract working qty exceeded
  • 7015: Modify with different side
  • 7018: Contract not gtc gtd eligible 2
  • 7020: No trading calendar for expire date
  • 7021: Expire date beyond instrument expiration
  • 7022: Expire date beyond leg instrument expiration
  • 7024: Market in no cancel
  • 7027: Invalid order type for reserved market
  • 7028: Order session date in past
  • 7613: Disclosed qty cannot be smaller
  • 9999: Technical error function not performed

Condition: Sent when Tag 150 (ExecType) is 8 (Reject)

58 Text C String

Additional information about the message

Condition: Sent when the TT FIX needs to send additional information

378 ExecRestatementReason C int

Reason for the restatement

Possible values include:

  • 0: GT corporate action
  • 1: GT renewal
  • 2: Verbal change
  • 3: Repricing of order
  • 4: Broker option
  • 5: Partial decline of order quantity
  • 6: Cancel on trading halt
  • 7: Cancel on system failure
  • 8: Market
  • 9: Cancel not best
  • 10: Warehouse recap
  • 11: Peg refresh
  • 99: Other
  • 100: Cancel on disconnect
  • 104: Cancel from credit violation
  • 105: Cancel from firmsoft
  • 106: Cancel from risk

Condition: Sent when Tag 150 (ExecType) = D (Restated)

39 OrdStatus Y int

Status of the order

Possible values include:

  • 0: New
  • 1: Partially filled
  • 2: Filled
  • 4: Cancelled
  • 5: Replaced
  • 6: Cancel pending
  • 8: Rejected
  • 9: Suspended (Held)
  • A: Pending new
  • C: Expired
  • E: Pending replace
32 LastShares C int

Indicates the number of contracts that just filled

Condition: Sent only when Tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill)

31 LastPx C Price

Price of this fill

If Tag 442 (MultiLegReportingType) is 2 (Leg), the value represents the price at which a leg of the spread filled. The message's Instrument Component identifies the filled leg.

Condition: Sent when Tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill)

669 LastParPx C Price

NPV price for the fill of an Eris Forward starting swap or an Eris Forward product listed on the ICE exchange.

Condition: Sent only for Eris Forward starting swaps when Tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill)

6 AvgPx Y Price

Average price of all fills on this order

The value is calculated as follows:

  • If order has no fills, TT FIX sends 0 in this tag.
  • If the order has fills, TT FIX sends the sum over all fill execution reports of the product of Tag 32 (LastShares) and Tag 31 (LastPx) divided by the Tag 14 (CumQty).
  • If Tag 442 (MultiLegReportingType) is 2 (Leg), TT FIX sends the average price at which the leg filled.
60 TransactTime Y UTCTimestamp

Time, in UTC, the transaction occurred.

Note: Some Exchanges might send milliseconds in certain circumstances, in the form: YYYYMMDD-HH:MM:SS.sss. TT recommends that you allocate enough memory to handle the longer timestamp should an Exchange send it.

151 LeavesQty Y int

Number of contracts that are still working in the market

Possible values include:

  • Value of (Tag 38 (OrderQty) - Tag 14 (CumQty)), if the order is still in the market
  • 0, otherwise

Note: If Tag 442 (MultiLegReportingType) is 2 (Leg), this value represents the total number of contracts that are still working for the leg of the specified strategy.

14 CumQty Y int

Total number of contracts that have filled over the life of this order

The value always equals the sum of the Tag 32 (LastShares) of all fill execution reports received for this order, including this one.

Note: If Tag 442 (MultiLegReportingType) is 2 (Leg), this value represents the total number of contacts that have filled for the leg of the specified strategy.

442 MultiLegReportingType N char

Indicates what an Execution Report represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.)

Possible values include:

  • 1: Single security
  • 2: Individual leg of multi-leg security
  • 3: Parent of multi-leg security (summary fill)
75 TradeDate N LocalMktDate

Indicates date of trade referenced in this message in YYYYMMDD format. Absence of this field indicates current day (expressed in local time at place of trade).

Component Block: <Instrument> Y

Instrument associated with this Execution Report

Component Block: <Trader> Y

Trader information associated with this Execution Report

Component Block: <PartiesGrp> C

Entities involved in the financial transaction associated with this FIX message

Condition: Sent when available.

Note: TT always sends this group when the value to tag 1 (Account) represents an internal, non-routing account. In this case, the group sets the external routing (parent) account in tag 448 (PartyID) and sets tag 452=24 (Customer Account).

16999 ClearingAccountOverride N String

Overrides the clearing account defined in the Setup application for the user's account named in Tag 1.

44 Price C Price

Order price

Condition: Sent when Tag 40 (OrdType) is:

  • 2: Limit
  • 4: Stop Limit
99 StopPx C Price

Trigger price for a stop order

Condition: Sent when Tag 40 (OrdType) is:

  • 4: Stop Limit
  • K: Market With Leftover as Limit
110 MinQty C Qty

Minimum quantity for a Minimum Volume (MV) order

Condition: Sent only for Minimum Volume (MV) orders

1138 DisplayQty C Qty

New tag for TT

Working quantity of a disclosed quantity (Iceberg) order slice

Condition: Sent only for disclosed quantity orders

1088 RefreshQty C Qty

New tag for TT

Quantity disclosed for a disclosed quantity (Iceberg) order

Condition: Sent only for disclosed quantity orders

38 OrderQty Y Qty

Total order quantity

54 Side Y char

Order side

Possible values include:

  • 1: Buy
  • 2: Sell
  • 3: Buy minus
  • 4: Sell plus
  • 5: Sell short
  • 6: Sell short exempt
  • 7: Undisclosed
  • 8: Cross
  • 9: Cross short
40 OrdType Y char

Order type

Possible values include:

  • 1: Market
  • 2: Limit
  • 3: Stop
  • 4: Stop Limit
  • 5: Market On Close (MOC)
  • B: Limit On Close (LOC)
  • K: Market with Leftover as Limit
  • Q: Market Limit Market (MLM) with Leftover as Limit
  • S: Stop Market to Limit

As per the FIX 4.2 specification:

  • For Market On Open (MOO) orders, the TT FIX sends Tag 40 (OrdType) = 1 (Market) and Tag 59 (TimeInForce) = 2 (At The Opening).
  • For Limit on Open (LOO) orders, the TT FIX sends Tag 40 (OrdType) = 2 (Limit) and Tag 59 (TimeInForce) = 2 (At The Opening).

The TT FIX supports Limit Stop Market (LSM) orders only for Eurex.

828 TrdType C int

The type of wholesale trade.

Possible values include:

  • 0: Regular Trade
  • 1: Block Trade
  • 2: Exchange For Physical
  • 3: Transfer
  • 11: Exchange For Risk
  • 12: Exchange For Swap
  • 14: Exchange Of Options For Options
  • 1000: Volatility
  • 1001: EFP Financial
  • 1002: EFP Index Futures
  • 1003: Strategy Block Trade
  • 1004: Block Standard CF
  • 1005: Block Combination CF
  • 1006: EFS EFP CF
  • 1007: Block Internal CF
  • 1008: Portfolio CF
  • 1009: Correction CF
  • 1010: Block Combination Buyer CF
  • 1011: Block Combination Seller CF
  • 1012: EFS EFP Combination CF
  • 1013: EFS EFP Combination Buyer CF
  • 1014: EFS EFP Combination Seller CF
  • 1015: OTC Standard CIO
  • 1016: OTC Combination CIO
  • 1017: OTC Combination Buyer CIO
  • 1018: OTC Combination Seller CIO
  • 1019: Standard Trade CD
  • 1020: Standard Outside Spread CD
  • 1021: Combination CD
  • 1022: Old CD
  • 1023: Internal CD
  • 1024: Portfolio CD
  • 1025: Correction CD
  • 1026: Exchange Granted FD
  • 1027: Standard Outside FD
  • 1028: Off Hours FD
  • 1029: Block FD
  • 1030: Exch Granted Exceed Max Lot FD
  • 1031: Exch Granted Eml Off Hours FD
  • 1032: Exch Granted Late FD
  • 1033: Flex Contract Conversion FD
  • 1034: Ice Efrp
  • 1035: Iceblk
  • 1036: Basis
  • 1037: Volatility Contingent
  • 1038: Stock Contingent
  • 1039: CCX EFP
  • 1040: Other Clearing Value
  • 1041: N2EX
  • 1042: EEX
  • 1043: EFS EFP Contra
  • 1044: Efm
  • 1045: Ng EFP EFS
  • 1046: Contra
  • 1047: Cpblk
  • 1048: Bilateral Off Exch
  • 1049: OTC Privately Negotiated Trades
  • 1050: OTC Large Notional Off Facility Swap
  • 1051: Block Swap Trade
  • 9999: Unknown

Condition: Sent only for wholesale orders and fills

880 TrdMatchID C String

Identifier assigned to a trade for ASX clearing purposes (clearing deal number).

Condition: Sent when provided by the exchange.

1057 AggressorIndicator C String

Whether the order initiator is an aggressor in the trade. Possible values include Y or N.

Condition: Sent when provided by the exchange.

1366 LegAllocID C String

Identifier assigned to a leg of a multi-leg trade for ASX clearing purposes (clearing deal number).

Condition: Sent when provided by the exchange.

77 OpenClose Y char

Whether the resulting position after a trade should be an opening position or closing position

Possible values include:

  • O: Open
  • C: Close
59 TimeInForce Y char

How long an order remains active

Possible values include:

  • 0: Day (default, if not specified)
  • 1: Good Till Cancel (GTC)
  • 2: At The Opening (OPG)
  • 3: Immediate or Cancel (IOC)
  • 4: Fill Or Kill (FOK)
  • 5: Good Till Crossing
  • 6: Good Till Date
  • V: Good in Session
  • W: Day Plus
  • X: Good Till Cancel Plus
  • Y: Good Till Date Plus
432 ExpireDate C LocalMktDate

Date a Good Till Date order expires

Condition: Sent unless Tag 59 (TimeInForce) = 6 (Good Till Cancel)

1028 ManualOrderIndicator C char

Whether the order is sent manually or through automated trading logic

Possible values include: Y (manual) and N (automatic).

Condition: Sent when provided by the Exchange

18216 ExchCred C String

Exchange order routing credential that was used to route the order

Condition: Sent when provided by the Exchange

376 ComplianceId C string

New tag for TT

ID representing the algorithm associated with the order, for compliance purposes

For order-routing FIX sessions, the value contains the internal ID the FIX client sent to identify the algorithm when submitting the order. For drop-copy FIX sessions, the value contains the fully-qualified ID that TT FIX sent to the exchange.

Condition: Sent when provided by the exchange

10376 SecondaryComplianceId C string

New tag for TT

ID of the algorithm that the order-routing FIX session sent to the exchange

Condition: Sent only for order-routing FIX sessions when supplied by the exchange

1385 ContingencyType C int

New tag for TT

Type of contingency

Possible values include:

  • 1: One Cancels the Other (OCO)
  • 2: One Triggers Other (OTO)
  • 3: One Updates the Other (OUO) - Absolute Quantity Reduction
  • 4: One Updates the Other (OUO) - Proportional Quantity Reduction

Condition: Sent when provided by the Exchange

10553 UserAlias C String

Email address of the trader

Condition: Sent if available

548 CrossID C String

New tag for TT

Identifier for a cross order

Must be unique during a given trading day. Recommend that firms use the order date as part of the CrossID for Good Till Cancel (GT) orders.

Condition: Sent for cross orders when provided by the Exchange

549 CrossType C int

New tag for TT

Type of cross order submitted to a market

Possible values include:

  • 1: Cross AON - cross trade which is executed completely or not. Both sides are treated in the same manner. This is equivalent to an "All or None"
  • 2: Cross IOC - cross trade which is executed partially and the rest is canceled.
  • 3: Cross One Side - cross trade which is partially executed with the unfilled portions remaining active
  • 4: Cross Same Price - cross trade is executed with existing orders with the same price.

Condition: Sent when provided by the Exchange

571 TradeReportID N String

Unique identifier of trade capture report

18222 AOTCPreventionActionType N int

New tag for TT

Indicates the action taken to avoid internal crossing orders

Possible values include:

  • 0: None
  • 1: Held
  • 2: Cancel
  • 3: Fill
  • 4: Reduced order
  • 5: Reduced change
16728 TotalNumOrders C int

Number of orders included in the response to an order book download request.

Condition: Included for order book downloads that do not provide Tag 11 (ClOrdID) or Tag 37 (OrderID). For more information about order book downloads, refer to Order Status Request (H).

21 HandlInst C int

Order handling instructions.

Possible values include:

  • 1: Automated execution order, private, no broker intervention
  • 2: Automated execution order, public, broker intervention OK
  • 3: Staged order, broker intervention required

Condition: Required when submitting a staged order

16106 StagedOrderMsg N string, 256 character maximum

Message text associated with the staged order.

Typically used to provide additional information to the broker responsible for managing the order.

Note: Sent only for staged orders (Tag 21 (HandlInst)=3)

16111 StagedRoutingLevel C char

Indicator of who can work the staged order.

Possible values include:

  • B: Broker
  • I: Internal

Condition: Sent for staged orders (Tag 21 (HandlInst)=3)

16110 StagedOrderOwner C String

ID of the trader working the staged order.

Condition: Sent for staged orders (Tag 21 (HandlInst)=3)

16109 StagedOrderStatus C char

Claim status of the staged order

Possible values include:

  • A: Staged order is available to claim
  • O: Staged order has been claimed

Condition: Sent for staged orders (Tag 21 (HandlInst)=3)

16115 ExternalSource N Boolean

Whether this message was imported from an external source.

16112 NoLinks C NumInGroup

Number of links contained in this repeating group

Condition: Sent when available

16113 LinkID C String

An identifier used to distinguish that this is a child order or fill that came from an synthetic parent order. Child orders and fills that came from the same parent order will have the same LinkID.

Note: If the TBD setting is enabled for the FIX session in the Setup application, this tag will contain a shortened ID.

Condition: Sent when tag 16112 > 0

16114 LinkType C char

The kind of link. This identifies the relationship between the child orders and fills and the parent order.

Possible values include:

  • 7: Staged child order ID
  • P: Parent order ID

Condition: Sent when tag 16112 > 0

1362 NoFills C NumInGroup

Number of partial fills included in this Execution Report

Condition: Sent when an order is filled through multiple price levels in a single match transaction, i.e. "sweeping the market," or when itemizing leg fills from a single summary fill received from the exchange.

1363 FillExecID C String

Unique identifier of execution as assigned by sell-side (broker, exchange, ECN). The ID must not overlap tag 17 (ExecID).

Condition: Sent when tag 1362 > 1

1364 FillPx C Price

Price of this partial fill

Condition: Sent when tag 1362 > 1

1365 FillQty C Qty

Quantity (e.g. shares) bought or sold in this partial fill

Condition: Sent when tag 1362 > 1

Component: <StrategyParametersGrp> C

Strategy parameter repeating group for TT Order types, user-defined ADL algos, third-party algos, or informational fields

Condition: Sent for order acknowledgments and fills associated with these orders.

Component Block <Standard Trailer> Y

Message Notes

The Execution Report (8) message is used to respond to a successful order request, a fill, or an unsolicited order change.

Notes for 7.X FIX Adapter Developers

The following Execution Report (8) message tags from TT FIX Adapter 7.X are deprecated in TT FIX:

  • ClearingAccount [440]
  • ContraBroker [375] (Replaced with the Party ID Repeating Group in Trader Component Block)
  • CustomerOrFirm [204]
  • ExchangeGateway [18203]
  • ExecBroker [76] (Replaced with the Party ID Repeating Group in Trader Component Block)
  • FFT2 [16102]
  • FFT3 [16103]
  • OrderEnteredTime [6038]
  • OrderOriginationID [16142]
  • OrderTag [16105]
  • Rule80A [47]
  • TTAccountType [18205]
  • TTSessionID [16018]
  • TTUsername [10553]
  • UnderlyingCurrency [318] (Renamed to LegCurrency)
  • UnderlyingDeliveryTerm [18212] (Renamed to LegDeliveryTerm)
  • UnderlyingMaturityDay [314]
  • UnderlyingMaturityMonthYear [313] (Renamed to LegMaturityMonthYear)
  • UnderlyingOptAttribute [317] (Renamed to LegOptAttribute)
  • UnderlyingPutOrCall [315] (Renamed to LegPutOrCall)
  • UnderlyingSecurityAltID [10456] (Renamed to LegSecurityAltID)
  • UnderlyingSecurityExchange [308] (Renamed to LegSecurityExchange)
  • UnderlyingSecurityID [309] (Renamed to LegSecurityID)
  • UnderlyingSecurityType [310] (Renamed to LegType)
  • UnderlyingStrikePrice [316] (Renamed to LegStrikePrice)
  • UnderlyingSymbol [311] (Renamed to LegSymbol)
  • UserTag [16104]