TT Trade Surveillance

Importing data using TT FIX

Importing data using TT FIX

The TT FIX Inbound Drop Copy service allows third parties to import their data sources into the TT environment for TT Trade Surveillance processing.

The following sections describe this process and provide information about creating the necessary input:

About the TT FIX Inbound Drop Copy service

The TT FIX Inbound Drop Copy service supports a subset of the FIX protocol (Version 4.2 with Errata 20010501) message types and tags within the message types. When importing data into TT Trade Surveillance, the TT FIX Inbound Drop Copy service supports only those messages and tags described in this document. Do not submit other messages or tags, as doing so can produce unexpected results.

The TT FIX Inbound Drop Copy service supports persistent FIX sessions. When it is started for the first time, it will send a Logon (A) message with Tag 34 (MsgSeqNum)=1. When there are unscheduled restarts, the standard FIX message sequence number negotiation will take place.

After the TT FIX Inbound Drop Copy service creates a connection to the FIX acceptor, the FIX acceptor can start sending unsolicited Execution Report (8) messages to be processed by the TT FIX Inbound Drop Copy service.

TT FIX Drop Copy Execution Report

The Execution Report (8) message for TT FIX Drop Copy sessions is used to import order information into Trade Surveillance for processing, such as confirmations, fills, and unsolicited changes

Supported Tags

Tag # Field Name Req’d Data type Comments
8 BeginString Y String

FIX protocol version

The tag indicates the beginning of a new message. This tag must be the first tag in the message.

You must set the value to FIX.4.2.

9 BodyLength Y int

Message length (in characters)

The value represents number of characters in the message following this tag up to, and including, the delimiter immediately preceding Tag 10 (CheckSum). This tag must be the second field in a message.

35 MsgType Y String

Type of message contained in the message body

This tag must appear third in the list of header tags.

Only 35=8 (Execution Report) is supported.

49 SenderCompID Y String

Assigned value used to identify firm sending message

56 TargetCompID Y String

Assigned value used to identify the receiving firm

50 SenderSubID N String

Unique ID for the message sender

34 MsgSeqNum Y SeqNum

Message sequence number

52 SendingTime Y UTCTimestamp

Time, in UTC, the message was sent.

Examples:

  • For millisecond precision: 60=20170509-22:34:56.881
  • For microsecond precision: 60=20170509-22:34:56.881321
1 Account C String

Order-routing account

10553 Username C String

3rd party system username

20 ExecTransType N char

Type of execution report

Only 20=3 (Status) is supported.

37 OrderId Y string

Unique identifier for an order that remains constant for the life of the order

Instrument block Y Component For tags that you include in the Instrument Component and any restrictions in their use, refer to Instrument block.
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 (same as 20=2 in FIX 4.2)
  • H: Trade cancel (same as 20=1 in FIX 4.2)
  • I: Order status (same as 20=3 in FIX 4.2)
  • J: Trade in a clearing hold
  • K: Trade has been released to clearing
  • L: Triggered or activated by system
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
  • B: As Defined (FIX 4.4 only)
  • C: Opposite (FIX 4.4 only)
39 OrdStatus Y int

Status of the order

Possible values include:

  • 0: New
  • 1: Partially filled
  • 2: Filled
  • 3: Done for day
  • 4: Cancelled
  • 5: Replaced
  • 6: Cancel pending
  • 7: Stopped
  • 8: Rejected
  • 9: Suspended (Held)
  • A: Pending new
  • B: Calculated
  • C: Expired
  • D: Accepted for bidding
  • 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)

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.

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.

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)
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
38 OrderQty C Qty

Total order quantity

1138 DisplayQty C Qty

Sum of working quantities of child orders.

1088 RefreshQty C Qty

Quantity disclosed for a disclosed quantity (Iceberg) order

Condition: Sent only for disclosed quantity orders

40 OrdType C 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)
  • J: Market If Touched (MIT)
  • K: Market with Leftover as Limit
  • Q: Market Limit Market (MLM) with Leftover as Limit
  • S: Stop Market to Limit
  • T: Market to Limit (without Limit Price) If-Touched
  • U: Market to Limit If Touched (MLM-IT)
  • V: Market Close Today (reserved for future use)
  • W: Limit Close Today (reserved for future use)
  • p: Limit (post-only)
59 TimeInForce C 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
  • 7: At the Close
  • 8: Good through Crossing
  • 9: At Crossing
  • A: Auction
  • V: Good in Session
  • W: Day Plus
  • X: Good Till Cancel Plus
  • Y: Good Till Date Plus

For more information about TIFs supported by exchanges, refer to Supported Order Types and TIFs in the Setup help.

432 ExpireDate C LocalMktDate

Date a Good Till Date order expires

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

58 Text C String

