Overview
TT FIX Order Router supports submitting Security Definition Request (Tag 35=c) messages to create strategies and Quote Request (Tag 35=R) messages for Request for Quote (RFQ) functionality.
Strategy Creation
The Security Definition Request (Tag 35=c) defines a specific security at the exchange. You can define a multileg security made up of one or more instrument legs.
Once you submit the request, TT detects if the security already exists in the system and sends a Security Definition (Tag 35=d) message for the instrument. If the instrument does not exist, the FIX Order Routing service forwards the request and waits for a response from the exchange.
Strategy Creation – Success
When an instrument is created successfully, FIX Order Routing service responds with a Security Definition (Tag 35=d) message with the SecurityResponseType (Tag 323) set to either:
323=1: Accept Instrument proposal as-is
— or —
323=2: Accept Instrument proposal w/ changes indicated
Strategy Creation – Reject
If the instrument is not created successfully, the FIX Order Routing service responds with a Security Definition (Tag 35=d) message and SecurityResponseType (Tag 323) set to:
323=5: Reject Instrument Proposal
Security Definition Changes
The Security Definition Request (Tag 35=c) message has been updated to match the Instrument and InstrumentLeg components as defined on the Security Definition (Tag 35=d) message.
The new tags added to the Security Definition Request (Tag 35=c) are only valid when submitting requests via FIX Order Routing sessions.
Request for Quote (RFQ)
The Quote Request (Tag 35=R) message is used to submit Request for Quotes (RFQs) from market makers and brokers in the marketplace prior placing an order. This occurs commonly for multileg strategies where there is insufficient liquidity to get the best price for the instrument.
Request for Quote – Success
For successful RFQ requests, the FIX Order Session sends a Quote Request Response (Tag 35=b) message with the following values:
QuoteAckStatus (Tag 16859): equals 0, “ok”.
Request for Quote – Reject
If the RFQ request is unsuccessful for any reason, the FIX Order Session sends a Quote Request Response (Tag 35=b) message with the following values:
QuoteReqID (Tag 131): equals the unique ID for the request.
QuoteRejectReason (Tag 300): equals the reason for the reject.
Quote Response Changes
Quote response messages (Quote Request (Tag 35=R)) are also sent via the FIX Market Data feed to both API and client applications. Quote responses are not sent over the FIX Order Routing session.
The new tags added to the (R) message are valid for use in submission of request messages to FIX Order Routing sessions only. FIX Market Data sessions that subscribe for (R) messages are not impacted by the schema change.
FIX Schema Changes
The following section highlights the specific FIX schema changes to support Strategy Creation and Request for Quote (RFQ) functionality.
Message type (35=c) – SecurityDefinitionRequest
The Security Definition Request (35=c) message sent via the FIX Order Routing Service includes a number of tags to support strategy creation and request for quote functionality. These tags are only included with Order Routing Security Definition Request (35=c) messages and do not appear in the FIX Market Data service.
| Tag | Name | Type | Comment |
|---|---|---|---|
| 1 | Account | STRING | Added to message for FIX Order Routing sessions. |
| 762 | SecuritySubType | STRING | Added to message for FIX Order Routing sessions. Required for certain exchanges. If not present, the exchange may reject the request. |
| 555 | NoLegs | STRING | Added to message for FIX Order Routing sessions. The NoLegs repeating group and its fields are introduced to support Strategy creation via FIX Order Routing by passing individual underlying legs via the 6xx repeating groups. |
| 566 | LegPrice | PRICE | — |
| 600 | LegSymbol | STRING | — |
| 602 | LegSecurityID | STRING | — |
| 603 | LegIDSource | STRING | — |
| 607 | LegProduct | INT | — |
| 608 | LegCFICode | STRING | — |
| 609 | LegSecurityType | STRING | — |
| 610 | LegMaturityMonthYear | MONTHYEAR | — |
| 611 | LegMaturityDate | LOCALMKTDATE | — |
| 612 | LegStrikePrice | PRICE | — |
| 613 | LegOptAttribute | CHAR | — |
| 616 | LegSecurityExchange | EXCHANGE | — |
| 623 | LegRatioQty | FLOAT | — |
| 624 | LegSide | CHAR | — |
| 764 | LegSecuritySubType | STRING | — |
| 811 | OptionDelta | FLOAT | — |
| 1358 | LegPutOrCall | INT | — |
| 18212 | LegDeliveryTerm | CHAR | — |
| 18213 | LegDeliveryDate | LOCALMKTDATE | — |
| 18314 | LegMaturityDay | DAYOFMONTH | — |
| 18100 | LegExDestination | EXCHANGE | — |
| 18224 | LegContractYearMonth | STRING | — |
Message type (35=R) – Quote Request
| Tag | Name | Type | Comment |
|---|---|---|---|
| 22 | IDSource | STRING | Added to message for FIX Order Routing sessions. |
| 1 | Account | STRING | Added to message for FIX Order Routing sessions. |
| 18102 | UserID | STRING | Added to message for FIX Order Routing sessions. |
| 146 | NoRelatedSym | NUMINGROUP | — |
| 454 | NoSecurityAltID | NUMINGROUP | Added to message for FIX Order Routing sessions. Added to support multi leg lookup. |
| 455 | SecurityAltID | STRING | — |
| 16207 | BloombergSecurityExchange | STRING | — |
| 555 | NoLegs | STRING | Added to message for FIX Order Routing sessions. To support multi leg lookup similar to other messages like NewOrderMultiLeg etc. |
| 566 | LegPrice | PRICE | — |
| 600 | LegSymbol | STRING | — |
| 602 | LegSecurityID | STRING | — |
| 603 | LegIDSource | STRING | — |
| 607 | LegProduct | INT | — |
| 608 | LegCFICode | STRING | — |
| 609 | LegSecurityType | STRING | — |
| 610 | LegMaturityMonthYear | MONTHYEAR | — |
| 611 | LegMaturityDate | LOCALMKTDATE | — |
| 612 | LegStrikePrice | PRICE | — |
| 613 | LegOptAttribute | CHAR | — |
| 616 | LegSecurityExchange | EXCHANGE | — |
| 623 | LegRatioQty | FLOAT | — |
| 624 | LegSide | CHAR | — |
| 764 | LegSecuritySubType | STRING | — |
| 620 | LegSecurityDesc | STRING | — |
| 1358 | LegPutOrCall | INT | — |
| 18212 | LegDeliveryTerm | CHAR | — |
| 18213 | LegDeliveryDate | LOCALMKTDATE | — |
| 18314 | LegMaturityDay | DAYOFMONTH | — |
| 18100 | LegExDestination | EXCHANGE | — |
| 556 | LegCurrency | CURRENCY | — |
| 604 | NoLegSecurityAltID | NUMINGROUP | Added to message for FIX Order Routing sessions. To support multi leg lookup similar to other messages like NewOrderMultiLeg etc. |
| 605 | LegSecurityAltID | STRING | — |
| 606 | LegSecurityAltIDSource | STRING | — |
| 16616 | LegBloombergSecurityExchange | STRING | — |
New message type (35=b) – Quote Request Response (ADDED)
| Tag | Name | Type | Custom Column |
|---|---|---|---|
| 131 | QuoteReqID | STRING | Added to message for FIX Order Routing sessions. Maps to the QuoteReqID (tag 131) in the RFQ request (35=R) |
| 1 | Account | STRING | Added to message for FIX Order Routing sessions. |
| 17 | ExecID | STRING | Added to message for FIX Order Routing sessions. |
| 16859 | QuoteAckStatus | INT | Added new field Mappings: 0: QUOTE_REQUEST_STATUS_OK 5: QUOTE_REQUEST_STATUS_REJECTED |
| 18101 | AccountID | STRING | Added to message for FIX Order Routing sessions. |
| 18102 | UserID | STRING | Added to message for FIX Order Routing sessions. |
| 16117 | OrderSource | INT | Added to message for FIX Order Routing sessions. |
| 1028 | ManualOrderIndicator | BOOLEAN | Added to message for FIX Order Routing sessions. |
| 37 | OrderID | STRING | Added to message for FIX Order Routing sessions. |
| 1724 | OrderOrigination | INT | Added to message for FIX Order Routing sessions. |
| 38 | OrderQty | QTY | Added to message for FIX Order Routing sessions. |
| 198 | SecondaryOrderID | STRING | Added to message for FIX Order Routing sessions. |
| 107 | SecurityDesc | STRING | Added to message for FIX Order Routing sessions. |
| 54 | Side | CHAR | Added to message for FIX Order Routing sessions. |
| 58 | Text | STRING | Added to message for FIX Order Routing sessions. |
| 60 | TransactTime | UTCTIMESTAMP | Added to message for FIX Order Routing sessions. |
| 582 | CustOrderCapacity | INT | Added to message for FIX Order Routing sessions. |