Additional information about the message

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

10 Checksum Y String

Unencrypted three-character checksum This tag must always be the last field in a message (i.e. it serves, with the trailing , as the end-of-message delimiter).

Component: Instrument block

When sending the instrument component block in a FIX execution report, you can specify the instrument in any of the following methods:

These methods can be used as follows:

  • You can use the security ID method for all cases.
  • You can use the security name method for all contracts on all exchanges except for ICE contracts that use daily, weekly, variable, and undefined delivery terms.

When specifying by security ID

Tag # Field Name Req’d Data type Comments
48 SecurityID Y String

ID of the instrument

Note: The combination of this tag and tag 22 (IDSource) must uniquely identify an instrument in the TT platform.

22 IDSource Y String

Source for the value of tag 48 (SecurityID).

Possible values include:

  • 5: RIC code
  • 8: Exchange symbol
  • 96: TT security ID
  • 97: Alias
  • 98: Name
  • X: Series key

Note: The following markets support RIC codes (22=5) for identifying futures, spreads and options instruments in tag 48 (SecurityID):

  • ASX
  • DGCX
  • CFE
  • CME
  • EEX
  • EUREX
  • Euronext
  • Hkex
  • ICE
  • ICE_L
  • LME
  • MEFF
  • MX
  • OSE
  • SGX
  • TFX
  • TOCOM

Note: The combination of this tag and tag 48 (SecurityID) must uniquely identify an instrument in the TT platform.

207 SecurityExchange C Exchange

Name of the market where the instrument trades.

TT FIX uses this value to identify the exchange that offers the security.

Possible values include:

  • AGGREGATOR
  • ALGO
  • ASE
  • SX
  • B3
  • BitMEX
  • BrokerTec
  • CBOT
  • CFE
  • CME
  • Coinbase
  • CoinFLEX
  • CurveGlobal
  • CZCE
  • DCE
  • DGCX
  • EEX
  • Eurex
  • Euronext
  • Fenics
  • FEX
  • HKEX
  • ICE
  • ICE_L
  • IDEM
  • INE
  • KCG
  • LME
  • LSE
  • MEFF
  • MX
  • MX
  • NDAQ_EU
  • NFI
  • NFX
  • OSE
  • SGX
  • TFX
  • TOCOM

Condition: Required when Tag 100 (ExtDestination) is absent and when tag 22 (IDSource) is 8 (Exchange symbol), 97 (Alias) or 9 (Name).

OR
100 ExDestination C Exchange

Market Identifier Code (MIC) of the sub-market where the instrument trades.

Execution destination for the order as defined by the institution

Some traders use this tag in place of Tag 207 (SecurityExchange) to identify the exchange.

ISO 10383 defines a comprehensive list of MIC codes.

Condition: Required when Tag 207 (SecurityExchange) is absent and when tag 22 (IDSource) is 8 (Exchange symbol), 97 (Alias) or 9 (Name).

55 Symbol Y String

Exchange-provided product symbol for the tradable product.

When specifying instruments for NewOrderMultileg (AB) and MultilegOrderCancelReplace (AC):

  • When submitting multi-leg instrument, set tag 55 to "[NA]".
  • When tag 54 (Side) is B or C, the value in tag 55 is ignored; the values in tag 600 (LegSymbol) and tag 624 (LegSide) in the LegInstrument group are used instead.

When specifying by security name

You can also identify instruments by specifying its name and characteristics. You might use this method if your application or business practices do not use security IDs.

Tag # Field Name Req’d Data type Comments
207 SecurityExchange C Exchange

Name of the market where the instrument trades.

TT FIX uses this value to identify the exchange that offers the security.

Possible values include:

  • AGGREGATOR
  • ALGO
  • ASE
  • SX
  • B3
  • BitMEX
  • BrokerTec
  • CBOT
  • CFE
  • CME
  • Coinbase
  • CoinFLEX
  • CurveGlobal
  • CZCE
  • DCE
  • DGCX
  • EEX
  • Eurex
  • Euronext
  • Fenics
  • FEX
  • HKEX
  • ICE
  • ICE_L
  • IDEM
  • INE
  • KCG
  • LME
  • LSE
  • MEFF
  • MX
  • MX
  • NDAQ_EU
  • NFI
  • NFX
  • OSE
  • SGX
  • TFX
  • TOCOM

Condition: Required when Tag 100 (ExtDestination) is absent and when tag 22 (IDSource) is 8 (Exchange symbol), 97 (Alias) or 9 (Name).

OR
100 ExDestination C Exchange

Market Identifier Code (MIC) of the sub-market where the instrument trades.

Execution destination for the order as defined by the institution

Some traders use this tag in place of Tag 207 (SecurityExchange) to identify the exchange.

ISO 10383 defines a comprehensive list of MIC codes.

Condition: Required when Tag 207 (SecurityExchange) is absent and when tag 22 (IDSource) is 8 (Exchange symbol), 97 (Alias) or 9 (Name).

55 Symbol Y String

Exchange-provided product symbol for the tradable product.

When specifying instruments for NewOrderMultileg (AB) and MultilegOrderCancelReplace (AC):

  • When submitting multi-leg instrument, set tag 55 to "[NA]".
  • When tag 54 (Side) is B or C, the value in tag 55 is ignored; the values in tag 600 (LegSymbol) and tag 624 (LegSide) in the LegInstrument group are used instead.
167 SecurityType Y String

Asset class of the instrument.

Possible values include:

  • FUT: future
  • MLEG: multi-leg
  • OPT: option
  • SPOT: EEX spot products
  • CUR: currency
  • TBOND: treasury bond
  • CS: common stock
  • NONE: No security type (Not valid for 35=c, e or V)
55 Symbol Y String

Exchange-provided product symbol for the tradable product.

200 MaturityMonthYear Y MonthYear

Month and year the instrument reaches maturity in the format YYYYMM.

Note: If included, tag 541 (MaturityDate) will override this tag.

205 MaturityDay C DayOfMonth

Day of expiration for the instrument.

TT FIX uses this value and Tag 200 (MaturityMonthYear) to specify the maturity date when Tag 167 (SecurityType) is not MLEG.

Range: 1-31

Note: If included, tag 541 (MaturityDate) will override this tag.

Condition: Required when multiple contracts exist for the same month

201 PutOrCall C int

Whether the option represents a put or call

Possible values include:

  • 0: Put
  • 1: Call

Condition: Required when Tag 167 (SecurityType) is OPT

202 StrikePrice C Price

Strike price for an option

Condition: Required when Tag 167 (SecurityType) is OPT

Message samples

The following sample FIX messages illustrate different ways of identifying an instrument in an Execution Report (8) message.

Message samples for importing Futures by Name

8=FIX.4.2|9=00512|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=3122|52=20181023-20:53:10.869|55=6A|22=98|48=6AZ8|167=FUT|207=CME|1=jdoe123|10553=JDOE|37=02KZCJ028|32=1|151=0|14=1|54=1|40=2|59=0|150=2|39=2|442=1|44=7139|38=1|31=7139|60=20181023-20:53:10.545|10=104|

Message samples for importing Futures by Alias

8=FIX.4.2|9=00512|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=3122|52=20181023-20:53:10.869|55=6A|22=97|48=6A Dec18|167=FUT|207=CME|1=jdoe123|10553=JDOE|37=02KZCJ028|32=1|151=0|14=1|54=1|40=2|59=0|150=2|39=2|442=1|44=7139|38=1|31=7139|60=20181023-20:53:10.545|10=104|

Message samples for importing Futures by RIC

8=FIX.4.2|9=00512|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=3122|52=20181023-20:53:10.869|55=6A|22=5|48=1ADX8|167=FUT|207=CME|1=jdoe123|10553=JDOE|37=02KZCJ028|32=1|151=0|14=1|54=1|40=2|59=0|150=2|39=2|442=1|44=7139|38=1|31=7139|60=20181023-20:53:10.545|10=104|

Message samples for importing Options by Name

8=FIX.4.2|9=00536|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=2425|52=20181024-15:42:49.292|55=ES|22=98|48=ESZ8 C0100|167=OPT|207=CME|1=jdoe123|10553=JDOE|37=02KZKR006|200=201812|32=1|151=0|14=1|201=1|54=2|40=2|59=0|150=2|39=2|442=1|202=10000|44=20|38=1|31=20|60=20181024-15:42:49.170|10=208

Message samples for importing Options by Alias

8=FIX.4.2|9=00536|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=2425|52=20181024-15:42:49.292|55=ES|22=97|48=ES Dec18 C10000|167=OPT|207=CME|1=jdoe123|10553=JDOE|37=02KZKR006|200=201812|32=1|151=0|14=1|201=1|54=2|40=2|59=0|150=2|39=2|442=1|202=10000|44=20|38=1|31=20|60=20181024-15:42:49.170|10=208

Message samples for importing Options by RIC

8=FIX.4.2|9=00536|35=8|49=TT_ORDER|56=TTDROPCOPY|50=TTORDFADTS300|34=2425|52=20181024-15:42:49.292|55=ES|22=5|48=ES100L8|167=OPT|207=CME|1=jdoe123|10553=JDOE|37=02KZKR006|200=201812|32=1|151=0|14=1|201=1|54=2|40=2|59=0|150=2|39=2|442=1|202=10000|44=20|38=1|31=20|60=20181024-15:42:49.170|10=208