CQG FIX API Specification

157
CQG FIX API Specification Software Version 4.25 | Document Version 02 November 3, 2014

Transcript of CQG FIX API Specification

Page 1: CQG FIX API Specification

CQG FIX API Specification Software Version 4.25 | Document Version 02 November 3, 2014

Page 2: CQG FIX API Specification

© 2014 CQG Inc.

Page 3: CQG FIX API Specification

Table of Contents

About this Document ..................................................................................................................................... 1

Recent Publication History ........................................................................................................................ 2 Customer Support ..................................................................................................................................... 2

CQG FIX API ................................................................................................................................................. 3

Features .................................................................................................................................................... 4

Supported Message Types ....................................................................................................................... 6

Required Tags ......................................................................................................................................... 10

Definitions for ExecInst (tag 18) .............................................................................................................. 11 Syntax for Symbol (tag 55) ...................................................................................................................... 12

Values for UserStrategyType (tag 20049) ............................................................................................... 14

Suspended Order State ........................................................................................................................... 17

Flagging Algorithmic Orders .................................................................................................................... 18

Message Definitions .................................................................................................................................... 19

Header and Trailer ................................................................................................................................... 19 Session (Administrative) Messages ........................................................................................................ 22

Logon (A) ............................................................................................................................................. 22

Logout (5) ............................................................................................................................................. 23

Heartbeat (0) ........................................................................................................................................ 23

Reject (3) ............................................................................................................................................. 24 Resend Request (2) ............................................................................................................................. 25

Sequence Reset (4) ............................................................................................................................. 25

Test Request (1) .................................................................................................................................. 26

Application Messages: FIX Client to CQG Gateway ............................................................................... 27

New Order Single (D) .......................................................................................................................... 27

New Order Multileg (AB) ...................................................................................................................... 34 New Order List (E) ............................................................................................................................... 41

Order Cancel Request (F) ................................................................................................................... 54

Order Cancel/Replace Request (G)..................................................................................................... 56

Parked Order Activation Request (G) .................................................................................................. 58

Update Order Attributes Request (G) .................................................................................................. 60

Security Definition Request (c) ............................................................................................................ 62 Order Mass Status Request (UAF) ...................................................................................................... 65

Request for Position (UAN) ................................................................................................................. 68

Account Data Request (UAR) .............................................................................................................. 70

Page 4: CQG FIX API Specification

Collateral Inquiry (UBB) ....................................................................................................................... 71

User Request (UBE) ............................................................................................................................ 72

Account Risk Parameters Request (URR) .......................................................................................... 73 Authorized Accounts Request (UZS) ................................................................................................... 74

FCM Currency Rate Request (UZU).................................................................................................... 75

Allowed Feature Request (UZX) .......................................................................................................... 76

Market Data Enablements Request (UZZ) .......................................................................................... 77

Application Messages: CQG Gateway to FIX Client ............................................................................... 78

Execution Report: Reject Message (8) ................................................................................................ 78 Execution Report: Confirmation/Acknowledgement (8) ....................................................................... 87

List Status Request (N) ...................................................................................................................... 100

Order Cancel Reject (9) ..................................................................................................................... 103

Business Message Reject (j) ............................................................................................................. 106

Security Definition (d) ........................................................................................................................ 108

Order Mass Status Request Ack (UBR) ............................................................................................ 113 Request for Positions Ack (UAO) ...................................................................................................... 114

Current Day Fills: Position Report (UAP)........................................................................................... 115

FCM-Confirmed Positions: Position Report (UAP) ............................................................................ 121

Account Data Report (UAD) .............................................................................................................. 126

Collateral Report (UBA) ..................................................................................................................... 130

User Response (UBF) ....................................................................................................................... 132 Account Risk Parameters Report (URP) ........................................................................................... 133

Authorized Accounts Report (UZR) ................................................................................................... 135

FCM Currency Rate Report (UZT) ..................................................................................................... 137

Allowed Feature Report (UZW) ......................................................................................................... 139

Allowed Market Data Report (UZY) ................................................................................................... 141 Automatic Order Update (UZV) ......................................................................................................... 143

News (B) ............................................................................................................................................ 145

Appendix A: Reject Codes ........................................................................................................................ 146

Page 5: CQG FIX API Specification

Page 1

About this Document

This document defines the customized subset of Financial Information eXchange (FIX) messages that CQG supports in its FIX implementation. All FIX communication with CQG Hosted Exchange Gateways is according to the protocol defined herein. This document is designed to supplement the FIX protocol documentation that can be found at http://www.fixprotocol.org/ rather than being a complete and self-sufficient reference.

In the message descriptions below, the following assumptions and notation are used:

• FIX 4.2 is taken as the basis for all messages.

• Only supported fields are listed.

• Readers should have a good working knowledge of FIX prior to reading this document.

You can navigate the document in several ways:

• Click a bookmark listed on the left of the page.

• Click an item in the Table of Contents.

• Click a blue, underlined link that takes you to another section of the document. To go back, use Adobe Reader Page Navigation items (View menu).

If you are looking for a particular term, it may be easier for you to search the document for it. There are two ways to do that:

• Right-click the page, and then click Find.

• Press Ctrl+F on your keyboard.

Because this specification is meant to be printed double-sided, you may notice blank pages in the .pdf.

CQG FIX API Specification

Page 6: CQG FIX API Specification

Page 2

Recent Publication History Changes are in red, bold font.

Version Date Comments

4.25-02 November 3, 2014 Added non-required Symbol (tag 55) to Order Cancel/Replace Request (G).

Removed Business Message Reject (j) as response for New Order Single (D), New Order List (E), and New Order Multileg (AB).

4.25-01 October 9, 2014 Added RealizedPL (tag 20126) to Collateral Report (UBA).

4.24-01 September 4, 2014 Added note to Features defining the logon request rate.

4.21-02 February 24, 2014 Added ClientRegulatoryAlgorithmID (tag 20124) and EffectiveRegulatoryAlgorithmID (tag 20125) to order requests and execution report messages.

Added new section: Flagging Algorithmic Orders.

4.21-01 January 30, 2014 Added ExchangeKeyID (tag 20119) and LegExchangeKeyID (tag 20120) to Reject Message: Execution Report (8).

Added ExchangeKeyID (tag 20119) to FCM-Confirmed Positions: Position Report (UAP) and Current Day Fills: Position Report (UAP).

Added ExchangeKeyID (tag 20119), LegExchangeKeyID (tag 20120), FillExecID (tag 20122), and LegFillExecID (tag 20123) to Confirmation/Acknowledgement: Execution Report (8).

Added ExchangeKeyID (tag 20119) and UnderlyingExchangeKeyID (tag 20121) to Security Definition (d).

Added value (3) to ReqResult (tag 20022) of Order Mass Status Request Ack (UBR).

Customer Support Please e-mail [email protected] if you have questions about the CQG FIX API.

About this Document

Page 7: CQG FIX API Specification

Page 3

CQG FIX API

The CQG FIX API provides access to futures and fixed income cash markets. Trade routing connectivity is available to more than forty exchanges worldwide. We support platform-neutral trade execution and risk management processes by leveraging CQG’s industry-leading unified exchange gateway and Customer Account Service Tool (CAST) risk control system without the need for access to a CQG proprietary client.

Access to the CQG gateway for FIX can be incorporated as part of a wide range of trading and back office solutions, such as algorithmic trading, customer risk control, alternative client manual trading, and managed execution.

Conformance Testing

Before using CQG FIX API on a live production environment, it is important to ensure that the client application works as expected and can recover from order rejects, missed events, etc.

This verification is achieved through CQG FIX API conformance testing. CQG provides connectivity to a testing environment where you can test and debug your applications using simulation trading accounts.

This testing is described in a separate document that is provided by your CQG representative.

CQG FIX API Specification

Page 8: CQG FIX API Specification

Page 4

Features • For administrative messages, all fields not specified are optional and ignored by the CQG

gateway.

• For application messages, only the specified fields are valid. If a client submits unspecified fields or unspecified field values, the FIX message is rejected via the Session Reject Message.

• For application messages sent from the CQG gateway to clients, it is possible that new fields will be added or existing valid values will be extended. Client applications should be able to process such messages.

Note for QuickFIX users: make sure your session setting ValidateUserDefinedFields is set to “N”.

• The CQG gateway can limit the number of client requests per interval. If the request rate for messages UAF (Order Mass Status Request), UAN (Request for Position), or UAR (Account Data Request) exceeds the limit, the incoming message is rejected via the Business Level Reject. The default limit is no more than 5 requests of any type per account in 20 seconds.

• Except where noted, fields within a message can be defined in any sequence. (Relative position of a field within a message is inconsequential.) The exceptions to this rule are:

• The first three fields in the standard header are BeginString (tag 8) followed by BodyLength (tag 9) followed by MsgType (tag 35).

• The last field in the standard trailer is CheckSum (tag 10).

Note for QuickFIX users: make sure your session setting ValidateFieldsOutOfOrder is set to “N”.

• Orders submitted via the CQG FIX interface are visible in CQG Integrated Client (IC).

• Execution Report messages contain ClOrdID (tag 11) that is populated with a specific format on order actions originating from CQG IC and other CQG clients. This string starts with “CQG_” prefix plus a numeric identifier that corresponds to the order being processed by the CQG gateway, thus allowing full control of such orders by the FIX application.

• The only way to activate a parked order is to send an Order Cancel Replace Request with Tag 18 (ExecInst)=g. See Parked Order Activation Request for details (including a slight deviation from the FIX Protocol). Note that CQG FIX also uses OrdStatus = 9 (Suspended) to refer to orders being held by the CQG gateway for later automatic activation. Execution Reports on such orders do not include Tag 18 (ExecInst) = S. They are not considered parked orders, and thus they can't be activated by FIX message.

• CQG FIX API users are able to trade via the CQG FIX API and use other contract symbols, like Bloomberg, Reuters, or other custom symbols. By default, contract symbols are in CQG IC long format. Users interested in using an alternate symbology should contact CQG. When symbol conversion is enabled and a symbol cannot be mapped, CQG FIX API sends the symbol in CQG IC long format.

Currently the FIX server supports flexible adjustment of symbol conversion. Consider the CCMY algorithm:

CCMY is a symbol format where CC is the external commodity code (various lengths), M is a month letter of FGHJKMNQUVXZ pattern, and Y is the last year digit. For example: ESZ9 <-> F.US.EPZ09.

• Currently the FIX API server is able to reset all sessions every 24 hours. Note that this functionality is not in use now but may be in the future.

CQG FIX API

Page 9: CQG FIX API Specification

Page 5

• Currently FIX logical sessions are tied to connections, i.e. each time the FIX client reconnects, it

should use sequence number 1 in the Logon message. But if the session persistence feature is enabled, the client can send the next after the last sent sequence number in Logon message with ResetSeqNumFlag set to ‘N’. CQG implementation of session persistence mechanism requires the client to support PossResend (tag 97) in standard header. During session restoration, some execution reports may be sent repeatedly with different sequence numbers, so the client should have the ability to filter such messages, for example using ExecID (tag 17). Maximum storage time of the persisted session is 24 hours after the last disconnect. Session persistence option is configured based on the FIX vendor. Please contact CQG if you want to enable this feature.

• General FIX 4.2 specification requires Side (tag 54) and Symbol (tag 55) for order cancel request, and the CQG gateway accepts requests with such fields although the only fields that are used to cancel the order are: OrderID (tag 37) and OrigClOrderID (tag 41).

• CQG FIX interface supports the following identifiers provided for Account (tag 1):

• Account ID, provided by the CQG gateway.

• Account name, provided by the CQG gateway.

• FCM account number, provided by the FCM.

The default account identifier type is Account ID, used for both incoming and outgoing messages. The account identifier type is configured based on the FIX vendor. Please contact CQG if you want to change the account identifier type from Account ID provided by the CQG gateway. The CQG FIX interface will reject incoming requests for account names or FCM account numbers that are not unique.

• The CQG gateway limits the number of client collateral inquiries per interval. The default limit is 1 inquiry per second per account. If the inquiry rate exceeds the limit, the incoming message is rejected via the Business Level Reject.

• The CQG gateway limits the number of logon requests during a specific time interval. The current limit is 20 logons within 5 minutes. If the logon rate exceeds that limit, the incoming logon message is rejected via the logout message. This limit can be changed without the prior notice.

CQG FIX API Specification

Page 10: CQG FIX API Specification

Page 6

Supported Message Types Session Messages

Type Message Originator

A Logon Client or CQG

0 Heartbeat Client or CQG

1 Test Request Client or CQG

2 Resend Request Client or CQG

3 Reject Client or CQG

4 Sequence Reset Client or CQG

5 Logout Client or CQG

Client-Originated Messages

Reject – Session Level (3) is a possible response for any of these messages.

Type Message Possible Response Messages

AB New Order Multileg Execution Report (8)

c Security Definition Request Security Definition (d)

D New Order Single Execution Report (8)

E New Order List Execution Reports (8)

F Order Cancel Request Business Reject Message (j)

Execution Report (8)

Order Cancel Reject (9)

G Order Cancel/Replace Request Business Reject Message (j)

Execution Report (8)

Order Cancel Reject (9)

G Parked Order Activation Request Business Reject Message (j)

Execution Report (8)

G Update Order Attributes Request Business Reject Message (j)

Execution Report (8)

CQG FIX API

Page 11: CQG FIX API Specification

Page 7

Type Message Possible Response Messages

UAF Order Mass Status Request Business Reject Message (j)

Execution Report (8)

List Status (N)

Order Mass Status Request Ack (UBR)

UAN Request for Position Business Reject Message (j)

Position Report (UAP)

Request for Positions Ack (UAO)

UAR Account Data Request Account Data Report (UAD)

Business Reject Message (j)

UBB Collateral Inquiry Business Reject Message (j)

Collateral Report (UBA)

UBE User Request User Response (UBF)

URR Account Risk Parameters Request Account Risk Parameters Report (URP)

Business Reject Message (j)

UZS Authorized Accounts Request Authorized Accounts Report (UZR)

Business Message Reject (j)

UZU FCM Currency Rate Request Business Message Reject (j)

FCM Currency Rate Report (UZT)

UZX Allowed Feature Request Allowed Market Data Report (UZY)

Business Message Reject (j)

UZZ Market Data Enablements Request Allowed Market Data Report (UZY)

Business Message Reject (j)

Gateway-Originated Messages

Type Message In Response To

8 Execution Report: Reject Message New Order Single (D)

8 Execution Report: Confirmation/Acknowledgement

New Order Single (D)

Order Cancel/Replace Request (G)

CQG FIX API Specification

Page 12: CQG FIX API Specification

Page 8

Type Message In Response To

9 Order Cancel Reject Order Cancel Request (F)

Order Cancel/Replace Request (G)

B News

d Security Definition Security Definition Request (c)

j Business Message Reject Account Data Request (UAR)

Allowed Feature Request (UZX)

Authorized Accounts Request (UZS)

FCM Currency Rate Request (UZU)

Market Data Enablements Request (UZZ)

New Order List (E)

New Order Single (D)

Order Cancel Request (F)

Order Cancel/Replace Request (G)

Order Mass Status Request (UAF)

Request for Position (UAN

N List Status Request New Order List (E)

UAD Account Data Report Account Data Request (UAR)

UAO Request for Positions Ack Request for Position (UAN)

UAP Current Day Fills: Position Report Request for Position (UAN)

UAP FCM-Confirmed Positions: Position Report Request for Position (UAN)

UBA Collateral Report Collateral Inquiry (UBB)

UBF User Response User Request (UBE)

UBR Order Mass Status Request Ack Order Mass Status Request (UAF)

URP Account Risk Parameters Report Account Risk Parameters Request (URR)

UZR Authorized Accounts Report Authorized Accounts Request (UZS)

UZT FCM Currency Rate Report FCM Currency Rate Request (UZU)

UZV Automatic Order Update

UZW Allowed Feature Report Allowed Feature Request (UZX)

CQG FIX API

Page 13: CQG FIX API Specification

Page 9

Type Message In Response To

UZY Allowed Market Data Report Market Data Enablements Request (UZZ)

Note: Other message types are rejected via the Business Message Reject.

CQG FIX API Specification

Page 14: CQG FIX API Specification

Page 10

Required Tags Message tables include the Req column that identifies which tags are required.

• Y: The FIX message must include this tag.

• Y*: The tag is required by the CQG gateway, not the FIX 4.2 protocol.

• C: If a particular condition is met, then the FIX message must include this tag.

• N: Although the FIX message does not require this tag, it can be provided to specify any additional information.

• If a field has a maximum length and no specified valid values, the length is listed in parentheses in the Format column.

CQG FIX API

Page 15: CQG FIX API Specification

Page 11

Definitions for ExecInst (tag 18)

Type Value Description

Order comment c Used to set order comment in NewOrderSingle (D) message and to set and change order comment in Update Order Attributes (G).

Funari f Limit order with unexecuted portions handled as market-on-close.

Un-park order g Used in Parked Order Activation Request (G).

Iceberg i Order modifier that is used in conjunction with MaxShow tag. Iceberg orders contain a total quantity and visible quantity that is shown publicly via the order book. Currently only day limit iceberg orders are supported. MaxShow is less than or equal to total quantity.

Market Limit l Market limit order is SFE-specific order type. It is the same as limit order, but it has no price boundaries and only the three best prices are used for filling it.

Order check mark m Used to set and change order check mark in Update Order Attributes (G).

Note: This is not the same order check mark as in CQG IC client.

Quantity Triggered Stop (QTS)

q Order modifier that is used in conjunction with TriggerQty tag. Can be applied only to stop or stop limit orders with an associated trigger quantity (DOM threshold). Behaves like a corresponding stop order but is not triggered until the bid/ask quantity falls below the order’s trigger quantity.

Trailing (Primary peg) R Order modifier that is used in conjunction with PegDifference (tag 211). Can only be applied to stop or stop limit orders. Indicates that CQG gateway should maintain a maximum PegDifference offset between market and stop prices (and limit price for stop limit orders). When specified, PegDifference must be provided.

Parked S Parked orders can be cancelled at any time. Modifications of parked orders (before activation) are currently not supported with FIX API.

Market If Touched t This order type is similar to the limit type in that a specific price is placed on the order. However, an MIT order becomes a market order once the limit price is touched or passed through.

CQG FIX API Specification

Page 16: CQG FIX API Specification

Page 12

Syntax for Symbol (tag 55) While CQG FIX API uses the same contract symbols as CQG Integrated Client (CQG IC), additional requirements exist. Additionally, CQG FIX API can support a custom set of symbols that can be mapped on base CQG symbols. Please see details above in the CQG Gateway-Specific Features section.

The symbols passed to CQG FIX API are expected to be strictly formatted:

Type Formula

Futures F.<commodity prefix>.<instrument symbol><month code> <two-digit year code>

Relative Daily Future F.<commodity prefix>.<instrument symbol>

Options <C or P>.<commodity prefix>.<instrument symbol><month code><two-digit year code><strike price>

Fixed Income T.<commodity prefix>.<instrument symbol>

Cash and Currency X.<commodity prefix>.<instrument symbol>

Exchange-Traded Spreads The <instrument symbol> should include the type of strategy and strategy leg gap without additional periods. See: http://www.cqg.com/Docs/ExchangeTradedStrategies.pdf

The commodity prefix is usually US. You can confirm the prefix using Symbol Search in CQG IC. Some exceptions are stocks on the Australian Stock Exchange (AU), the Bombay Stock Exchange (IN), and German Equities (DE), for example.

Instrument symbols can be looked up also using Symbol Search. Additionally, the CQG FIX API can support custom symbols that are mapped to CQG symbols.

Month codes:

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

F G H J K M N Q U V X Z

Please note that not all contracts available in CQG are tradable. For a list of tradable contracts, please see http://www.cqg.com/Docs/Symbols.pdf.

The following table shows examples of symbols for different types of contracts:

Symbol example Meaning

C.US.QOJ091355 ICE Brent Crude, Apr 09 1355 Call

F.US.EDAS6Z12 Eurodollar Calendar Spread 6, Dec 12, Jun 13

F.US.EPW1M09 E-mini S&P Reverse Calendar Spreads 1, Jun 09, Sep 09

CQG FIX API

Page 17: CQG FIX API Specification

Page 13

Symbol example Meaning

F.US.EPZ08 E-mini S&P 500, Dec 08

F.US.RBECLEQ08 RBOB vs. WTI Crude Crack (Globex), Aug 08

P.US.EPH0915200 E-mini S&P 500, Mar 09 15200 Put

T.US.B044P0510 BrokerTec US Note 4.500% May 10 #912828G

X.US.LDKZ Copper (USD, 90d Fwd) SELECT (London Metals Exchange)

CQG FIX API Specification

Page 18: CQG FIX API Specification

Page 14

Values for UserStrategyType (tag 20049) These values can be used in for UserStrategyType (20049).

UserStrategyType value Strategy Name

backspreadcall Back Spread Call

backspreadput Back Spread Put

bearcallspread Bear Call Spread

bearputspread Bear Put Spread

boxspread Box Spread

bullcallspread Bull Call Spread

bullputspread Bull Put Spread

butterflycalllong Butterfly Call Long

butterflycallshort Butterfly Call Short

butterflyputlong Butterfly Put Long

butterflyputshort Butterfly Put Short

calendarcall Calendar Call

calendarput Put Calendar Spread

calllong Call Long

callshort Call Short

callspreadvssellaput 3-Way: Buy a Call spread versus a Put

christmastreecalllong Christmas Tree Call Long

christmastreecallshort Christmas Tree Call Short

christmastreeputlong Christmas Tree Put Long

christmastreeputshort Christmas Tree Put Short

combo Combo

condor Condor

coveredcallwrite Covered Call Write

CQG FIX API

Page 19: CQG FIX API Specification

Page 15

UserStrategyType value Strategy Name

custom Custom

deltaneutralcallratio Delta Neutral Call Ratio

diagonalcalendarspread Diagonal Calendar Spread

diagonalstraddlecalendarspread Diagonal Straddle Calendar Spread

fencelong Fence Long

fenceshort Fence Short

guts Guts

ironbutterflygutlong Iron Butterfly Gut Long

ironbutterflygutshort Iron Butterfly Gut Short

ironbutterflylong Iron Butterfly Long

ironbutterflyshort Iron Butterfly Short

ironcondor Iron Condor

jellyroll Jelly Roll

putlong Put Long

putshort Put Short

putspreadvssellacall 3-Way: Buy a Put spread versus a Call

putstraddlevssellacalloraput 3-Way: Straddle versus a Call/Put

ratiospreadcall Ratio Spread Call

ratiospreadput Ratio Spread Put

semi-underlyinglong Semi-Underlying Long

semi-underlyingshort Semi-Underlying Short

straddlecalendarspread Straddle Calendar Spread

straddlelong Straddle Long

straddleshort Straddle Short

strangle Strangle

CQG FIX API Specification

Page 20: CQG FIX API Specification

Page 16

UserStrategyType value Strategy Name

stranglelong Strangle Long

strangleshort Strangle Short

strip Strip

syntheticcalllong Synthetic Call Long

syntheticcallshort Synthetic Call Short

syntheticputlong Synthetic Put Long

syntheticputshort Synthetic Put Short

syntheticunderlyinglong Synthetic Underlying Long

syntheticunderlyingshort Synthetic Underlying Short

Note: custom strategy type is used when UDS is created on exchanges that do not require specifying strategy type.

CQG FIX API

Page 21: CQG FIX API Specification

Page 17

Suspended Order State An order may be reported as suspended (OrdStatus=9) for several reasons:

• It is placed during a period when the CQG gateway is not configured to send orders to that exchange. The time when a suspended order is activated and sent to exchange is tied to market pre-open and open periods and depends on exchange protocol specifics. When an order becomes working, a corresponding execution report is sent as usual.

These suspended orders can be cancelled or modified at any time.

• It was placed as a parked order. Parked orders require manual activation by client. Execution Reports on such orders include Tag 18 (ExecInst)=S.

• It is a member of an OPO compound order (order list with Tag 51385 (ContingencyType)=2 or 5001), and it has not been triggered by the first order in the list. Execution Reports on such orders include Tags 66 (ListID) 20036 (CQGListID). These suspended orders can be cancelled and modified at any time.

CQG FIX API Specification

Page 22: CQG FIX API Specification

Page 18

Flagging Algorithmic Orders Some exchanges may require special flagging of order requests generated algorithmically. Such orders are required to have identifier of the algorithm that produced them, namely Regulatory Algorithm ID.

“Algorithm” refers both to client-side and to CQG Gateway algorithms, such as a trailing order worked by CQG Gateway.

CQG Gateway provides the ability for both specifying and reporting algorithm identifiers with new fields in order request and execution report messages.

Tag Field Name Format Comment

20124 ClientRegulatoryAlgorithmID Int, valid range 0.. 4294967295 (unsigned 32-bit)

Regulatory Algorithm ID for client algorithm associated with this order, if any.

If specified in an order request message, this field is applicable only for exchanges that use it, e.g. Eurex.

CQG Gateway either passes this value to the exchange (when no CQG Gateway algorithm is applied to the order) or combines it with the CQG Gateway algorithm applied to create a unique overall algorithm ID for the order.

Execution Report message echoes back the value from latest order request.

20125 EffectiveRegulatoryAlgorithmID Int, valid range 0.. 4294967295 (unsigned 32-bit)

Used in Execution Report messages and contains Regulatory Algorithm ID sent to exchange for this order, if any. Will differ from ClientRegulatoryAlgorithmID if any CQG gateway algorithm was applied to the order.

Reference: Eurex circular "Information on algorithm flags and identification (“algo-flagging”)" (https://www.eurexchange.com/exchange-en/resources/circulars/650768/)

CQG FIX API

Page 23: CQG FIX API Specification

Page 19

Message Definitions

The following tables describe the CQG gateway special handling or requirements for each of the supported FIX messages.

Header and Trailer All messages begin with a standard header and end with a standard trailer.

Standard message header

Tag Field Name Format Req Comments

8 BeginString String Y Identifies beginning of new message and protocol version. Always first field in message.

Valid value: “FIX.4.2”

9 BodyLength Int Y Message length, in bytes, forward to the CheckSum field. Always second field in message.

35 MsgType String Y Defines message type. Always third field in message. Please see Supported Message Types.

34 MsgSeqNum Int Y Integer message sequence number. Note each Logon message should have sequence number 1.

43 PossDupFlag Boolean C Always required for retransmitted messages, whether prompted by the sending system or as the result of a resend request. Currently the field is ignored.

Valid values:

Y = Possible duplicate

N = Original transmission

49 SenderCompID String(32) Y Trader logon name.

50 SenderSubID String(32) C Identifier of FIX API vendor. It must be obtained from CQG. Required in Logon message only, optional in other messages.

If this field is set incorrectly or the FIX API vendor is not enabled for a trader, then logon is rejected with “The brand of client is not allowed” message.

CQG FIX API Specification

Page 24: CQG FIX API Specification

Page 20

Tag Field Name Format Req Comments

52 SendingTime UTC Timestamp

Y Time of message transmission (always expressed in UTC, Universal Time Coordinated, also known as GMT). Currently, this tag is not functional.

56 TargetCompID String(32) Y “CQG_Gateway”

57 TargetSubID String N Identifier of FIX API vendor. Must be obtained from CQG. Present in all outgoing messages.

97 PossResend Boolean N Can be set to ‘Y’ only during session restoration after unexpected connection termination. Set for messages that were possibly sent earlier with different sequence numbers.

Session persistence option is configured by FIX vendor.

115 OnBehalfOfCompID String(32) C Server-to-client messages:

Broker company ID used when sending notifications via the CQG gateway. Returned only with OnBehalfOfSubID (tag 116) and DeliverToCompID (tag 129).Present in Execution Report, Order Cancel Reject and Current Day Fills Position Report messages. It contains the same information as DeliverToCompID (tag 128).

Client-to-server messages:

Can be specified in New Order Single, Order Cancel Request, and Order Cancel/Replace Request messages.

It should be used with OnBehalfOfSubID (tag 116) and contain the firm this trader belongs to.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf order is being placed. Used with OnBehalfOfCompID (tag 115).

Can be specified in New Order Single, Order Cancel Request, and Order Cancel/Replace Request messages and can be different from SenderCompID (tag 49). It is returned in DeliverToSubID (tag 129) in execution report messages.

Note that both traders specified in SenderCompID (tag 49) and OnBehalfOfSubID (tag 116) need to be authorized to trade on the account on which the order is being placed.

122 OrigSendingTime UTC Timestamp

C Required for message resent as a result of a Resend Request (2). If data is not available, set to the same value as SendingTime (52).

Message Definitions

Page 25: CQG FIX API Specification

Page 21

Tag Field Name Format Req Comments

128 DeliverToCompID String(32) C Server-to-client messages:

The trading firm that the trader specified in tag 116 (OnBehalfOfSubID) belongs to. Present in Execution Report, Order Cancel Reject, and Current Day Fills Position Report. Required if OnBehalfOfCompID (tag 115) and OnBehalfOfSubID (tag 116) are specified.

Client-to-server messages:

Broker company ID to deliver messages via the CQG gateway. Can be specified in New Order Single, Order Cancel Request, and Order Cancel/Replace Request.

129 DeliverToSubID String(32) N CQG username of the trader who placed the order. Present in Execution Report, Order Cancel Reject, and Current Day Fills Position Report messages.

Standard message trailer

Tag Field Name Format Req Comments

10 CheckSum String Y Three byte, simple checksum. Always last field in message; i.e. serves as the end-of-message delimiter with the trailing <SOH>. Always defined as 3 characters.

CQG FIX API Specification

Page 26: CQG FIX API Specification

Page 22

Session (Administrative) Messages

Logon (A) After establishing your TCP connection with the CQG gateway, a Logon must be the first message that the FIX client sends. This sequence must start with sequence number 1 unless session persistence is enabled for the particular vendor. If session persistence is enabled, the client can send the last sent sequence number in Logon message with ResetSeqNumFlag set to ‘N’. The CQG gateway responds with its own Logon. The client must wait for that Logon before sending additional messages. If logon fails because a trader requires a one-time password (OTP) and that OTP wasn’t provided, FIX Service returns a Logout message with explanatory text.

Tag Field Name Format Req Comments

Standard Header Y MsgType = A

Must have SenderSubID value set.

96 RawData String(64) Y* Plain text password to authenticate the user. This field is not included in Logon response by the CQG gateway.

98 EncryptMethod Int Y Only 0 (None) is expected.

108 HeartBtInt Int Y Heartbeat interval (seconds).

The recommended interval is between 30-60 seconds. If you submit a value of less than 10 seconds, the logon is rejected.

141 ResetSeqNumFlag Boolean N Indicates both sides of a FIX session should reset sequence numbers.

20030 OneTimePassword String(24) N One-time password. Must be specified for users configured to require 2-factor authentication (static password + one-time password). This field is not included in Logon response by the CQG gateway.

Standard Trailer Y

Example: Logon

8=FIX.4.29=11835=A49=fix_client56=CQG_Gateway34=150=FastTradeInc52=20061124-15:47:02.95198=0108=3095=1096=fix_client141=Y10=253

Message Definitions

Page 27: CQG FIX API Specification

Page 23

Logout (5)

The Logout message is the last message sent on the connection. Either the CQG gateway or a client can send the Logout message.

Note: When Logout is sent by CQG in response to unsuccessful logon attempt, its header does not contain the MsgSeqNum field in most of the cases. This way an existing FIX session is kept intact, and its sequence numbers are not affected by other logon attempts.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 5

58 Text String N Free format text string.

Standard Trailer Y

Example: Logout

8=FIX.4.29=9935=549=CQG_Gateway56=fix_client34=2552=20061124-15:59:50.524 58=NormalLogoutInitiatedByCounterparty10=054

Heartbeat (0) The Heartbeat monitors the status of the communication link. It is sent automatically based on the interval set in the Logon message.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 0

112 TestReqID String C Required when the heartbeat is the result of a Test Request message.

Standard Trailer Y

Example: Heartbeat

8=FIX.4.29=7935=149=CQG_Gateway56=fix_client 34=252=20061124-15:50:32.215112=PostLogon_0000110=194

CQG FIX API Specification

Page 28: CQG FIX API Specification

Page 24

Reject (3) The CQG gateway uses this message to respond to a message that could not be processed. Rejections for unsupported tags, invalid message format, or field restrictions are also identified. Where applicable, the reason for the reject is included in tag 58. This session level reject message can be sent in response to any message sent from the FIX client to the CQG gateway.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 3

45 RefSeqNum Int Y MsgSeqNum of rejected message.

58 Text String N Where possible, message to explain the reason for rejection.

371 RefTagID Int N The tag number of the FIX field being referenced, if any.

372 RefMsgType String N The MsgType of the FIX message being referenced.

373 SessionRejectReason Int N Code to identify the reason for a session-level Reject message.

Valid values:

0 = Invalid tag number

1 = Required tag missing

2 = Tag not defined for this message type

3 = Undefined Tag

4 = Tag specified without a value

5 = Value is out of range for this tag

6 = Incorrect data format for value

7 = Decryption problem

8 = Signature problem

9 = CompID problem

10 = SendingTime accuracy problem

11 = Invalid MsgType

99 = Other (to be used for cases like conditional tag problems)

Standard Trailer Y

Example: Reject

8=FIX.4.29=11235=349=CQG_Gateway56=fix_client34=1852=20061124-15:56:56.25945=17372=UAN371=50724373=158=RequiredTagMissing10=002

Message Definitions

Page 29: CQG FIX API Specification

Page 25

Resend Request (2)

In the event that a sequence number gap is detected, the Resend Request message notifies the opposite party to resend messages.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 2

7 BeginSeqNo Int Y Message sequence number of first message in range to be resent.

16 EndSeqNo Int Y Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = 0 (representing infinity).

Standard Trailer Y

Example: Resend Request

8=FIX.4.29=6835=249=CQG_Gateway56=fix_client34=252=20061122-13:41:39.2677=116=010=127

Sequence Reset (4) In the event that either system detects an error in sequence numbers, this message is sent to rectify the situation.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 4

36 NewSeqNo Int Y New sequence number.

123 GapFillFlag Boolean N Indicates that the Sequence Reset message is replacing administrative or application messages that will not be resent. Valid values:

Y = Gap Fill message, MsgSeqNum field valid

N = Sequence Reset, ignore MsgSeqNum

Standard Trailer Y

Example: Sequence Reset

8=FIX.4.29=6835=249=CQG_Gateway56=fix_client34=1252=20061122-13:41:39.26736=1010=127

CQG FIX API Specification

Page 30: CQG FIX API Specification

Page 26

Test Request (1) The Test Request is used to force a heartbeat in order to verify connectivity status and sequence number generation.

Tag Field Name Format Req Comments

Standard Header Y 1

112 TestReqID String Y Identifier included in Test Request message to be returned in resulting Heartbeat.

Standard Trailer Y

Example: Test Request

8=FIX.4.29=7935=149=CQG_Gateway56=fix_client34=252=20061124-16:02:26.054 112=PostLogon_0000110=196

Message Definitions

Page 31: CQG FIX API Specification

Page 27

Application Messages: FIX Client to CQG Gateway The session-level Reject (3) is a possible response to any of these FIX client to CQG Gateway messages.

New Order Single (D) The FIX Client uses this message to send orders to the CQG gateway. Possible response message: Execution Report (8). or Business Reject Message (MsgType = j)

Tag Field Name Format Req Comments

Standard Header Y MsgType = D

1 Account String(32) Y* Account ID (managed by the CQG gateway).

11 ClOrdID String(64) Y Unique identifier of the order as order request originator. Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 spec.

18 ExecInst Multiple

ValueString

N Execution instructions. If this tag is blank, then no instructions exist. Valid values (definitions):

G = All or none (AON)

R = Trailing (Primary peg)

S = Parked

c = Order comment

f = Funari

i = Iceberg

l = Market Limit

q = Quantity Triggered Stop (QTS)

t = Market If Touched

CQG FIX API Specification

Page 32: CQG FIX API Specification

Page 28

Tag Field Name Format Req Comments

21 HandlInst Char N Instructions for order handling on broker trading floor. Valid values:

1 = Automated execution order, private, no broker intervention.

3 = Manual order, best execution.

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings.

It should not appear for FIX vendors that do not have it explicitly configured.

38 OrderQty Qty Y* Quantity of order submitted by client.

The quantity must be an unsigned integer number greater than zero. Orders with zero or negative quantity are rejected.

40 OrdType Char Y Sets the type of order. Valid values:

1 = Market

2 = Limit

3 = Stop

4 = Stop limit

44 Price Price C Limit price. Conditionally required for Limit and Stop Limit orders.

Using Price (44) tag for Market and Stop orders results in Reject (3) message.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings.

It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y Indicates the side of the order. Valid values:

1 = Buy

2 = Sell

Application Messages: FIX Client to CQG Gateway

Page 33: CQG FIX API Specification

Page 29

Tag Field Name Format Req Comments

55 Symbol String(64) Y An identifier for an instrument that can be traded on a CQG system.

CQG has established symbols to represent each issue traded at the various international exchanges. When possible CQG symbols correspond to those used by the individual exchanges. However, exchange symbols may conflict with symbols and data formats used by other exchanges.

When this occurs, alternative CQG symbols are used. Custom symbols can be used when symbol mapping is enabled for FIX vendor and appropriate conversion algorithm is selected. See Syntax for Symbol (tag 55).

58 Text String N Custom user-supplied text.

59 TimeInForce Char N Specifies how long the order remains in effect. If not present, DAY is the default. If the value of this tag is GTD, then ExpireDate (tag 432) is required.

Valid values:

0 = DAY (assumed when absent)

1 = Good Till Cancel (GTC)

3 = Immediate or Cancel (IOC)

4 = Fill or Kill (FOK)

6 = Good Till Date (GTD)

60 TransactTime UTC Timestamp

Y Time this order request was initiated/released by the trader or trading system.

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 34: CQG FIX API Specification

Page 30

Tag Field Name Format Req Comments

77 OpenClose Char C For options. Indicates whether the resulting position after a trade should be an opening position or closing position.

Valid values:

O = Open

C = Close

Use O as a default value for orders submitted on exchanges that do not support this field.

99 StopPx Price C Stop price. Conditionally required for Stop and Stop Limit orders.

Using StopPx (99) tag for Market and Limit orders result in Reject (3) message.

100 ExDestination String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings.

It should not appear for FIX vendors that do not have it explicitly configured.

115 OnBehalfOfCompID String(32) N A firm name of a trader on whose behalf this order request should be sent.

This field is currently ignored by the CQG gateway. Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request should be sent. That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Part of Standard Header.

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured. Indicates type of security.

Application Messages: FIX Client to CQG Gateway

Page 35: CQG FIX API Specification

Page 31

Tag Field Name Format Req Comments

200 MaturityMonthYear String N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = put

1 = call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

204 CustomerOrFirm Int N Specifies whether the order is for a customer or the firm placing the order itself. Used for options when delivering the order to an execution system/exchange.

205 MaturityDay Int N Day of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured. Market used to help identify a security.

210 MaxShow Qty C Conditionally required if ExecInst contains i (Iceberg). Maximum number of shares within an order to be shown to other customers.

CQG FIX API Specification

Page 36: CQG FIX API Specification

Page 32

Tag Field Name Format Req Comments

211 PegDifference Price C Conditionally required if ExecInst includes R (Trailing).

Maximum offset between market and stop prices (and limit price for stop limit orders). Always expressed as a positive number with units the same as StopPx (99) and Price (44).

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

432 ExpireDate LocalMktDate C Conditionally required if TimeInForce = GTD. The CQG gateway does not support ExpireTime (tag 126). Only expiration date can be set. Orders expire at the end of the trading session.

528 OrderCapacity Char N Designates the capacity of the firm placing the order.

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

1028 ManualOrderIndicator Boolean N Indicates whether the order was sent manually (as opposed to being generated by automated trading logic).

Default =Y.

20001 Aggressive Boolean N Fixed Income only. Flag indicates that fill should be made as aggressive. If the field is absent, the value Y is the default.

20004 TriggerQty Qty C Trigger quantity. Conditionally required for QTS orders, i.e. required when ExecInst contains q.

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID for algo-orders.

Standard Trailer Y

Application Messages: FIX Client to CQG Gateway

Page 37: CQG FIX API Specification

Page 33

Example: New Order Single

8=FIX.4.29=14135=D49=fix_client56=CQG_Gateway34=452=20061124-15:51:12.0931=28611=MS2455=F.US.TYAZ0654=260=20061124-15:50:5138=540=444=1.2299=1.2410=045

CQG FIX API Specification

Page 38: CQG FIX API Specification

Page 34

New Order Multileg (AB) The FIX Client uses this message to send orders for securities that are made up of multiple securities, considered to be legs by the CQG gateway. Possible response message: Execution Report (8). or Business Reject Message (MsgType = j)

Tag Field Name Format Req Comments

Standard Header Y MsgType = AB

1 Account String(32) Y* Account ID (managed by the CQG gateway).

11 ClOrdID String(64) Y Unique identifier of the order as order request originator. Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 spec.

18 ExecInst Multiple

ValueString

N Execution instructions. If this tag is blank, then no instructions exist. Valid values (definitions):

G = All or none (AON)

i = Iceberg

q = Quantity Triggered Stop (QTS)

S = Parked

f = Funari

t = Market If Touched

l = Market Limit

R = Trailing (Primary peg)

21 HandlInst Char N Instructions for order handling on broker trading floor. Valid values:

1 = Automated execution order, private, no broker intervention.

3 = Manual order, best execution.

Application Messages: FIX Client to CQG Gateway

Page 39: CQG FIX API Specification

Page 35

Tag Field Name Format Req Comments

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

38 OrderQty Qty Y* Quantity of order submitted by client. The quantity must be an unsigned integer number greater than zero. Orders with zero or negative quantity are rejected.

40 OrdType Char Y Sets the type of order.

Valid values:

1 = Market

2 = Limit

3 = Stop

4 = Stop limit

44 Price Price C Limit price. Conditionally required for Limit and Stop Limit orders.

Using Price (44) tag for Market and Stop orders results in Reject (3) message.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y Indicates the side of the order. Valid values:

1 = Buy

2 = Sell

CQG FIX API Specification

Page 40: CQG FIX API Specification

Page 36

Tag Field Name Format Req Comments

55 Symbol String(64) N An identifier for an instrument that can be traded on a CQG system.

CQG has established symbols to represent each issue traded at the various international exchanges. When possible CQG symbols correspond to those used by the individual exchanges. However, exchange symbols may conflict with symbols and data formats used by other exchanges.

When this occurs, alternative CQG symbols are used. Custom symbols can be used when symbol mapping is enabled for FIX vendor and appropriate conversion algorithm is selected. See Syntax for Symbol (tag 55).

59 TimeInForce Char N Specifies how long the order remains in effect. If not present, DAY is the default. If the value of this tag is GTD, then ExpireDate (tag 432) is required.

Valid values:

0 = DAY (assumed when absent)

1 = Good Till Cancel (GTC)

3 = Immediate or Cancel (IOC)

4 = Fill or Kill (FOK)

6 = Good Till Date (GTD)

60 TransactTime UTC Timestamp Y Time this order request was initiated/released by the trader or trading system.

99 StopPx Price C Stop price. Conditionally required for Stop and Stop Limit orders. Using StopPx (99) tag for Market and Limit orders result in Reject (3) message.

115 OnBehalfOfCompID String(32) N A firm name of a trader on whose behalf this order request should be sent. This field is currently ignored by the CQG gateway. Part of Standard Header.

Application Messages: FIX Client to CQG Gateway

Page 41: CQG FIX API Specification

Page 37

Tag Field Name Format Req Comments

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request should be sent. That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Part of Standard Header.

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured. Indicates type of security.

200 MaturityMonthYear String N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

205 MaturityDay Int N Day of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured. Market used to help identify a security.

210 MaxShow Qty C Conditionally required if ExecInst contains i (Iceberg). Maximum number of shares within an order to be shown to other customers.

CQG FIX API Specification

Page 42: CQG FIX API Specification

Page 38

Tag Field Name Format Req Comments

211 PegDifference Price C Conditionally required if ExecInst includes R (Trailing).

Maximum offset between market and stop prices (and limit price for stop limit orders). Always expressed as a positive number with units the same as StopPx (99) and Price (44).

432 ExpireDate LocalMktDate C Conditionally required if TimeInForce = GTD. The CQG gateway does not support ExpireTime (tag 126). Only expiration date can be set. Orders expire at the end of the trading session.

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

1028 ManualOrderIndicator Boolean N Indicates whether the order was sent manually (as opposed to being generated by automated trading logic).

Default =Y.

20004 TriggerQty Qty C Trigger quantity. Conditionally required for QTS orders, i.e. required when ExecInst contains q.

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID for algo-orders.

Start of component block, expanded in line < LegsGrp >

50555 NoLegs NumInGroup C Number of legs repeating group instances.

50600 LegSymbol String(64) Y Multi-leg instrument’s individual security symbol.

50602 LegSecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: FIX Client to CQG Gateway

Page 43: CQG FIX API Specification

Page 39

Tag Field Name Format Req Comments

50603 LegSecurityIDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50608 LegCFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50609 LegSecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50610 LegMaturityMonthYear LocalMktDate N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50611 LegMaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 44: CQG FIX API Specification

Page 40

Tag Field Name Format Req Comments

50616 LegSecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50623 LegRatioQty Qty Y The ratio of quantity for this individual leg relative to the entire multileg security.

50624 LegSide Char Y The side of this individual leg (multi-leg security). Valid values:

1 = Buy

2 = Sell

Required if NoLegs (50555) > 0.

50654 LegRefID String Y Unique indicator for a specific leg (Uniqueness is guaranteed within a particular execution report).

50588 LegFutSettDate LocalMktDate N Specific date of trade settlement (SettlementDate) in YYYYMMDD format.

End of component block, expanded in line < LegsGrp >

Standard Trailer Y

Example: New Order Multileg

8=FIX.4.29=23235=AB49=user56=CQG_Gateway34=252=20121123-11:50:54.26811=Order246654=2 55=F.US.EDAS3Z1260=20121123-11:50:3438=340=11=950555=250600=F.US.EDAZ12 50654=123_12350624=250623=150600=F.US.EDAH1350654=45650624=150623=110=201

Application Messages: FIX Client to CQG Gateway

Page 45: CQG FIX API Specification

Page 41

New Order List (E) The FIX Client uses this message to send compound orders to the CQG gateway. Possible response message: Execution Reports (8). or Business Reject Message (MsgType = j)

New Order List exists in FIX 4.2, but ContingencyType (tag 1385) first appears in FIX 5.0 SP1 to support OCO/OPO orders.

Although the message structure is generic, CQG gateway enforces certain limitations on compound orders:

• For OPO orders with proportional triggering enabled, only one level of nesting is allowed, e.g. OPO(A,OCO(B,C)) is allowed, but OPO(A,OCO(B,OCO(C,D))) is not allowed.

• For OPO orders with proportional triggering enabled, the first leg must be a single order (not a nested compound order).

• For OCO orders with proportional triggering enabled, all legs must be single orders (not nested compound orders).

Tag Field Name Format Req Comments

Standard Header Y MsgType = E

66 ListID String(64) Y Client’s identifier of this order list (compound order). Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 specification.

394 BidType Int Y Code to identify the type of Bid Request.

Only valid value:

3 = No bidding process.

CQG FIX API Specification

Page 46: CQG FIX API Specification

Page 42

Tag Field Name Format Req Comments

51385 ContingencyType Int Y* Defines the relationship between compound orders in this list. Valid values:

1 = OCO with proportional triggering disabled.

2 = OPO with proportional triggering disabled. Called One Triggers the Other (OTO) in FIX 5.0 SP1.

4 = OCO with proportional triggering enabled. Called One Updates the Other (OUO) – Proportional Quantity Reduction in FIX 5.0 SP1.

5001 = OPO with proportional triggering enabled. CQG-specific value not supported in FIX 5.0 SP1.

115 OnBehalfOfCompID String(32) N A firm name of a trader on whose behalf this order request should be sent.

This field is currently ignored by the CQG gateway.

Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request should be sent.

That trader needs to be authorized for trading on the same account specified in tag 1.

Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Part of Standard Header.

68 TotNoOrders Int Y Sum of NoOrders (73) across all messages with this ListID.

Because CQG FIX does not support fragmentation, the value always matches NoOrders (73) in this message.

Application Messages: FIX Client to CQG Gateway

Page 47: CQG FIX API Specification

Page 43

Tag Field Name Format Req Comments

20032 TotNoOrderLists Int Y* Sum of NoOrderLists (20033) across all messages with this ListID.

Because CQG FIX does not support fragmentation, the value always matches NoOrderLists (20033) in this message.

20124 ClientRegulatoryAlgorithmID Int N 'Regulatory Algorithm ID' for algo-orders.

Start of component block, expanded in line <ListOrdGrp>

73 NoOrders Int Y Number of orders to follow.

1 Account String(32) Y* Account ID (provided by the CQG gateway).

11 ClOrdID String(64) Y Unique identifier of the order as order request originator.

Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 specification.

67 ListSeqNo Int Y This order’s ordinal position (0-based) within the compound order.

18 ExecInst Multiple Value String

N Execution instructions. If this tag is blank, then no instructions exist.

Valid values:

i = Iceberg

q = Quantity Triggered Stop (QTS)

21 HandlInst Char N Instructions for order handling on Broker trading floor. The only valid value:

1 = Automated execution order, private, no Broker intervention.

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 48: CQG FIX API Specification

Page 44

Tag Field Name Format Req Comments

38 OrderQty Qty Y* Quantity of order submitted by the client.

The quantity must be an unsigned integer number greater than zero. Orders with a zero or negative quantity are rejected.

40 OrdType Char Y Sets the type of order. Valid values:

1 = Market

2 = Limit

3 = Stop

4 = Stop limit

44 Price Price C Limit price. Conditionally required for limit and stop limit orders.

Using Price (44) tag for market and stop orders results in Reject (3) message.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y Indicates the side of the order. Valid values:

1 = Buy

2 = Sell

55 Symbol String(64) Y An identifier for an instrument that can be traded on a CQG system. (Same rules as corresponding tag in New Order Single message)

Application Messages: FIX Client to CQG Gateway

Page 49: CQG FIX API Specification

Page 45

Tag Field Name Format Req Comments

59 TimeInForce Char N Specifies how long the order remains in effect. If not present, DAY is the default. If the value of this tag is GTD, then ExpireDate (tag 432) is required. Valid values:

0 = DAY (assumed when absent)

1 = Good Till Cancel (GTC)

3 = Immediate or Cancel (IOC)

4 = Fill or Kill (FOK)

6 = Good Till Date (GTD)

60 TransactTime UTC Timestamp Y Time this order request was initiated or released by the trader or trading system.

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

77 OpenClose Char C For options. Indicates whether the resulting position after a trade should be an opening position or closing position. Valid values:

O = Open

C = Close

Use O as a default value for orders submitted on exchanges that do not support this field.

99 StopPx Price C Stop price. Conditionally required for stop and stop limit orders. Using StopPx (99) tag for market and limit orders result in Reject (3) message.

100 ExDestination String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 50: CQG FIX API Specification

Page 46

Tag Field Name Format Req Comments

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

200 MaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

210 MaxShow Qty C Conditionally required if ExecInst contains i (Iceberg).

Maximum number of shares within an order to be shown to other customers.

Application Messages: FIX Client to CQG Gateway

Page 51: CQG FIX API Specification

Page 47

Tag Field Name Format Req Comments

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

432 ExpireDate Local Mkt Date C Conditionally required if TimeInForce = GTD. The CQG gateway does not support ExpireTime (tag 126). Only the expiration date can be set. Orders expire at the end of the trading session.

541 MaturityDate Local Mkt Date N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

1028 ManualOrderIndicator Boolean N Indicates whether the order was sent manually (as opposed to being generated by automated trading logic).

Default = Y.

20001 Aggressive Boolean N Fixed Income only. Flag indicates that fill should be made as aggressive. If the field is absent, the value Y is the default.

20004 TriggerQty Qty C Trigger quantity. Conditionally required for QTS orders, i.e. required when ExecInst contains q.

End of component block, expanded in line <ListOrdGrp>

Start of component block, expanded in line<ListOrdListGrp>

20033 NoOrderLists Int Y Number of order lists to follow.

20073 NestedListSeqNo Int Y This order list’s ordinal position (0-based) within the compound order.

CQG FIX API Specification

Page 52: CQG FIX API Specification

Page 48

Tag Field Name Format Req Comments

20074 NestedListID String(64) Y Client’s identifier of this order list (compound order). Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 specification.

20075 NestedBidType Int Y Code to identify the type of Bid Request. The only valid value: 3 = No bidding process.

20076 NestedContingencyType Int Y Defines the relationship between compound orders in this list. Valid values:

1 = OCO with proportional triggering disabled.

2 = OPO with proportional triggering disabled. This is called One Triggers the Other (OTO) in FIX 5.0 SP1.

4 = OCO with proportional triggering enabled. This is called One Updates the Other (OUO) – Proportional Quantity Reduction in FIX 5.0 SP1.

5001 = OPO with proportional triggering enabled. This is a CQG-specific value, not supported in FIX 5.0 SP1.

20077 NestedTotNoOrders Int Y Sum of NestedNoOrders (20078) across all messages with this ListID.

Because CQG FIX does not support fragmentation, the value always matches NestedNoOrders (20078) in this message.

Start of component block, expanded in line <NestedListOrdGrp>

20078 NestedNoOrders Int Y Number of orders to follow.

20079 NestedAccount String(32) Y Account ID (provided by the CQG gateway).

20080 NestedClOrdID String(64) Y Unique identifier of the order as order request originator. Its uniqueness must be guaranteed within a single trading day for day orders and across days for multi-day orders as defined by FIX 4.2 specification.

Application Messages: FIX Client to CQG Gateway

Page 53: CQG FIX API Specification

Page 49

Tag Field Name Format Req Comments

20081 NestedOrderListSeqNo Int Y This order’s ordinal position (0-based) within the nested compound order.

20082 NestedExecInst Multiple Value String

N Execution instructions. If this tag is blank, then no instructions exist.

Valid values:

i = Iceberg

q = Quantity Triggered Stop (QTS)

20083 NestedHandlInst Char N Instructions for order handling on broker trading floor. The only valid value:

1 = Automated execution order, private, no Broker intervention.

20084 NestedIDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20085 NestedOrderQty Qty Y Quantity of order submitted by the client.

The quantity must be an unsigned integer number greater than zero. Orders with zero or negative quantity are rejected.

20086 NestedOrdType Char Y Sets the type of order.

Valid values:

1 = Market

2 = Limit

3 = Stop

4 = Stop limit

20087 NestedPrice Price C Limit price. Conditionally required for Limit and Stop Limit orders. Using NestedPrice (20087) tag for Market and Stop orders result in Reject (3) message.

CQG FIX API Specification

Page 54: CQG FIX API Specification

Page 50

Tag Field Name Format Req Comments

20088 NestedSecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20089 NestedSide Char Y Indicates the side of the order.

Valid values:

1 = Buy

2 = Sell

20090 NestedSymbol String(64) Y An identifier for an instrument that can be traded on a CQG system.

(Same rules as corresponding tag in New Order Single message)

20091 NestedTimeInForce Char N Specifies how long the order remains in effect. If not present, DAY is the default. If the value of this tag is GTD, then ExpireDate (tag 432) is required.

Valid values:

0 = DAY (assumed when absent)

1 = Good Till Cancel (GTC)

3 = Immediate or Cancel (IOC)

4 = Fill or Kill (FOK)

6 = Good Till Date (GTD)

20092 NestedTransactTime UTC Timestamp Y Time this order request was initiated or released by the trader or trading system.

20093 NestedSymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: FIX Client to CQG Gateway

Page 55: CQG FIX API Specification

Page 51

Tag Field Name Format Req Comments

20094 NestedOpenClose Char C For options. Indicates whether the resulting position after a trade should be an opening position or closing position.

Valid values:

O = Open

C = Close

Use O as a default value for orders submitted on exchanges that do not support this field.

20095 NestedStopPx Price C Stop price. Conditionally required for stop and stop limit orders. Using StopPx (20095) tag for market and limit orders result in Reject (3) message.

20096 NestedExDestination String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20097 NestedMaxShow Qty C Conditionally required if ExecInst contains i (Iceberg). Maximum number of shares within an order to be shown to other customers.

20098 NestedExpireDate Local Mkt Date C Conditionally required if TimeInForce = GTD.

The CQG gateway does not support ExpireTime (tag 126). Only expiration date can be set. Orders expire at the end of the trading session.

20099 NestedMaturityDate Local Mkt Date N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20100 NestedManualOrderIndicator Boolean N Indicates whether the order was sent manually (as opposed to being generated by automated trading logic). Default =Y.

CQG FIX API Specification

Page 56: CQG FIX API Specification

Page 52

Tag Field Name Format Req Comments

20101 NestedAggressive Boolean N Fixed Income only.

Flag indicates that fill should be made as aggressive. If the field is absent, the value Y is the default.

20102 NestedTriggerQty Qty C Trigger quantity.

Conditionally required for QTS orders, i.e. required when ExecInst contains q.

20104 NestedMaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20105 NestedStrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20106 NestedPutOrCall Int N Indicates whether an option is for a put or call.

Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20107 NestedCouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: FIX Client to CQG Gateway

Page 57: CQG FIX API Specification

Page 53

Tag Field Name Format Req Comments

20108 NestedSecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20110 NestedSecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

End of component block, expanded in line <NestedListOrdGrp>

End of component block, expanded in line <ListOrdListGrp>

Standard Trailer Y

Example: New Order List

8=FIX.4.29=55235=E34=249=CQG_Gateway52=20110726-12:06:45.26756=CQG_Gateway 66=20110726120645267_34368=173=11=39111=20110726120645267_13367=038=340=244=1290.25 54=155=F.US.EPZ1160=20110726-12:06:45.267394=320032=120033=120073=1 20074=20110726120645267_85820075=320076=120077=220078=220079=39120080=20110726120645267_44120081=020085=320086=220087=1287.7520089=120090=F.US.EPZ1120092=20110726-12:06:45.267 20079=39120080=20110726120645267_13220081=120085=320086=220087=1290.7520089=1 20090=F.US.EPZ1120092=20110726-12:06:45.26751385=210=088

CQG FIX API Specification

Page 58: CQG FIX API Specification

Page 54

Order Cancel Request (F) The FIX Client uses this message to cancel orders that it has sent to the CQG gateway. Possible response messages: Execution Report (8), Order Cancel Reject (9), or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = F

1 Account String(32) Y* Account ID (managed by the CQG gateway).

11 ClOrdID String(64) Y New and unique ID for this request.

37 OrderID String(32) Y* Unique identifier for order as assigned by the CQG gateway.

41 OrigClOrdID String(64) Y The last accepted ClOrdID in an order chain.

54 Side Char N Currently ignored by the CQG gateway.

55 Symbol String(64) N Currently ignored by the CQG gateway.

60 TransactTime UTC Timestamp

Y Time this order request was initiated/released by the trader or trading system.

115 OnBehalfOfCompID String(32) N The firm name of trader on whose behalf this order request is sent.

Currently ignored by the CQG gateway. Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request is sent. That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Note that this field is a part of Standard Header.

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID for algo-orders.

Application Messages: FIX Client to CQG Gateway

Page 59: CQG FIX API Specification

Page 55

Tag Field Name Format Req Comments

Standard Trailer Y

Example: Order Cancel Request

8=FIX.4.29=11135=F49=fix_client56=CQG_Gateway34=452=20061124-16:38:47.09941=S1437=110967411=S151=28660=20061124-16:38:0510=047

CQG FIX API Specification

Page 60: CQG FIX API Specification

Page 56

Order Cancel/Replace Request (G) The FIX Client uses this message to cancel/replace orders that it has sent to the CQG gateway. Possible response messages: Execution Report (8), Order Cancel Reject (9), or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = G

1 Account String(32) Y* Account ID (managed by the CQG gateway).

11 ClOrdID String(64) Y New and unique ID for this request.

21 HandlInst Char N Instructions for order handling on Broker trading floor. The only valid value:

1 = Automated execution order, private, no Broker intervention.

37 OrderID String(32) Y* Unique identifier for order as assigned by the CQG gateway.

38 OrderQty Qty N This value represents the new total order quantity.

This new order quantity is compared to the original order quantity to determine whether to increment or decrement the order.

The quantity must be an unsigned integer number greater than zero. Orders with zero or negative quantity are rejected.

41 OrigClOrdID String(64) Y The last accepted ClOrdID in an order chain that this message modifies.

44 Price Price C New limit price for Limit and Stop Limit orders.

55 Symbol String(64) N As per the New Order Single.

59 TimeInForce Char N Specifies how long the order remains in effect. If the value of this tag is 6 (GTD), then ExpireDate (tag 432) is required.

60 TransactTime UTC Timestamp

Y Time this order request was initiated/released by the trader or trading system.

Application Messages: FIX Client to CQG Gateway

Page 61: CQG FIX API Specification

Page 57

Tag Field Name Format Req Comments

99 StopPx Price C New Stop price for Stop and Stop Limit orders.

115 OnBehalfOfCompID String(32) N The firm name of trader on whose behalf this order request is sent.

Currently ignored by the CQG gateway. Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request is sent.

That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Note this field is a part of Standard Header.

210 MaxShow Qty C Conditionally required if original order contains “i” (Iceberg) in the ExecInst field. New maximum number of shares within an order to be shown to other customers.

432 ExpireDate LocalMktDate C New date of order expiration. Required if TimeInForce (tag 59) = 6 (GTD).

20124 ClientRegulatoryAlgorithmID Int N 'Regulatory Algorithm ID' for algo-orders.

Standard Trailer Y

Example: Order Cancel/Replace Request

8=FIX.4.29=12135=G49=fix_client56=CQG_Gateway34=1452=20061124-15:55:45.46837=110904041=SSS1711=SSS181=28660=20061124-15:55:3638=310=129

CQG FIX API Specification

Page 62: CQG FIX API Specification

Page 58

Parked Order Activation Request (G) The FIX Client uses this message to activate and send exchange orders that it has previously sent to the CQG gateway as parked. Possible response messages: Execution Report (8) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = G

1 Account String(32) Y* Account ID (managed by the CQG gateway).

11 ClOrdID String(64) Y New and unique ID for this request.

18 ExecInst Multiple ValueString

Y Execution instructions. Valid value:

g = Un-park order

21 HandlInst Char N Instructions for order handling on Broker trading floor. Only valid value:

1 = Automated execution order, private, no Broker intervention.

37 OrderID String(32) Y* Unique identifier for order as assigned by the CQG gateway.

41 OrigClOrdID String(64) Y The last accepted ClOrdID in an order chain that this message modifies.

60 TransactTime UTC Timestamp

Y Time this order request was initiated/released by the trader or trading system.

115 OnBehalfOfCompID String(32) N The firm name of trader on whose behalf this order request is sent. Currently ignored by the CQG gateway. Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG username of the trader on whose behalf this order request is sent. That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Part of Standard Header.

Application Messages: FIX Client to CQG Gateway

Page 63: CQG FIX API Specification

Page 59

Tag Field Name Format Req Comments

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID for algo-orders.

Standard Trailer Y

Example: Parked Order Activation Request

8=FIX.4.29=12635=G49=fix_client56=CQG_Gateway34=1452=20101124-15:55:45.46837=110904041=SSS1711=SSS181=28618=g60=20101124-15:55:3610=184

CQG FIX API Specification

Page 64: CQG FIX API Specification

Page 60

Update Order Attributes Request (G) The FIX Client uses this message to set or change order comment or order check mark. Possible response messages: Execution Report (8) or Business Message Reject (j).

Note: This request does not change the order on the exchange. It is used for updating two attributes of the order: order check mark and order comment..

Tag Field Name Format Req Comments

Standard Header Y MsgType = G

1 Account String(32) Y* Account ID (managed by the CQG gateway).

18 ExecInst Multiple ValueString

Y Execution instructions. Valid values:

c = update order comment

m = update order check mark

37 OrderID String(32) Y* Unique identifier for order as assigned by the CQG gateway.

58 Text String N Custom user-supplied text for this order. This field is required if ExecInst = c.

115 OnBehalfOfCompID String(32) N The firm name of trader on whose behalf this order request is sent. Currently ignored by the CQG gateway. Part of Standard Header.

116 OnBehalfOfSubID String(32) N CQG user name of the trader on whose behalf this order request is sent. That trader needs to be authorized for trading on the same account specified in tag 1. Part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 116 (DeliverToSubID) belongs to. Part of Standard Header.

20115 OrderCheckMark Boolean N Used to set or change order check mark. (This field is required if ExecInst = m).

Note: This is not the same order check mark as in CQG IC client.

Standard Trailer Y

Application Messages: FIX Client to CQG Gateway

Page 65: CQG FIX API Specification

Page 61

Example: Update Order Attributes Request

8=FIX.4.29=14335=G49=fix_client56=CQG_Gateway34=2352=20130111-10:04:04.09137=7484033911=4563118=m20115=N10=005

CQG FIX API Specification

Page 66: CQG FIX API Specification

Page 62

Security Definition Request (c) The FIX client uses this message to request a user-defined strategy (UDS) to trade.

Currently, only CQG symbology is supported to identify leg contracts, although leg definition includes tags for custom FIX API vendor contract symbol mappings for future use. When custom contract symbol mappings are supported, several additional tags will be present along with each UnderlyingSymbol (311) tag: UnderlyingSymbolSfx (312), UnderlyingSecurityID (309), UnderlyingIDSource (305), UnderlyingSecurityType (310), UnderlyingMaturityMonthYear (313), UnderlyingMaturityDay (314), UnderlyingMaturityDate (50542), UnderlyingSecurityExchange (308), UnderlyingExDestination (20051).

Client sends this message to:

• request specifications for an existing UDS (leg contracts, sides, quantities), future, options, or native strategy (SecurityRequestType=0).

• request definition of a UDS described by specifications (leg contracts, sides, quantities) at CQG gateway which, in turn, requests definition of that UDS at the appropriate exchange (SecurityRequestType=1). FIX service and CQG gateway only support option UDS on certain exchanges.

Possible response message: Security Definition (d).

Tag Field Name Format Req Comments

Standard Header Y MsgType = c

320 SecurityReqID String(64) Y Unique ID for this request as assigned by the FIX client.

321 SecurityRequestType Int Y Type of security definition request. Valid values:

0 = Request security identity and specifications. Requestor provides security identification (symbol) and wants specifications (e.g. leg contracts, sides ratios) in response.

1 = Request security identity for the specifications provided (name of the security is not provided). Requestor provides security specifications (e.g. leg contracts, sides ratios) and wants identification (symbol) in response.

55 Symbol String(64) C Identifier of an existing UDS. Required if SecurityRequestType=0.

20049 UserStrategyType String(64) C Indicates strategy type the user is intending to define. Required when SecurityRequestType (321) = 1. List of possible values.

Application Messages: FIX Client to CQG Gateway

Page 67: CQG FIX API Specification

Page 63

Tag Field Name Format Req Comments

Start of component block, expanded in line < UnderlyingSecurityGrp >

146 NoRelatedSym Int C Number of legs that make up the Security (UDS). UDS are always defined from the buy perspective, so leg qty/sides below correspond to buying the strategy.

Required if SecurityRequestType=1.

20050 LegNumber Int C Leg number within the strategy (1-based).

Must be the first field in the repeating group.

Required if NoRelatedSym > 0.

311 UnderlyingSymbol String(64) C Contract of the leg.

Corresponds to Symbol (55); see description of that tag in New Order Single (D).

Required if NoRelatedSym > 0.

312 UnderlyingSymbolSfx String N Corresponds to SymbolSfx (65); see description of that tag in New Order Single (D).

309 UnderlyingSecurityID String N Corresponds to SecurityID (48); see description of that tag in New Order Single (D).

305 UnderlyingIDSource String N Corresponds to IDSource (22); see description of that tag in New Order Single (D).

310 UnderlyingSecurityType String N Corresponds to SecurityType (167); see description of that tag in New Order Single (D).

313 UnderlyingMaturityMonthYear String N Corresponds to MaturityMonthYear (200); see description of that tag in New Order Single (D).

314 UnderlyingMaturityDay Int N Corresponds to MaturityDay (205); see description of that tag in New Order Single (D).

CQG FIX API Specification

Page 68: CQG FIX API Specification

Page 64

Tag Field Name Format Req Comments

315 UnderlyingPutOrCall Int N Corresponds to PutOrCall (201); see description of that tag in New Order Single (D).

316 UnderlyingStrikePrice Price N Corresponds to StrikePrice (202); see description of that tag in New Order Single (D).

50542 UnderlyingMaturityDate LocalMktDate N Corresponds to MaturityDate (541); see description of that tag in New Order Single (D).

308 UnderlyingSecurityExchange String N Corresponds to SecurityExchange (207); see description of that tag in New Order Single (D).

435 UnderlyingCouponRate Price N Corresponds to CouponRate (223); see description of that tag in New Order Single (D).

20051 UnderlyingExDestination String N Corresponds to ExDestination (100); see description of that tag in New Order Single (D).

319 RatioQty Qty C This leg’s quantity ratio. Required if NoRelatedSym > 0.

54 Side Char C This leg’s side. Valid values:

1 = Buy

2 = Sell

Required if NoRelatedSym > 0.

End of component block, expanded in line < UnderlyingSecurityGrp >

Standard Trailer Y

Example: Security Definition Request

8=FIX.4.29=19035=c49=CQG_Gateway56=CQG_Gateway34=3052=20110810-12:57:25.863320=Request113321=1146=220050=1311=C.US.EW.V11.12450319=154=120050=2311=P.US.EW.V11.12450319=154=220049=straddlelong10=053

Application Messages: FIX Client to CQG Gateway

Page 69: CQG FIX API Specification

Page 65

Order Mass Status Request (UAF)

The FIX Client uses this message to request all current day orders from the CQG gateway. The CQG gateway responds with Execution Reports (8) for all day and GTC/GTD orders that are working or were filled or cancelled today. It additionally responds with List Status Request (N) for any included orders that are members of a list (compound order).

Execution reports in response to an Order Mass Status request contain Tag 20 (ExecTransType) equal to 3 (Status). List Status Request reports in response to an Order Mass Status request contain Tag 429 (ListStatusType) equal to 2 (Response). Possible response messages: Order Mass Status Request Ack (UBR) and Execution Report (8) and List Status Request (N), or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAF

1 Account String(32) N Account ID (managed by the CQG gateway). Used to filter positions by account. If no account provided, then Execution Reports are created for all accounts client is authorized for.

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char N Optional qualifier used to filter the side of the market for which orders will be returned. Valid values:

1 = Buy

2 = Sell

55 Symbol String(64) N Optional qualifier used to filter the trading instrument of the CQG system for which orders will be returned.

CQG FIX API Specification

Page 70: CQG FIX API Specification

Page 66

Tag Field Name Format Req Comments

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

200 MaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API Vendor contract symbol mappings. It should not appear for FIX vendors which do not have it explicitly configured.

Application Messages: FIX Client to CQG Gateway

Page 71: CQG FIX API Specification

Page 67

Tag Field Name Format Req Comments

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API Vendor contract symbol mappings. It should not appear for FIX vendors which do not have it explicitly configured.

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API Vendor contract symbol mappings. It should not appear for FIX vendors which do not have it explicitly configured.

50584 MassStatusReqID String(64) Y Unique ID for this request assigned by the FIX Client.

Standard Trailer Y

Example: Order Mass Status Request

8=FIX.4.29=7835=UAF49= fix_client56=CQG_Gateway34=1052=20061122-13:45:23.9521=28650584=MS110=000

CQG FIX API Specification

Page 72: CQG FIX API Specification

Page 68

Request for Position (UAN) The FIX Client uses this message to request positions from the CQG gateway. Possible response messages: Request for Positions Ack (UAO), Position Report (UAP), or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAN

1 Account String(32) N Account ID (managed by the CQG gateway). Used to request positions of account. If no account provided, then Position Reports are created for all accounts client is authorized for.

263 SubscriptionRequestType Char N Used to indicate the type of position capture report expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe cancels any future update messages from the CQG gateway. If the field is absent, the value 0 is the default. CQG gateway sends updates when position information was changed by FCM or FCM statements were changed (usually once a day). CQG gateway supports a subscription to Positions only. Subscription attempts for Trades is rejected.

Valid values:

0 = Snapshot

1 = Snapshot + Subscribe to Updates

2 = Snapshot + Unsubscribe from Updates

50710 PosReqID String(64) Y Unique ID for this request assigned by the FIX Client.

50724 PosReqType Int Y Identifier used to determine type of Position Reports to be sent. Valid values:

0 = Position (FCM-confirmed)

1 = Trade (current day fills)

Standard Trailer Y

Application Messages: FIX Client to CQG Gateway

Page 73: CQG FIX API Specification

Page 69

Example: Request for Position

8=FIX.4.29=7835=UAN49=fix_client56=CQG_Gateway34=1752=20061124-15:56:55.9331=28650710=PR150724=010=018

CQG FIX API Specification

Page 74: CQG FIX API Specification

Page 70

Account Data Request (UAR) The FIX Client uses this message to request accounts information from the CQG gateway. Possible response messages: Account Data Report (UAD) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAR

1 Account String(32) N Account ID (managed by the CQG gateway). Used to filter accounts. If no account provided, then specified Account Data Reports are created for all accounts client is authorized for.

263 SubscriptionRequestType Char N Used to indicate what type of account capture report is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe cancels any future update messages from the CQG gateway. If the field is absent, the value 0 is the default. The CQG gateway sends updates when account information was changed by the FCM or FCM statements were changed (usually once a day). Valid values:

0 = Snapshot

1 = Snapshot + Subscribe for Updates

2 = Snapshot + Unsubscribe from Updates

20003 AcctReqID String(64) Y Unique ID for this request assigned by the FIX Client.

20031 IncludeBalanceGrp Boolean N Set to Y if Account Data Reports should contain individual balance records (BalanceGrp). Set to N (or omit) otherwise.

Standard Trailer Y

Example: Account Data Request 8=FIX.4.29=7735=UAR49=fix_client56=CQG_Gateway34=552=20061123-11:26:32.075263=020003=AR120031=Y10=181

Application Messages: FIX Client to CQG Gateway

Page 75: CQG FIX API Specification

Page 71

Collateral Inquiry (UBB)

The FIX Client uses this message to request current collateral (margin) requirements for the account. Possible response messages: Collateral Report (UBA) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UBB

50909 CollInquiryID String(64) Y Unique identifier for this inquiry.

1 Account String(32) N Account ID (managed by the CQG gateway).

If no account is provided, then specified Collateral Reports are created for all accounts the client is authorized for.

Standard Trailer Y

IMPORTANT NOTE: This message type is disabled by default for all vendors unless this functionality is requested.

Example: Collateral Inquiry

8=FIX.4.29=8735=UBB49= CQG_Gateway56=CQG_Gateway34=252=20110908-10:45:44.7671=16798038 50909=CI11110=102

CQG FIX API Specification

Page 76: CQG FIX API Specification

Page 72

User Request (UBE) This message is based on User Request (BE) which first appears in FIX 4.4. Although it supports several request types, we are only using the password change functionality.

Possible response messages: User Response (UBF) or Reject – Session Level (3).

Note: we are not including Username (tag 553, required in FIX 4.4) because we only allow password changes for the currently logged-on user (username is already contained in standard header).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UBE

50923 UserRequestID String(64) Y Unique ID for this request as assigned by the FIX client.

50924 UserRequestType Int Y Indicates the action required. The only valid value:

3 = Change Password for User

50554 Password String(64) Y Current password.

50925 NewPassword String(64) Y New Password.

Standard Trailer

Example: User Request

8=FIX.4.29=12035=UBE49=CQG_Gateway56=CQG_Gateway34=452=20110810-10:01:30.056 50923 = Request11350924=350554=current_password50925=new_password10=228

Application Messages: FIX Client to CQG Gateway

Page 77: CQG FIX API Specification

Page 73

Account Risk Parameters Request (URR)

The FIX Client uses this message to request accounts risk parameters from the CQG gateway. Possible response messages: Account Risk Parameters Report (URP) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = URR

1 Account String(32) N Account ID (managed by the CQG gateway). Used to filter accounts. If no account provided, then specified Account Risk Parameters Reports are created for all accounts client is authorized for.

263 SubscriptionRequestType Char N Used to indicate what type of report is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe cancels any future update messages from the CQG gateway. If the field is absent, the value 0 is the default. The CQG gateway sends updates when risk parameters were changed by the FCM or FCM statements were changed. Valid values:

0 = Snapshot

1 = Snapshot + Subscribe for Updates

2 = Snapshot + Unsubscribe from Updates

20003 AcctReqID String(64) Y Unique ID for this request assigned by the FIX Client.

Standard Trailer Y

Example: Account Risk Parameters Request

8=FIX.4.29=9035=URR49= CQG_Gateway56=CQG_Gateway34=2352=20110908-10:56:55.3231=10179482 263=120003=310=173

CQG FIX API Specification

Page 78: CQG FIX API Specification

Page 74

Authorized Accounts Request (UZS) The FIX client uses this message to request an Authorized Accounts Report, which contains all CQG gateway accounts this trader is authorized to view or trade on.

Possible response messages: Authorized Accounts Report (UZR) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZS

20034 RequestID String(64) Y Unique ID for this request as assigned by the FIX client.

263 SubscriptionRequestType Char N Used to indicate what type of Authorized Accounts Report is expected. A snapshot request only asks for current information. If the field is absent, the value 0 is the default. Valid value:

0 = Snapshot

Note: In the future, the CQG gateway may support subscribing for updated reports whenever the authorized account list changes.

Standard Trailer Y

Example: Authorized Accounts Request

8=FIX.4.29=8635=UZS49=CQG_Gateway56=fix_client34=4 52 = 20110819-10:12:02.11320034=Request113263=010=084

Application Messages: FIX Client to CQG Gateway

Page 79: CQG FIX API Specification

Page 75

FCM Currency Rate Request (UZU)

The FIX client uses this message to request current currency rates for an FCM identified by FCM ID.

Possible response messages: FCM Currency Rate Report (UZT) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZU

20034 RequestID String(64) Y Unique ID for this request as assigned by the FIX client.

20053 FCMID Int Y CQG gateway ID of the FCM whose currency rates are requested.

Standard Trailer Y

Example: FCM Currency Rate Request

8=FIX.4.29=9035=UZU49=CQG_Gateway56=fix_client34=352=20110819-10:04:15.74720034=Request11320053=16310=043

CQG FIX API Specification

Page 80: CQG FIX API Specification

Page 76

Allowed Feature Request (UZX) The FIX client uses this message to request features for which it is enabled. Currently only news providers are returned. The CQG gateway maintains feature enablements per trader. The standard header tag SenderCompID (49) identifies the trader for this FIX session.

Possible response messages: Allowed Market Data Report (UZY) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZX

20034 RequestID String(64) Y Unique ID for this request as assigned by the FIX client.

Standard Trailer Y

Example: Allowed Feature Request

8=FIX.4.29=8035=UZX49= CQG_Gateway56= fix_client34=252=20110819-09:44:25.41020034=Request11310=090

Application Messages: FIX Client to CQG Gateway

Page 81: CQG FIX API Specification

Page 77

Market Data Enablements Request (UZZ)

The FIX client uses this message to request instruments for which it is authorized to view market data. The CQG gateway maintains market data enablements per trader, and the standard header tag SenderCompID (49) identifies the trader for this FIX session.

The message supports client-side caching of results, as market data enablements don’t change frequently. If the client request specifies a timestamp, full results (i.e. complete set of current enablements) are returned only if they are more recent than the timestamp.

Possible response messages: Allowed Market Data Report (UZY) or Business Message Reject (j).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZZ

20034 RequestID String(64) Y Unique ID for this request as assigned by the FIX client.

20035 RevisionTag String(64) N If client has cached enablements from a previous Allowed Market Data Report, that report may include the this value. This tells the CQG gateway to return the full instrument list in this Allowed Market Data Report only if the cached data is stale.

Standard Trailer Y

Example: Market Data Enablements Request

8=FIX.4.29=10435=UZZ49=CQG_Gateway56=fix_client34=252=20110819-09:57:58.27420034=Request11320035=20110722-13:48:0710=058

CQG FIX API Specification

Page 82: CQG FIX API Specification

Page 78

Application Messages: CQG Gateway to FIX Client

Execution Report: Reject Message (8) This message is sent by the CQG gateway in order to reject a New Order Single (D) sent by the client. Tag OrdRejReason = 103 and the ExecType =8 signify that this message is a reject. Specific causes, i.e. more detailed explanations, are conveyed by tag 58.

Note that it is technically possible for an execution report with “Rejected” order status to be followed by other execution reports for this order. Such order rejections may be issued to signal that normal order processing is being delayed for some reason (e.g. not acknowledged by exchange in reasonable time). It should not be assumed that “Rejected” is the final state of the order.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 8

1 Account String(32) N Account ID (managed by the CQG gateway).

6 AvgPx Price Y Set to 0.0 for an Order Reject.

11 ClOrdID String(64) C ClOrdID of the New Order Single that is being rejected.

14 CumQty Qty Y Set to 0 for an Order Reject.

17 ExecID String Y Identifier generated by the CQG gateway. Unique for order chain.

18 ExecInst Multiple ValueString

N As per the New Order Single.

20 ExecTransType Char Y Identifies transaction type. Valid value:

0 = New

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 83: CQG FIX API Specification

Page 79

Tag Field Name Format Req Comments

30 LastMkt String(4) N Market of execution for last fill, or an indication of the market where an order was routed. Market identification codes (ISO 10383) are used as exchange identifiers.

37 OrderID String(32) Y Unique identifier for the order as assigned by the CQG gateway.

38 OrderQty Qty Y* The order’s original quantity.

39 OrdStatus Char Y Identifies the current status of an order.

8 = Rejected

40 OrdType Char N Used to specify the type of order. As per the New Order Single.

44 Price Price N As per the New Order Single.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y As per the New Order Single.

55 Symbol String(64) Y As per the New Order Single.

58 Text String N Provides the reason why the order was rejected.

59 TimeInForce Char N As per the New Order Single.

60 TransactTime UTC Timestamp

N The time at which the execution being reported occurred.

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 84: CQG FIX API Specification

Page 80

Tag Field Name Format Req Comments

66 ListID String(64) C Required if this order is a leg of a compound order and helps client identify the compound order. Matches the value supplied by the client in its original New Order List request.

99 StopPx Price N As per the New Order Single.

103 OrdRejReason Int N Code to identify the reason for rejection. Further explanation of this code is in the Text field (tag 58). See Appendix A: Reject Codes for complete list of error codes and their meaning.

115 OnBehalfOfCompID String(32) N Broker company ID used when sending notifications via the CQG gateway. Note this field is a part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 129 (DeliverToSubID) belongs to. Part of Standard Header.

129 DeliverToSubID String(32) N CQG username of the trader who placed the order. Part of Standard Header.

150 ExecType Char Y The value is always:

8 = Rejected

151 LeavesQty Qty Y Amount of shares open for further execution. Could be 0.

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

200 MaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 85: CQG FIX API Specification

Page 81

Tag Field Name Format Req Comments

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Strike price for an option.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

205 MaturityDay Int N Day of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security. Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

210 MaxShow Qty C Conditionally present if ExecInst contains “i” (Iceberg). Maximum number of shares within an order to be shown to other customers.

211 PegDifference Price C Conditionally required if ExecInst includes R (Trailing). Matches New Order Single.

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 86: CQG FIX API Specification

Page 82

Tag Field Name Format Req Comments

432 ExpireDate LocalMktDate C Date of order expiration; last day the order can execute in terms of local market date. Conditionally required if TimeInForce = GTD.

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50461 CFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50762 SecuritySubType String N Sub-type qualification/identification of the SecurityType(167). For SecurityType(167) = "MLEG" CQG can provide the name of the futures strategy, such as Calendar, Crack, Butterfly, etc.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

1028 ManualOrderIndicator Boolean N Echoes value specified in corresponding New Order Single.

20004 TriggerQty Qty C Trigger quantity for quantity triggered order types as per the New Order Single.

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

Application Messages: CQG Gateway to FIX Client

Page 87: CQG FIX API Specification

Page 83

Tag Field Name Format Req Comments

20026 OrderSource String(24) N Identifier of the CQG sub-system that originated this order. It can be used to identify trades entered manually by FCM using CQG Customer and Account Service Tool (CAST). For such orders, this string begins with letters “CAST”. Format for other systems is not defined and can change any time.

20029 ChainOrderID String(32) N Unique identifier for the whole order chain, which stays unchanged even when order is modified or cancelled. For the original order ChainOrderID = OrderID.

20036 CQGListID String(32) C Required if this order is a leg of a compound order and helps client identify the compound order. Matches the value assigned by CQG gateway and returned with List Status Request.

20052 PeggedStopPx Price C Conditionally required if ExecInst includes R (Trailing) and OrdType=3 (Stop) or 4 (Stop limit). Provides the Stop price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

20115 OrderCheckMark Boolean N Order check mark.

Note: This is not the same order check mark as in CQG IC client.

20119 ExchangeKeyID String(10) N Unique identifier of exchange assigned by the CQG gateway.

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID specified in the request.

50839 PeggedPrice Price C Conditionally required if ExecInst includes R (Trailing) and OrdType=4 (Stop limit). Provides the Limit price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

Start of component block, expanded in line < LegsGrp >

CQG FIX API Specification

Page 88: CQG FIX API Specification

Page 84

Tag Field Name Format Req Comments

50555 NoLegs NumInGroup C Number of legs repeating group instances. Sent only if Tag 442 (MultiLegReportingType) is 3 (Multi-leg security).

50556 LegCurrency Currency C Currency 3-char ISO-4217 alphabetic code associated with a particular leg's quantity. First field in repeating group. Required if NoLegs (50555) > 0.

50600 LegSymbol String(64) C Multi-leg instrument’s individual security symbol.

50601 LegSymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50602 LegSecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50603 LegSecurityIDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50608 LegCFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50609 LegSecurityType String N Indicates type of security. Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 89: CQG FIX API Specification

Page 85

Tag Field Name Format Req Comments

50610 LegMaturityMonthYear LocalMktDate N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50611 LegMaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50612 LegStrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50615 LegCouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50616 LegSecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50623 LegRatioQty Qty N The ratio of quantity for this individual leg relative to the entire multileg security.

50624 LegSide Char C The side of this individual leg (multi-leg security). Valid values:

1 = Buy

2 = Sell

Required if NoLegs (50555) > 0.

CQG FIX API Specification

Page 90: CQG FIX API Specification

Page 86

Tag Field Name Format Req Comments

50654 LegRefID String N Unique indicator for a specific leg (Uniqueness is guaranteed within a particular execution report).

50687 LegQty Qty C Quantity of this individual leg (multi-leg security). Required if NoLegs (50555) > 0.

20109 LegPutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20120 LegExchangeKeyID String(10) N Unique identifier, assigned by the CQG gateway, of exchange for specific leg.

End of component block, expanded in line < LegsGrp >

Standard Trailer Y

Example: Execution Report

8=FIX.4.29=25635=849=CQG_Gateway56=fix_client34=352=20061123-12:11:40.019150=820=01=28637=-100139=840=155=F.US.EU6Z0654=1 14=0.0000 151=0.000038=3.000059=017=060=20061123-12:11:40.01958=The Risk and Routing service is not available.6=0.0000000011=4103=0115=fix_client10=083

Application Messages: CQG Gateway to FIX Client

Page 91: CQG FIX API Specification

Page 87

Execution Report: Confirmation/Acknowledgement (8)

This message is a Status Report, a Fill Notice, or a confirmation or acknowledgment of an order creation, modification, or cancellation. It is sent by the CQG gateway in response an Order Cancel/Replace Request (G) or New Order Single (D) or as a result of an order matching leading to trade creation.

Please note that orders expired due to time in force conditions can be reported with OrdStatus either set to 4 (Canceled) or C (Expired). It depends on how exchanges report expiration events and also whether an order was expired by an exchange or the CQG gateway.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 8

1 Account String(32) N Account ID (managed by the CQG gateway)

6 AvgPx Price Y Calculated average price of all fills on this order. If order has no fills, the CQG gateway sends 0 in this tag.

11 ClOrdID String(64) C ClOrdID of the original New Order Single, Cancel Request, or Cancel/Replace Request. Format for orders originating from CQG IC: ‘CQG_’ + numeric order identifier.

14 CumQty Qty Y Total number of shares that have filled over the life of this order.

15 Currency Currency C Currency 3-char ISO-4217 alphabetic code associated with the price. Sent only if tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill) on reports for single securities. For multi-leg securities, tag 50556 (LegCurrency) is populated instead.

17 ExecID String Y Identifier generated by the CQG gateway for this execution report. Unique for order chain.

18 ExecInst Multiple ValueString

N As per the New Order Single or Cancel/Replace Request.

19 ExecRefID String C Refers to ExecID of the original fill in case of fill correction, fill cancel or fill bust.

CQG FIX API Specification

Page 92: CQG FIX API Specification

Page 88

Tag Field Name Format Req Comments

20 ExecTransType Char Y Identifies transaction type. Valid values:

0 = New

1 = Cancel

2 = Correct

3 = Status [response to Order Mass Status Request (UAF)]

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

30 LastMkt String(4) N Market of execution for last fill, or an indication of the market where an order was routed. Market identification codes (ISO 10383) are used as exchange identifiers.

31 LastPx Price C If Tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill), this tag indicates the price at which the fill occurred.

32 LastShares C If Tag 150 (ExecType) is 1 (Partial Fill) or 2 (Fill), this tag indicates quantity of shares bought/sold on this (last) fill.

37 OrderID String(32) Y Unique identifier for the order as assigned by the CQG gateway. This ID changes as a result of changes to an order. New OrderID appears in Execution Report with ExecType = Replace and OrdStatus = Replaced.

38 OrderQty Qty Y* Order’s total quantity.

Application Messages: CQG Gateway to FIX Client

Page 93: CQG FIX API Specification

Page 89

Tag Field Name Format Req Comments

39 OrdStatus Char Y Identifies the current status of an order. Valid values:

0 = New

1 = Partially filled

2 = Filled

4 = Canceled

5 = Replaced

6 = Pending Cancel

8 = Rejected

9 = Suspended (read more)

A = Pending New

C = Expired

E = Pending Replace

40 OrdType Char N Used to specify the type of order. As per the New Order Single.

41 OrigClOrdID String(64) C OrigClOrdID of the original Cancel Request or Cancel/Replace Request. Format for orders originating from CQG IC: ‘CQG_’ + numeric order identifier.

44 Price Price N As per the New Order Single or Cancel/Replace Request.

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y As per the New Order Single.

55 Symbol String(64) Y As per the New Order Single.

CQG FIX API Specification

Page 94: CQG FIX API Specification

Page 90

Tag Field Name Format Req Comments

58 Text String N Custom user-supplied text for this order (“Order comment” specified from CQG client).

59 TimeInForce Char N As per the New Order Single.

60 TransactTime UTC Timestamp

N Time at which the execution being reported occurred.

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

66 ListID String(64) C Required if this order is a leg of a compound order and helps client identify the compound order.

Matches the value supplied by the client in its original New Order List request.

99 StopPx Price N As per the New Order Single or Cancel/Replace Request.

115 OnBehalfOfCompID String(32) N Broker company ID used when sending notifications via the CQG gateway. Note this field is a part of Standard Header.

128 DeliverToCompID String(32) N Trading firm that the trader specified in tag 129 (DeliverToSubID) belongs to. Part of Standard Header.

129 DeliverToSubID String(32) N CQG username of the trader who placed the order. Part of Standard Header.

Application Messages: CQG Gateway to FIX Client

Page 95: CQG FIX API Specification

Page 91

Tag Field Name Format Req Comments

150 ExecType Char Y Describes the nature of the execution report while OrdStatus identifies the status of the order. Valid values:

0 = New

1 = Partial fill

2 = Fill

4 = Canceled

5 = Replace

6 = Pending Cancel

8 = Rejected

9 = Suspended (read more)

C = Expired

E = Pending Replace

I = Order Status

151 LeavesQty Qty Y Amount of shares open for further execution. Always 0 if OrdType (tag 39) = 4 (Canceled).

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

198 SecondaryOrderID String N Unique order ID assigned by the execution system or exchange.

200 MaturityMonthYear String N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 96: CQG FIX API Specification

Page 92

Tag Field Name Format Req Comments

201 PutOrCall Int N Indicates whether an Option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Option strike price. Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

205 MaturityDay Int N Day of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

210 MaxShow Qty C Conditionally present if ExecInst contains “i” (Iceberg). Maximum number of shares within an order to be shown to other customers.

211 PegDifference Price C Conditionally required if ExecInst includes R (Trailing). Matches New Order Single.

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 97: CQG FIX API Specification

Page 93

Tag Field Name Format Req Comments

432 ExpireDate LocalMktDate C Date of order expiration; last day the order can execute in terms of local market date. Conditionally required if TimeInForce = GTD.

442 MultiLegReportingType Char C Used to indicate what an Execution Report (8) represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.).Valid values:

1 = Single security (default if not specified)

3 = Multi-leg security

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50461 CFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50762 SecuritySubType String N Sub-type qualification/identification of the SecurityType(167). For SecurityType(167) = "MLEG" CQG can provide the name of the futures strategy, such as Calendar, Crack, Butterfly, etc.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

1028 ManualOrderIndicator Boolean Y Echoes value specified in corresponding New Order Single.

CQG FIX API Specification

Page 98: CQG FIX API Specification

Page 94

Tag Field Name Format Req Comments

20001 Aggressive Boolean N Fixed-Income-specific order modifier.

20004 TriggerQty Qty C Trigger quantity for quantity triggered order types as per the original order.

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20023 StatementDate LocalMktDate C FCM business day this trade corresponds to. Present only when ExecType is “Filled” or “Partially Fill” and MultiLegReportingType (tag 442) is 1 (Single security). Absent in all other cases.

20026 OrderSource String(24) N Identifier of the CQG sub-system that originated this order.

It can be used to identify trades entered manually by FCM using CQG Customer and Account Service Tool (CAST). For such orders, this string begins with letters “CAST”.

Format for other systems is not defined and can change any time.

20027 TradeID String C The unique ID assigned to the trade entity once it is received or matched by the exchange or central counterparty.

20029 ChainOrderID String(64) Y Unique identifier for the whole order chain, which stays unchanged even when order is modified or cancelled. For the original order ChainOrderID = OrderID.

20036 CQGListID String(32) C Required if this order is a leg of a compound order and helps client identify the compound order. Matches the value assigned by CQG gateway and returned with List Status Request.

20052 PeggedStopPx Price C Conditionally required if ExecInst includes R (Trailing) and OrdType=3 (Stop) or 4 (Stop limit). Provides the stop price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

Application Messages: CQG Gateway to FIX Client

Page 99: CQG FIX API Specification

Page 95

Tag Field Name Format Req Comments

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

20111 OrderPlacementTime LocalMktDate N The time the order was first placed (received by CQG gateway).

20112 LastModifierUsername String(32) N Name of the trader who made the last order status change.

20115 OrderCheckMark Boolean N Order check mark.

Note: This is not the same order check mark as in CQG IC client.

20119 ExchangeKeyID String(10) N Unique identifier of exchange assigned by the CQG gateway.

20122 FillExecID String(64) N Identifier, generated by the CQG gateway, of this fill event.

20124 ClientRegulatoryAlgorithmID Int N Regulatory Algorithm ID specified in recent request on this order chain.

20125 EffectiveRegulatoryAlgorithmID Int N Regulatory Algorithm ID actually sent to exchange.

50526 SecondaryClOrderID String C Order identifier assigned by CQG gateway when sending the order to the execution system.

50715 ClearingBusinessDate LocalMktDate C Exchange day this trade corresponds to. Present only when ExecType is “Filled” or “Partially Fill” and MultiLegReportingType (tag 442) is 1 (Single security). Absent in all other cases.

Start of component block, expanded in line < LegsGrp >

50555 NoLegs NumInGroup C Number of legs repeating group instances. Sent only if Tag 442 (MultiLegReportingType) is 3 (Multi-leg security).

50556 LegCurrency Currency C Currency 3-char ISO-4217 alphabetic code associated with a particular leg's quantity. First field in repeating group. Required if NoLegs (50555) > 0.

CQG FIX API Specification

Page 100: CQG FIX API Specification

Page 96

Tag Field Name Format Req Comments

50600 LegSymbol String(64) C Multi-leg instrument’s individual security symbol.

50601 LegSymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50602 LegSecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50603 LegSecurityIDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50608 LegCFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50609 LegSecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50610 LegMaturityMonthYear LocalMktDate N Month and Year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 101: CQG FIX API Specification

Page 97

Tag Field Name Format Req Comments

50611 LegMaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50612 LegStrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50615 LegCouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50616 LegSecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50623 LegRatioQty Qty N The ratio of quantity for this individual leg relative to the entire multileg security.

50624 LegSide Char C The side of this individual leg (multi-leg security). Valid values:

1 = Buy

2 = Sell

Required if NoLegs (50555) > 0.

50637 LegLastPx Price C Execution price assigned to a leg of a multi-leg instrument. Required if NoLegs (50555) > 0.

CQG FIX API Specification

Page 102: CQG FIX API Specification

Page 98

Tag Field Name Format Req Comments

50654 LegRefID String N Unique indicator for a specific leg (Uniqueness is guaranteed within a particular execution report).

50687 LegQty Qty C Quantity of this individual leg (multi-leg security). Required if NoLegs (50555) > 0.

20109 LegPutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20024 LegStatementDate LocalMktDate C FCM business day this individual leg trade of multi-leg security corresponds to. Required if NoLegs (50555) > 0 and ExecType is “Filled” or “Partially Fill”.

20025 LegClearingBusinessDate LocalMktDate C Exchange trade day this individual leg trade of multi-leg security corresponds to. Required if NoLegs (50555) > 0 and ExecType is “Filled” or “Partially Fill”.

20028 LegTradeID String(32) C Unique identifier for leg trade operation. Required if NoLegs (50555) > 0 and ExecType is “Filled” or “Partially Fill”.

20120 LegExchangeKeyID String(10) N Unique identifier, assigned by the CQG gateway, of exchange for specific leg.

20123 LegFillExecID String(64) N Identifier, generated by the CQG gateway, of this fill event for specific leg generated by the CQG gateway.

End of component block, expanded in line < LegsGrp >

50584 MassStatusReqID String(64) N Send only if responding to an Order Mass Status Request (AF). Echo back the value provided by the requester.

Application Messages: CQG Gateway to FIX Client

Page 103: CQG FIX API Specification

Page 99

Tag Field Name Format Req Comments

50839 PeggedPrice Price C Conditionally required if ExecInst includes R (Trailing) and OrdType=4 (Stop limit). Provides the Limit price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

Standard Trailer Y

Example: Execution Report

8=FIX.4.29=39135=849=CQG_Gateway56=fix_client34=2752=20061124-16:48:44.106150=220=01=28637=110904239=240=155=F.US.USAR1Z0654=114=3.0000151=0.000038=3.000059=017=481192460=20061124-16:48:44.0106=-0.0156250031=-0.0156250032=3.0000 11=W2720026=CAST442=3 50555=250556=USD50600=F.US.USAZ0650624=1 50637=113.6093750050687=3.000020024=20061124-00:00:00.000 20025=20061124-00:00:00.000 50556=USD 50600=F.US.USAH07 50624=2 50637=113.62500000 50687=3.0000 20024=20061124-00:00:00.000 20025=20061124-00:00:00.000 115=fix_client 10=080

CQG FIX API Specification

Page 104: CQG FIX API Specification

Page 100

List Status Request (N) List Status Request exists in FIX 4.2, but tag ContingencyType (1385) first appears in FIX 5.0 SP1 to support OCO/OPO orders.

In FIX 5.0 SP1, List Status Request is used only as a response to the New Order List (E) message when the compound order place request is rejected. To facilitate communication about the list (compound order) and enable clients that didn’t place the compound order to understand its structure, the CQG gateway sends a List Status Request message under several additional scenarios. These include:

• For both accepted and rejected compound orders (it also sends individual Execution Reports for the legs of the compound, of course).

• Along with each set of Execution Reports that reflect triggering orders in an OPO compound order.

• When responding to an Order Mass Status Request that includes Execution Reports for compound orders.

Note: The CQG gateway does not support the client sending List Status Request Request (M), which is the other usual reason to send this message.

Clients should be prepared to receive multiple List Status Request messages about a single list (compound order). To avoid unnecessary messages, the CQG gateway usually sends only one List Status Request message per set of Execution Reports about a given list, but certain server-side timing scenarios could result in duplicates. In addition, native CQG clients can perform modifications on lists that are unsupported via FIX (e.g. adding an order to an existing list). In these cases, the CQG gateway sends a List Status Request message reflecting the latest structure of the list.

Tag Field Name Format Req Comments

Standard Header Y MsgType = N

66 ListID String(64) Y Client’s identifier of this compound order as supplied by the client in its original New Order List request.

20036 CQGListID String(32) Y Unique identifier of this compound order as assigned by the CQG gateway.

429 ListStatusType Int Y Code to represent the status type. Valid values:

1 = Ack (used for any response to New Order List).

2 = Response (used for any response to Order Mass Status Request).

82 NoRpts Int Y Total number of messages required to provide status of the compound order. The only valid value: 1.

Application Messages: CQG Gateway to FIX Client

Page 105: CQG FIX API Specification

Page 101

Tag Field Name Format Req Comments

431 ListOrderStatus Int Y Code to represent the status of this compound order. Valid values:

2 = Received for execution (used for any response except rejection of New Order List request).

7 = Reject (only used when rejecting a New Order List request).

51385 ContingencyType Int Y* Defines the relationship between compound orders in this list. Valid values:

1 = OCO with proportional triggering disabled.

2 = OPO with proportional triggering disabled. This is called One Triggers the Other (OTO) in FIX 5.0 SP1.

4 = OCO with proportional triggering enabled. This is called One Updates the Other (OUO) – Proportional Quantity Reduction in FIX 5.0 SP1.

5001 = OPO with proportional triggering enabled. This is a CQG-specific value, not supported in FIX 5.0 SP1.

83 RptSeq Int Y Sequence number of this report message. The only valid value: 1.

444 ListStatusText String N Free format text string describing reject reason.

60 TransactTime UTC Timestamp

N Time this compound order request was initiated or released by the trader or trading system.

68 TotNoOrders Int Y Sum of NoOrders (73) across all messages with this ListID.

Because CQG FIX does not support fragmentation, the value always matches NoOrders (73) in this message.

Start of component block, expanded in line <OrdListStructGrp>

73 NoOrders Int Y Number of orders or lists to follow.

67 ListSeqNo Int Y This order’s or list’s ordinal position (0-based) within the compound order.

CQG FIX API Specification

Page 106: CQG FIX API Specification

Page 102

Tag Field Name Format Req Comments

20029 ChainOrderID String(64) C If the entry at this list position is an order (not an order list), this tag is present to identify the order.

This value remains unchanged even when the order is modified or cancelled (matches OrderID for the original order).

20074 NestedListID String(64) C If the entry at this list position is a nested list (not an order), this tag is present to help identify that list. It is the value supplied by the client when placing the list/compound order.

20103 NestedCQGListID String(32) C If the entry at this list position is a nested list (not an order), this tag is present to identify that list. It is the unique identifier of the list/compound order assigned by CQG gateway.

End of component block, expanded in line <OrdListStructGrp>

Standard Trailer Y

Example: List Status Request

8=FIX.4.29=22035=N49=CQG_Gateway56=CQG_Gateway34=14057=Test FIX52=20110726-12:54:27.834 429=166=20110726125427209_52120036=122551882=1431=251385=183=160=20110726-12:54:27.330 68=273=267=020029=61933003767=120029=61933003810=185

Application Messages: CQG Gateway to FIX Client

Page 107: CQG FIX API Specification

Page 103

Order Cancel Reject (9)

This message is sent by the CQG gateway in order to reject an Order Cancel Request (F) or Order Cancel/Replace Request (G) sent by the client.

Tag Field Name Format Req Comments

Standard Header Y MsgType = 9

1 Account String(32) N Account ID (managed by the CQG gateway).

11 ClOrdID String(64) C ClOrdID of the Cancel Request or Cancel/Replace that is being rejected. Format for orders originating from CQG IC: ‘CQG_’ + numeric order identifier.

37 OrderID String(32) Y Unique identifier for the order as assigned by the CQG gateway.

39 OrdStatus Char Y Identifies the current status of the order. Valid values:

0 = New

1 = Partially Filled

2 = Filled

4 = Canceled

5 = Replaced

6 = Pending Cancel

8 = Rejected

9 = Suspended (see Confirmation/ Acknowledgement Execution Report for details)

C = Expired (the expired state is calculated by the CQG gateway and may be followed by late fill)

E = Pending Replace

41 OrigClOrdID String(64) C OrigClOrdID of the Cancel Request or Cancel/Replace that is being rejected. Format for orders originating from CQG IC: ‘CQG_’ + numeric order identifier.

CQG FIX API Specification

Page 108: CQG FIX API Specification

Page 104

Tag Field Name Format Req Comments

58 Text String N Provides the reason why the request was rejected.

60 TransactTime UTC Timestamp

N Time this order request was rejected.

102 CxlRejReason Int N Code to identify reason for cancel rejection. See Appendix A: Reject Codes for complete list of error codes and their meaning.

115 OnBehalfOfCompID String(32) N Broker company ID used when sending notifications via the CQG gateway. Note this field is a part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 129 (DeliverToSubID) belongs to. Note this field is a part of Standard Header.

129 DeliverToSubID String(32) N CQG username of the trader who placed the order. Part of Standard Header.

434 CxlRejResponseTo Char Y Identifies the type of request this Cancel Reject is in response to.

Valid values:

1 = Order Cancel Request

2 = Order Cancel/Replace Request

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20026 OrderSource String(24) N Identifier of the CQG sub-system that originated this order. It can be used to identify trades entered manually by FCM using CQG Customer and Account Service Tool (CAST). For such orders, this string begins with “CAST”. Format for other systems is not defined and can change any time.

20029 ChainOrderID String(64) N Unique identifier for the whole order chain, which stays unchanged even when order cancel request was rejected.

Application Messages: CQG Gateway to FIX Client

Page 109: CQG FIX API Specification

Page 105

Tag Field Name Format Req Comments

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

Standard Trailer Y

Example: Order Cancel Reject

8=FIX.4.29=21435=949=CQG_Gateway56=fix_client34=1552=20061124-15:55:46.197 60=20061124-5:55:46.19737=110904011=SSS1841=SSS1739=0 434=2102=258=Order to be modified already was filled or canceled. Order Modification failed.20029=3865191296115=fix_client10=118

CQG FIX API Specification

Page 110: CQG FIX API Specification

Page 106

Business Message Reject (j) This message is sent by the CQG gateway in response to New Order Single (D), New Order List (E), Order Mass Status Request (UAF), Order Cancel/Replace Request (G), Order Cancel Request (F), Request for Position (UAN), Account Data Request (UAR), Market Data Enablements Request (UZZ), Allowed Feature Request (UZX), FCM Currency Rate Request (UZU), or Authorized Accounts Request (UZS).

Note this message does not contain ClOrdID (tag 11) field because it is a low level reject and can be sent as an answer to several request types, not only order related.

Note in case this message is sent to the CQG gateway it will be ignored.

Tag Field Name Format Req Comments

Standard Header Y MsgType = j

45 RefSeqNum SeqNum N Sequence number of rejected message.

58 Text String N Where possible, explains reason for rejection.

372 RefMsgType String Y The MsgType of the FIX message being referenced. Valid values:

D = New Order Single

E = New Order List

F = Order Cancel Request

G = Order Cancel Replace Request

UAF = Order Mass Status Request

UAN = Request for Position

UAR = Account Data Request

UZZ = Market Data Enablements Request

UZX = Allowed Feature Request

UZU = FCM Currency Rate Request

UZS = Authorized Accounts Request

Application Messages: CQG Gateway to FIX Client

Page 111: CQG FIX API Specification

Page 107

Tag Field Name Format Req Comments

380 BusinessRejectReason Int Y Error code identifying reason for a Business Message Reject message.

Valid values:

0 = Other

1 = Unknown ID

2 = Unknown Security

3 = Unsupported Message Type

4 = Application not available

5 = Conditionally Required Field Missing

Standard Trailer Y

Example: Business Message Reject

8=FIX.4.29=11935=j49=CQG_Gateway56=fix_client34=3152=20061124-16:50:25.87145=0372=UAN380=058=Access to account is not authorized.10=065

CQG FIX API Specification

Page 112: CQG FIX API Specification

Page 108

Security Definition (d) The CQG gateway sends this message in response to a client’s Security Definition Request (c).

For existing UDS, future, options, or native strategy specification requests (SecurityRequestType=0), it indicates whether the request was accepted (matching UDS, future, options, or native strategy found) or rejected (matching UDS, future, options, or native strategy not found). If accepted, it includes the leg definition of the strategy in case of UDS and native strategy, and contract specification in case of future or options.

For new UDS definition requests (SecurityRequestType=1), this message indicates whether the request was accepted or rejected. If accepted, it includes the symbol name that the client/Gateway will use to identify the contract in all future messages (e.g. orders on that contract, or execution reports involving that contract). Note: this response does not duplicate the complete leg definition of the strategy; requesting client is expected to know that already.

Currently, only CQG symbology is supported to identify leg contracts, although leg definition includes tags for custom FIX API vendor contract symbol mappings for future use. When custom contract symbol mappings are supported, several additional tags will be present along with each UnderlyingSymbol (311) tag: UnderlyingSymbolSfx (312), UnderlyingSecurityID (309), UnderlyingIDSource (305), UnderlyingSecurityType (310), UnderlyingMaturityMonthYear (313), UnderlyingMaturityDay (314), UnderlyingMaturityDate (50542), UnderlyingSecurityExchange (308), UnderlyingExDestination (20051), UnderelyingExchangeKeyID (20121).

Tag Field Name Format Req Comments

Standard Header Y MsgType = d

167 SecurityType String N Indicates type of security.

200 MaturityMonthYear String N Month and Year of the maturity.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

202 StrikePrice Price N Strike Price for an option.

207 SecurityExchange String N Market used to help identify a security.

320 SecurityReqID String(64) Y Unique ID for this request as assigned by the FIX client and sent with the Security Definition Request.

Application Messages: CQG Gateway to FIX Client

Page 113: CQG FIX API Specification

Page 109

Tag Field Name Format Req Comments

322 SecurityResponseID String(64) Y Unique ID of this Security Definition.

323 SecurityResponseType Int C* Valid values:

1 = Accept security proposal as is.

5 = Reject security proposal.

Required when response is to a Security Definition Request with SecurityRequestType=1.

393 TotalNumSecurities Int Y Total number of securities. Security definition is used only to respond to a single UDS definition request or request for specifications, so the CQG gateway always sends 1 if the strategy definition was successful or if the strategy was found and 0 if it was unsuccessful/not found.

541 MaturityDate LocalMktDate N Date of maturity.

50461 CFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50762 SecuritySubType String N Sub-type qualification/identification of the SecurityType(167). For SecurityType(167) = "MLEG" CQG can provide the name of the futures strategy, such as Calendar, Crack, Butterfly, etc.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 114: CQG FIX API Specification

Page 110

Tag Field Name Format Req Comments

55 Symbol String(64) N Symbol for the UDS. This tag is present only if the definition was successful or the strategy was found.

15 Currency Currency N Identifies currency used for price.

58 Text String N Free format text string. If the definition was rejected or the strategy not found, this tag should be present and contain information about the reason for failure.

20049 UserStrategyType String(64) C Indicates strategy type the user defining the strategy specified. Required if SecurityRequestType=0 and strategy was found.

20119 ExchangeKeyID String(10) N Unique identifier, assigned by the CQG gateway, for exchange.

Start of component block, expanded in line < UnderlyingSecurityGrp >

146 NoRelatedSym Int C Number of legs that make up the Security (UDS). UDS are always defined from the buy perspective, so leg qty and sides below correspond to buying the strategy. Required if SecurityRequestType=0.

20050 LegNumber Int C Leg number within the strategy (1-based). Must be the first field in the repeating group. Required if NoRelatedSym > 0.

311 UnderlyingSymbol String(64) C Contract of the leg. Corresponds to Symbol (55); see description of that tag in New Order Single (D). Required if NoRelatedSym > 0.

312 UnderlyingSymbolSfx String N Corresponds to SymbolSfx (65); see description of that tag in New Order Single (D).

309 UnderlyingSecurityID String N Corresponds to SecurityID (48); see description of that tag in New Order Single (D).

305 UnderlyingIDSource String N Corresponds to IDSource (22); see description of that tag in New Order Single (D).

Application Messages: CQG Gateway to FIX Client

Page 115: CQG FIX API Specification

Page 111

Tag Field Name Format Req Comments

310 UnderlyingSecurityType String N Indicates type of security. Valid values: FUT, OPT, and MLEG.

313 UnderlyingMaturityMonthYear String N Corresponds to MaturityMonthYear (200); see description of that tag in New Order Single (D).

314 UnderlyingMaturityDay Int N Corresponds to MaturityDay (205); see description of that tag in New Order Single (D).

315 UnderlyingPutOrCall Int N Corresponds to PutOrCall (201); see description of that tag in New Order Single (D).

316 UnderlyingStrikePrice Price N Corresponds to StrikePrice (202); see description of that tag in New Order Single (D).

50542 UnderlyingMaturityDate LocalMktDate N Corresponds to MaturityDate (541); see description of that tag in New Order Single (D).

308 UnderlyingSecurityExchange String N Corresponds to SecurityExchange (207); see description of that tag in New Order Single (D).

435 UnderlyingCouponRate Price N Corresponds to CouponRate (223); see description of that tag in New Order Single (D).

50463 UnderlyingCFICode String N Underlying security's CFICode as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

20051 UnderlyingExDestination String N Corresponds to ExDestination (100); see description of that tag in New Order Single (D).

318 UnderlyingCurrency Currency N Underlying security's currency.

CQG FIX API Specification

Page 116: CQG FIX API Specification

Page 112

Tag Field Name Format Req Comments

319 RatioQty Qty C This leg’s quantity ratio. Required if NoRelatedSym > 0.

54 Side Char C This leg’s side. Valid values:

1 = Buy

2 = Sell

Required if NoRelatedSym > 0.

20121 UnderlyingExchangeKeyID String(10) N Corresponds to ExchangeKeyID field (tag 20119). See description of that tag in Confirmation/Acknowledgement: Execution Report message.

End of component block, expanded in line <UnderlyingSecurityGrp>

Standard Trailer Y

Example: Security Definition

8=FIX.4.29=11335=d320=Request113322=214673df-7906-408e-bf6e-915568689eff323=1393=155=U.Q1-64134710=110

Application Messages: CQG Gateway to FIX Client

Page 117: CQG FIX API Specification

Page 113

Order Mass Status Request Ack (UBR)

This message is sent by the CQG gateway in response to Order Mass Status Request (UAF) after a list of execution reports, if any. When no status reports are available to send, the message with ReqResult = 2 (No orders found that match criteria) is sent.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UBR

50584 MassStatusReqID String(64) Y Unique ID for this request assigned by the FIX Client.

20022 ReqResult Int Y Valid values:

0 = Valid Request

1 = Invalid or unsupported Request

2 = No orders found that match criteria

3 = Not all orders were sent due to internal error. Call support.

Standard Trailer Y

Example: Order Mass Status Request Ack

8=FIX.4.29=7835=UBR50584= MS120022=010=158

CQG FIX API Specification

Page 118: CQG FIX API Specification

Page 114

Request for Positions Ack (UAO) This message is sent by the CQG gateway in response to Request for Position (UAN) after position report messages, if any. When no reports are available to send, the message with ReqResult = 2 (No positions/trades found that match criteria) is sent. The message is also sent after unsolicited reports to mark the end of a message queue.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAO

50710 PosReqID String(64) C Unique ID for this request assigned by the FIX Client.

50724 PosReqType Int Y Identifier used to determine type of Position Reports to be sent.

Valid values:

0 = Position (FCM-confirmed positions)

1 = Trade (current day fills)

50728 PosReqResult Int Y Valid values:

0 = Valid Request

1 = Invalid or unsupported Request

2 = No positions/trades found that match criteria

Standard Trailer Y

Example: Request for Position Ack

8=FIX.4.29=035=UAO50710=PR150724=050728=010=158

Application Messages: CQG Gateway to FIX Client

Page 119: CQG FIX API Specification

Page 115

Current Day Fills: Position Report (UAP)

This message is sent by the CQG gateway in response to a Request for Position (MsgType=UAN) message with PosReqType = 1 (current day fills). A separate Position Report is sent for each fill.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAP

1 Account String(32) Y Account ID (managed by the CQG gateway).

6 AvgPx Price Y Average trade price.

11 ClOrdID String(64) C ClOrdID of the original New Order Single or Cancel/Replace Request. Format for orders originating from CQG IC: ‘CQG_’ + numeric order identifier.

15 Currency Currency Y Currency 3-char ISO-4217 alphabetic code.

17 ExecID String C Identifier generated by the CQG gateway for the execution report corresponding to this fill. Unique for order chain. Present if PosReqType (tag 50724) is ‘1’ (Trade).

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

30 LastMkt String(4) N Market of execution for last fill, or an indication of the market where an order was routed. Market identification codes (ISO 10383) are used as exchange identifiers.

32 LastShares Qty Y Quantity of the open position.

37 OrderID String(32) Y Order ID associated with a particular fill and assigned by the CQG gateway. For the original order ChainOrderID = OrderID.

CQG FIX API Specification

Page 120: CQG FIX API Specification

Page 116

Tag Field Name Format Req Comments

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y Indicates the side of the order.

Valid values:

1 = Long

2 = Short

55 Symbol String(64) Y Qualifier used to indicate the trading instrument of the CQG system for which orders are returned.

58 Text String N Custom user-supplied text for an order this fill report corresponds to.

60 TransactTime UTC Timestamp C The time at which the execution being reported occurred.

Present if PosReqType (tag 50724) is ‘1’ (Trade).

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

66 ListID String(64) C Required if the filled order is a leg of a compound order and helps client identify the compound order. Matches the value supplied by the client in its original New Order List request.

115 OnBehalfOfCompID String(32) N Broker company ID used when sending notifications via the CQG gateway. Note this field is a part of Standard Header.

128 DeliverToCompID String(32) C Trading firm that the trader specified in tag 129 (DeliverToSubID) belongs to. Part of Standard Header.

129 DeliverToSubID String(32) N CQG username of the trader who placed the order. Trading firm that the trader specified in tag 129 (DeliverToSubID) belongs to.

Part of Standard Header.

Application Messages: CQG Gateway to FIX Client

Page 121: CQG FIX API Specification

Page 117

Tag Field Name Format Req Comments

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

198 SecondaryOrderID String N Unique order ID assigned by the execution system or exchange.

200 MaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

202 StrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

205 MaturityDay Int N Day of the maturity. Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

CQG FIX API Specification

Page 122: CQG FIX API Specification

Page 118

Tag Field Name Format Req Comments

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

325 UnsolicitedIndicator Boolean Y Set to Y if message is sent as a result of a subscription request or out of band configuration as opposed to a Position Request (UAN).

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20119 ExchangeKeyID String(10) N Unique identifier, assigned by the CQG gateway, of exchange.

50461 CFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX;

For options: OPXXXX, OCXXXX;

For spreads: MXXXXX;

For other instruments: XXXXXX.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50762 SecuritySubType String N Sub-type qualification/identification of the SecurityType(167). For SecurityType(167) = "MLEG" CQG can provide the name of the futures strategy, such as Calendar, Crack, Butterfly, etc.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20010 AccountName String N Symbolic name of account.

Application Messages: CQG Gateway to FIX Client

Page 123: CQG FIX API Specification

Page 119

Tag Field Name Format Req Comments

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20023 StatementDate LocalMktDate Y FCM statement date.

20026 OrderSource String(24) N Identifier of the CQG sub-system that originated this order. It can be used to identify trades entered manually by FCM using CQG Customer and Account Service Tool (CAST). For such orders this string will begin with letters “CAST”. Format for other systems is not defined and can change any time.

20027 TradeID String(32) Y Unique identifier for trade operation. Present if PosReqType (tag 50724) is ‘1’ (Trade).

20029 ChainOrderID String(32) Y Unique identifier for the whole order chain, which stays unchanged even when order is modified or cancelled. For the original order ChainOrderID = OrderID.

20036 CQGListID String(32) C Required if the filled order is a leg of a compound order and helps client identify the compound order. Matches the value assigned by CQG gateway and returned with List Status Request.

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

20111 OrderPlacementTime LocalMktDate N The time the order was first placed (received by CQG gateway).

20115 OrderCheckMark Boolean N Order check mark.

Note: This is not the same order check mark as in CQG IC client.

50526 SecondaryClOrderID String C Order identifier assigned by CQG gateway when sending the order to the execution system.

CQG FIX API Specification

Page 124: CQG FIX API Specification

Page 120

Tag Field Name Format Req Comments

50724 PosReqType Int Y Identifier used to determine type of Position Reports to be sent.

Valid values:

0 = Position (FCM-confirmed positions)

1 = Trade (current day fills)

50710 PosReqID String(64) C If tag 325 (UnsolicitedIndicator) is N, PosReqID is unique ID provided by the FIX Client in corresponding Request for Position (UAN) message. If tag 325 (UnsolicitedIndicator) is Y, PosReqID is omitted.

50715 ClearingBusinessDate LocalMktDate Y Clearing business date.

Example: Position Report

8=FIX.4.29=1435=UAP1=40332=8.0000000054=155=F.US.DDU06325=N50710=s2550724=115=USD6=2220.0000000050715=20080718-00:00:00.000 20023=20080720-00:00:00.00020026=CAST37=orderid1 11=126MOD2 17=4811924 60=20070718-15:50:51115=fix_client20029=orderid110=131

Application Messages: CQG Gateway to FIX Client

Page 125: CQG FIX API Specification

Page 121

FCM-Confirmed Positions: Position Report (UAP)

This message is sent by the CQG gateway in response to a Request for Position (MsgType=UAN) message with PosReqType = 0 (FCM-confirmed positions). Multiple position reports can be sent for the same symbol.

Note: This message does not contain ClOrdID field, but Current Day Fills report does. On the demo environment, the CQG gateway simulates FCM statements and generates one position per contract.

On the production environment, we do not control how the FCM presents and sends position statements to CQG. Some FCMs aggregate positions by contracts, and some do not. The only guarantee is that the FIX client should never receive positions on opposite sides for the same contract. Such positions are offset even if the FCM did not offset them. If the FCM does not aggregate positions by contracts, those positions are reported in separate position messages “as is” because aggregation is an ambiguous operation and cannot be done on the CQG side.

The following example demonstrates this ambiguity: Consider three filled orders to buy 1 @ 100, buy 2 @ 105, and sell 1 @ 104 for the same contract. Matching the first with the last results in a position long 2 @ 105. Joining the first two fills as buy 3 @ average price 103.33 and matching it with the sell order results in a position long 2 @ 103.33. Matching one of the two fills @ 105 with the sell results in a position long 2 @ 102.5.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAP

1 Account String(32) Y Account ID (managed by the CQG gateway).

6 AvgPx Price Y Average position open price.

15 Currency Currency Y Currency 3-char ISO-4217 alphabetic code.

30 LastMkt String(4) N Market of execution for last fill, or an indication of the market where an order was routed. Market identification codes (ISO 10383) are used as exchange identifiers.

22 IDSource String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

32 LastShares Qty Y Quantity of the open position.

CQG FIX API Specification

Page 126: CQG FIX API Specification

Page 122

Tag Field Name Format Req Comments

48 SecurityID String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

54 Side Char Y Indicates the side of the order. Valid values:

1 = Long

2 = Short

55 Symbol String(64) Y Qualifier used to indicate the trading instrument of the CQG system for which orders are returned.

65 SymbolSfx String N Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

167 SecurityType String N Indicates type of security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

200 MaturityMonthYear String N Month and year of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

201 PutOrCall Int N Indicates whether an option is for a put or call. Valid values:

0 = Put

1 = Call

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

Application Messages: CQG Gateway to FIX Client

Page 127: CQG FIX API Specification

Page 123

Tag Field Name Format Req Comments

202 StrikePrice Price N Option strike price.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

205 MaturityDay Int N Day of the maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

207 SecurityExchange String N Market used to help identify a security.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

223 CouponRate Price N For fixed income. Coupon rate of the bond.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

325 UnsolicitedIndicator Boolean Y Set to Y if message is sent as a result of a subscription request or out of band configuration as opposed to a Position Request (UAN).

541 MaturityDate LocalMktDate N Date of maturity.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20119 ExchangeKeyID String(10) N Unique identifier, assigned by the CQG gateway, of exchange.

CQG FIX API Specification

Page 128: CQG FIX API Specification

Page 124

Tag Field Name Format Req Comments

50461 CFICode String N Indicates the type of security as per ISO 10962 standard.

For futures: FXXXXX

For options: OPXXXX, OCXXXX

For spreads: MXXXXX

For other instruments: XXXXXX

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

50762 SecuritySubType String N Sub-type qualification/identification of the SecurityType(167). For SecurityType(167) = "MLEG" CQG can provide the name of the futures strategy, such as Calendar, Crack, Butterfly, etc.

Reserved for contract identification used by custom FIX API vendor contract symbol mappings. It should not appear for FIX vendors that do not have it explicitly configured.

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20017 MarketValue Amt Y Market value of options and fixed income.

20018 OpenTradeEquity Amt Y Unrealized P&L for futures.

20021 UnrealizedPL Amt Y Unrealized P&L for options and fixed income.

20023 StatementDate LocalMktDate Y FCM statement date.

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

50715 ClearingBusinessDate LocalMktDate Y Clearing business date.

Application Messages: CQG Gateway to FIX Client

Page 129: CQG FIX API Specification

Page 125

Tag Field Name Format Req Comments

50724 PosReqType Int Y Identifier used to determine type of Position Reports to be sent.

Valid values:

0 = Position (FCM-confirmed)

1 = Trade (current day fills)

50730 SettlPrice Price Y Settlement price as per FCM statement.

Example: Position Report

8=FIX.4.29=14335=UAP1=40332=8.0000000054=155=F.US.DDU06325=N50710=s2550724=015=USD20017=1250.0000000020021=2062.5000000020018=800.000000006=2220.0000000050730=789.0000000050715=20080718-00:00:00.00020023=20080720-00:00:00.00010=131

CQG FIX API Specification

Page 130: CQG FIX API Specification

Page 126

Account Data Report (UAD) This message is sent by the CQG gateway in response to an Account Data Request (MsgType=UAR) message. A separate Account Data Report is sent for each account.

Aggregated balance information is reported in the account’s operational currency (converted using current CQG gateway currency rates).

BalanceGrp is present if IncludeBalanceGrp (20031) = Y in the Account Data Request. It contains one entry per individual balance record in that balance record’s currency, as reported by the FCM.

There can be multiple balance records for a single currency. All components of an individual balance record are not reported by every FCM - TotalEndingCashBalance is most likely available, but other components (e.g. TotalAccountValue and CashExcess) may not be available and could thus be reported as 0.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UAD

1 Account String(32) Y Account ID (managed by the CQG gateway).

15 Currency Currency N Account operational currency 3-char ISO-4217 alphabetic code.

325 UnsolicitedIndicator Boolean Y Set to Y if message is sent as a result of a subscription request or out-of-band configuration as opposed to an Account Data Request (UAR).

20003 AcctReqID String(64) Y If tag 325 (UnsolicitedIndicator) is N, AcctReqID is unique ID provided by the FIX Client in corresponding Account Data Request (UAR) message. If tag 325 (UnsolicitedIndicator) is Y, AcctReqID is unique ID of report series generated by the CQG gateway.

20010 AccountName String N Symbolic name of account.

20011 AsOfDate UTC Timestamp

N Last FCM clearing date.

20012 CashExcess Amt N Account cash excess.

Application Messages: CQG Gateway to FIX Client

Page 131: CQG FIX API Specification

Page 127

Tag Field Name Format Req Comments

20013 CollateralOnDeposit Amt N Total amount of funds on collateral deposit.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20015 InitialMarginReqs Amt N Initial margin requirement for this account.

20016 MaintenanceMarginReqs Amt N Maintenance margin requirement for this account.

20017 MarketValue Amt N Market value of options and Fixed-Income.

20018 OpenTradeEquity Amt N Unrealized P&L for futures.

20019 TotalAccountValue Amt N Total funds amount on this account.

20020 TotalEndingCashBalance Amt N Total balance for this account as reported by FCM.

20021 UnrealizedPL Amt N Unrealized P&L for options and Fixed-Income.

20062 SalesSeriesNumber String(16) N Reserved for account sales series identification used by custom FIX API vendor. It should not appear for FIX vendors that do not have it explicitly configured.

50912 LastRptRequested Boolean N Indicates whether this message is the last report message in response to a request. Valid values:

N = Not last message (by default)

Y = Last message

Start of component block, expanded in line <BalanceGrp>

20061 NoBalances Int N Number of balances to follow; each represents one balance record for the account. All values are reported in the balance record’s currency, and ‘total’ values are total for that balance record (not for the entire account).

CQG FIX API Specification

Page 132: CQG FIX API Specification

Page 128

Tag Field Name Format Req Comments

20063 BalanceCurrency Currency C Currency of this balance record, 3-char ISO-4217 alphabetic code. Must be the first field in the repeating group. Required if NoBalances > 0.

20064 BalanceEndingCashBalance Amt N This balance record’s end cash balance.

20065 BalanceTotalAccountValue Amt N This balance record’s total account value.

20066 BalanceOpenTradeEquity Amt N This balance record’s unrealized P&L for futures.

20067 BalanceUnrealizedPL Amt N This balance record’s unrealized P&L for options and Fixed Income.

20068 BalanceMarketValue Amt N This balance record’s market value of options and Fixed Income.

20069 BalanceCashExcess Amt N This balance record’s cash excess.

20070 BalanceCollateralOnDeposit Amt N This balance record’s amount of funds on collateral deposit.

20071 BalanceInitialMarginReqs Amt N This balance record’s initial margin requirement.

20072 BalanceMaintenanceMarginReqs Amt N This balance record’s maintenance margin requirement.

End of component block, expanded in line <BalanceGrp>

Standard Trailer Y

Example: Account Data Report

8=FIX.4.29=31035=UAD49=CQG_Gateway56=fix_client34=752=20061123-11:26:32.5541=53320010=Nymex_Floor20014=CQGACCT15=USD20020=10000000.0000000020019=0.0000000020018=0.0000000020017=0.0000000020021=0.0000000020012=0.0000000020013=0.0000000020015=0.0000000020016=0.0000000020011=20000101-00:00:00.00020003=AR1325=N20061=2 20063=USD 20064= 10000000.0000000020065=0.0000000020066=0.0000000020067=0.0000000020068=0.0000000020069=0.0000000020070=0.00000

Application Messages: CQG Gateway to FIX Client

Page 133: CQG FIX API Specification

Page 129

00020071=0.0000000020072=0.0000000020063=EUR20064=0.0000000020065=0.0000000020066=0.0000000020067=0.0000000020068=0.0000000020069=0.0000000020070=0.0000000020071=0.0000000020072=0.0000000050912=Y10=142

CQG FIX API Specification

Page 134: CQG FIX API Specification

Page 130

Collateral Report (UBA) This message is sent by the CQG gateway in order to reply to Collateral Inquiry message (UBB). If the request was for all trader accounts, then a separate report is sent for every account.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UBA

50909 CollInquiryID String(64) Y* Identifier for the collateral inquiry this message is a reply to.

1 Account String(32) Y* Account ID (managed by the CQG gateway).

20043 TotalMarginReqs Amt Y Total Margin requirement for current account positions and working orders calculated by the CQG gateway.

20126 RealizedPL Amt Y Realized P/L for current account calculated by the CQG gateway.

20044 PurchasingPower Amt Y Available account funds including balance, realized profit (or loss), collateral, and credits. Note: OTE and NOV are not included, regardless of account risk parameters.

15 Currency Currency Y Currency 3-char ISO-4217 alphabetic code associated with the amount fields.

50912 LastRptRequested Boolean N Indicates whether this message is the last report message in response to a request. Valid values:

N = Not last message (by default)

Y = Last message

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

Standard Trailer Y

Application Messages: CQG Gateway to FIX Client

Page 135: CQG FIX API Specification

Page 131

Example: Collateral Report

8=FIX.4.29=13735=UBA49=CQG_Gateway56=CQG_Gateway34=857=TestFIX52=20110908-10:51:02.110 50909=CI1111=1017948220043=0.000020126=0.000020044=998431.250015=USD10=023

CQG FIX API Specification

Page 136: CQG FIX API Specification

Page 132

User Response (UBF) This message is based on User Response (BF) which first appears in FIX 4.4.

Note: we are not including Username (tag 553, required in FIX 4.4) because we didn’t include it in User Request (UBF).

Tag Field Name Format Req Comments

Standard Header Y MsgType = UBF

50923 UserRequestID String(64) Y Unique ID for this request as assigned by the FIX client and sent with the User Request.

50926 UserStatus Int Y Indicates the status of the user. Valid values:

5 = Password changed.

6 = Other (password not changed; see UserStatusText).

50927 UserStatusText String(64) N Text description associated with the password change response.

Standard Trailer

Example: User Response

8=FIX.4.29=5535=UBF50923=Request11350926=510=120

Application Messages: CQG Gateway to FIX Client

Page 137: CQG FIX API Specification

Page 133

Account Risk Parameters Report (URP)

This message is sent by the CQG gateway in response to an Account Risk Parameters Request (MsgType=URR) message. A separate Account Risk Parameters Report is sent for each account.

Tag Field Name Format Req Comments

Standard Header Y MsgType = URP

1 Account String(32) Y Account ID (managed by the CQG gateway).

325 UnsolicitedIndicator Boolean Y Set to Y if message is sent as a result of a subscription request or out of band configuration as opposed to an Account Risk Parameters Request (URR).

20003 AcctReqID String(64) Y If tag 325 (UnsolicitedIndicator) is N, AcctReqID is unique ID provided by the FIX Client in corresponding Account Risk Parameters Request (URR) message.

If tag 325 (UnsolicitedIndicator) is Y, AcctReqID is unique ID of report series generated by CQG gateway.

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20045 OteInPurchasingPower Char Y Indicates how OTE is included in Purchasing Power by CQG gateway for risk evaluation. Valid Values:

Y = OTE is always included.

O = Only negative OTE is included.

N = OTE is never included.

CQG FIX API Specification

Page 138: CQG FIX API Specification

Page 134

Tag Field Name Format Req Comments

20046 NovInPurchasingPower Char Y Indicates how NOV is included in Purchasing Power by CQG gateway for risk evaluation. Valid Values:

Y = NOV is always included.

O = only negative NOV is included.

N = NOV is never included.

20047 OteBidAsk Boolean Y Indicates whether bid/ask prices are used for OTE calculations.

20048 NovBidAsk Boolean Y Indicates whether bid/ask prices are used for NOV calculations.

20057 MarginEnabled Boolean Y Indicates whether Margin Subsystem is enabled for this account.

50912 LastRptRequested Boolean N Indicates whether this message is the last report message in response to a request. Valid values:

N = Not last message (by default)

Y = Last message

Standard Trailer Y

Example: Account Risk Parameters Report

8=FIX.4.29=9035=URP49=CQG_Gateway56=CQG_Gateway34=2552=20110908-10:56:55.6781=10179482 20003=320010=PSacct120014=SIMacct120045=Y20046=Y20047=Y20048=Y20057=Y50912=Y10=215

Application Messages: CQG Gateway to FIX Client

Page 139: CQG FIX API Specification

Page 135

Authorized Accounts Report (UZR)

This message is sent by the CQG gateway in response to an Authorized Accounts Request (UZS) message. It includes the list of CQG gateway accounts this trader is authorized to view or trade on.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZR

20034 RequestID String(64) Y Unique ID for the corresponding request as assigned by the FIX client.

50893 LastFragment Boolean Y Set to Y if this report contains the last fragment of results. Currently Y is the only valid value, as the CQG gateway does not fragment results (the entire list of authorized accounts is sent in one message).

Start of component block, expanded in line <AccountInfoGrp>

20058 NoAccounts Int N Number of accounts to follow.

1 Account String(32) C Account ID (managed by the CQG gateway). Must be the first field in the repeating group. Required if NoAccounts > 0.

20010 AccountName String C Symbolic name of account. Required if NoAccounts > 0.

20014 FCMAccountNumber String C FCM’s unique identifier for the account. Required if NoAccounts > 0.

20053 FCMID Int C CQG gateway ID of the account’s FCM. Required if NoAccounts > 0.

20059 FCMName String C Symbolic name of the account’s FCM. Required if NoAccounts > 0.

20060 ViewOnly Boolean C Set to ‘Y’ if this trader has view-only authority on this account (is not allowed to place orders, but can view orders and other account info). Set to “N” if this trader has full trading authority on this account. Required if NoAccounts > 0.

End of component block, expanded in line <AccountInfoGrp>

CQG FIX API Specification

Page 140: CQG FIX API Specification

Page 136

Tag Field Name Format Req Comments

Standard Trailer Y

Example: Authorized Accounts Report

8=FIX.4.29=19435=UZR20034=Request11350893=Y20058=21=1016892920010=Acct120014=PSaccountnumber20053=4020059=All PLs Simulator 20060=N 1=1017951820010=Acct2 20014=FCMAccountNumber2 20053=120059=FcmName20060=N10=153

Application Messages: CQG Gateway to FIX Client

Page 141: CQG FIX API Specification

Page 137

FCM Currency Rate Report (UZT)

This message is sent by the CQG gateway in response to an FCM Currency Rate Request (UZU) message. It includes the most recent currency rates available for the specified FCM.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZT

20034 RequestID String(64) Y Unique ID for the corresponding request as assigned by the FIX client.

50893 LastFragment Boolean Y Set to Y if this report contains the last fragment of results. Currently Y is the only valid value, as the CQG gateway does not fragment results (the entire list of currency rates is sent in one message).

Start of component block, expanded in line <CurrencyRateGrp>

20054 NoRates Int Y Number of currency rates to follow.

15 Currency Currency Y Source currency 3-char ISO-4217 alphabetic code.

Must be the first field in the repeating group.

20055 MasterCurrency Currency Y Target currency 3-char ISO-4217 alphabetic code.

20023 StatementDate LocalMktDate Y FCM statement date associated with this currency rate.

20056 CurrencyRate Price Y Rate to convert Currency (source) into MasterCurrency (target), i.e. <amount in Currency> * CurrencyRate = <amount in MasterCurrency>.

End of component block, expanded in line <CurrencyRateGrp>

Standard Trailer Y

CQG FIX API Specification

Page 142: CQG FIX API Specification

Page 138

Example: FCM Currency Rate Report

8=FIX.4.29=18835=UZT20034=Request11350893=Y20054=215=AUD20055=USD 20023=20110608-00:00:00.000 20056=0.88694300 15=ATS 20055=USD 20023=20110608-00:00:00.000 20056=0.09315931 10=030

Application Messages: CQG Gateway to FIX Client

Page 143: CQG FIX API Specification

Page 139

Allowed Feature Report (UZW)

This message is sent by the CQG gateway in response to an Allowed Feature Request (UZX) message. It describes features for which this trader is enabled. Currently only news providers are included, although the structure is generic and supports other feature types too.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZW

20034 RequestID String(64) Y Unique ID for the corresponding request as assigned by the FIX client.

50893 LastFragment Boolean Y Set to Y if this report contains the last fragment of results. Currently Y is the only valid value, as the CQG gateway does not fragment results (the entire list of allowed instruments is sent in one message).

Start of component block, expanded in line <EnablementGrp>

20038 NoEnablements Int N Number of enablements to follow.

20039 EnablementID Int C CQG gateway unique ID for the feature enablement. Must be the first field in the repeating group. Required if NoEnablements > 0.

20040 EnablementGroup Int C CQG gateway unique ID for the feature enablement group. Required if NoEnablements > 0. The only valid value:

3 = News provider.

20041 BillingGroupID Int C CQG’s billing group ID for this feature enablement. Required if NoEnablements > 0.

20042 BillingID Int C CQG’s billing ID for this feature enablement. Required if NoEnablements > 0.

End of component block, expanded in line <EnablementGrp>

Standard Trailer Y

CQG FIX API Specification

Page 144: CQG FIX API Specification

Page 140

Example: Allowed Feature Report

8=FIX.4.29=17835=UZW20034=Request11350893=Y20038=420039=320040=1020041=1020042=1620039=320040=1220041=2620042=120039=320040=1820041=2620042=720039=320040=3120041=2620042=1810=064

Application Messages: CQG Gateway to FIX Client

Page 145: CQG FIX API Specification

Page 141

Allowed Market Data Report (UZY)

This message is sent by the CQG gateway in response to an Allowed Market Data Request (UZZ) message. It describes instruments for which this trader is authorized to view market data. Instruments are identified using CQG symbology; this report does not support custom symbology. Important note: for options, only “P.” instruments are included, so client must assume that corresponding “C.” instruments are also allowed.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZY

20034 RequestID String(64) Y Unique ID for the corresponding request as assigned by the FIX client.

20035 RevisionTag UTC Timestamp

Y RevisionTag for these enablements. If client wishes to cache enablements, it can provide this value in a future Allowed Market Data Request. If the response arrives with the same value, the client’s cached data is current (and the response won’t include any enablements). If the response arrives with a different value, the client’s cached data is not current (and the response contains all current enablements. Client should completely replace its cached data with this data).

50893 LastFragment Boolean Y Set to Y if this report contains the last fragment of results. Currently Y is the only valid value, as the CQG gateway does not fragment results (the entire list of allowed instruments is sent in one message).

20037 NoAllowedInstr Int N Number of instruments to follow.

55 Symbol String(64) C Identifier for the instrument. CQG symbols are always used here. Note this is a CQG instrument, not a specific tradable contract. e.g. “F.US.EP” means that market data is authorized for all EP futures, and “P.US.EP” means that market data is authorized for all EP options (both calls and puts, all strikes). Must be the first field in the repeating group. Required if NoAllowedInstr > 0.

Standard Trailer Y

CQG FIX API Specification

Page 146: CQG FIX API Specification

Page 142

Example: Allowed Market Data Report

8=FIX.4.29=4182135=UZY20034=Request11350893=Y20035=20110819-09:42:27.89320037=1055=F.US.CR55=P.US.CR55=F.US.CT55=P.US.CT55=F.US.YG55=P.US.YG55=F.US.YGS155=F.US.YGS255=F.US.YGS355=F.US.YGS410=244

Application Messages: CQG Gateway to FIX Client

Page 147: CQG FIX API Specification

Page 143

Automatic Order Update (UZV)

This is a CQG-defined message not based on any existing FIX message.

CQG gateway sends this dedicated short message to report trailing price changes. In the future, it may be expanded to support other types of frequent server-initiated automatic updates (at that time, PeggedStopPx would become conditional rather than required).

Clients must be prepared to identify the affected order using OrderID (37) because ClOrdId (11) is not provided in this message. Clients must also be prepared to receive Automatic Order Update messages before the first Execution Report on a given order. If the specified order is unknown to the client, it must ignore the message.

Note: Automatic Order Updates are not guaranteed to be available for resend request responses. Execution Reports always contain the latest pegged prices for the order.

Tag Field Name Format Req Comments

Standard Header Y MsgType = UZV

1 Account String(32) Y Account ID (managed by CQG gateway)

37 OrderID String(32) Y Unique identifier for order as assigned by CQG gateway. Matches value sent in most recent Execution Report (8). Note that an automatic order update does not change order’s OrderID. These updates are not considered full cancel/replaces, so don’t require new OrderIDs.

20010 AccountName String N Symbolic name of account.

20014 FCMAccountNumber String N Unique identifier of the account of the FCM.

20052 PeggedStopPx Price Y Provides the Stop price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

50839 PeggedPrice Price C Conditionally required if OrdType=4 (Stop limit).

Provides the Limit price of the order, as adjusted by CQG gateway according to Trailing exec instructions.

Standard Trailer

CQG FIX API Specification

Page 148: CQG FIX API Specification

Page 144

Example: Automatic Order Update

8=FIX.4.29=7035=UZV1=1016892937=62851000220052=1161.7500000010=150

Application Messages: CQG Gateway to FIX Client

Page 149: CQG FIX API Specification

Page 145

News (B)

The CQG gateway uses this message to report environment events to clients.

Tag Field Name Format Req Comments

Standard Header Y MsgType = B

Start of component block, expanded in line <LinesOfTextGrp>

33 LinesOfText Int Y Specifies the number of repeating lines of text specified.

58 Text String Y Repeating field, number of instances defined in LinesOfText (33).

End of component block, expanded in line < LinesOfTextGrp >

42 OrigTime LocalMktDate N Time of message origination.

148 Headline String Y Specifies the headline text.

Standard Trailer Y

Example: News

8=FIX.4.29=43135=B49=CQG_Gateway56=fix_client34=1257=Test FIX52=20120413-08:34:05.08542=20120413-08:33:33.117148=Order Routing Maintenance Scheduled. General information message from Customer Service. Expires at: 20120413-08:53:33.117.33=158=CQG Operations will be taking down the order routing system for maintenance at 19:15 (24 time with zone). Maintenance is expected to last until 19:30.10=208

CQG FIX API Specification

Page 150: CQG FIX API Specification

Page 146

Appendix A: Reject Codes

The following table lists reject codes for tags CxlRejReason (102) and OrdRejReason (103).

Code Description

0 Reject code is undefined.

1 Order rejected for a non-predefined reason, refer to actual message for details.

2 This account is not authorized to trade this commodity.

3 Commodity is disabled for trading at this time.

4 This commodity is not available for trading with this order type at this time.

5 Contingent orders must have both orders routed to the same execution system, but that was not possible for these orders.

6 Cannot route the order at this time.

7 Requested order quantity is not a multiple of the block size for this account.

8 Trader is not authorized for this account.

9 This account is not authorized to trade short options.

10 This account is not authorized to trade options.

11 The order is for a contract that is not configured. Please contact customer support for assistance.

CQG FIX API Specification

Page 151: CQG FIX API Specification

Page 147

Code Description

12 There is no balance record for this account. Please contact your FCM.

13 The requested trade exceeds the account single trade margin limit.

14 The account loss today (OTE) is greater than the loss limit.

15 The margin for this order, if filled, plus the margin for all current fills and positions, exceeds available cash.

16 Working orders worst profit/loss scenario exceeds available margin.

17 This account is only allowed to liquidate open positions.

18 Cannot process the order. Check message for additional error code.

19 Unable to evaluate premium for this option.

20 The order was in a state that cannot be modified.

21 The order was in a state that prohibited a cancel request.

22 The duration for the order type is not supported.

23 Order rejected because linked order was rejected.

24 The order to be canceled was not found in the database.

70 Order is unknown to exchange or exchange connection.

71 Order already rejected.

72 Too late to cancel.

73 Order parameters are invalid.

74 Specified market is not valid or is closed.

CQG FIX API Specification

Page 152: CQG FIX API Specification

Page 148

Code Description

75 Order was cancelled externally.

76 Order is rejected by exchange officials.

77 Order is expired.

78 Order contains unsupported features.

79 Unable to deliver order.

80 Exchange is in trading halt mode.

81 The requested trade exceeds the account single trade size limit.

82 The requested trade exceeds the account commodity position limit.

83 This account is not authorized to trade futures.

84 Order rejected because price conversion failed.

85 Order type may not be modified for synthetic orders.

86 Trigger price may not be modified for activated synthetic orders.

90 The order has expired in database.

101 Calculated margin for current positions exceeds available funds.

102 Modification request is inside contingent order.

103 Filled quantity for the order is greater than requested by modification request.

104 Margin evaluation unavailable for the order's exchange. Please contact your FCM.

105 No current ask available.

Appendix A: Reject Codes

Page 153: CQG FIX API Specification

Page 149

Code Description

106 No current bid available.

107 Worst-case position exceeds account's per-contract limit.

108 Worst-case position exceeds account's limit.

109 Cannot evaluate risk for the account due to risk parameters missing.

110 Current balance for this account is negative.

111 The account has not been correctly configured.

112 The order type is not allowed for the commodity.

113 Good Till Date must be less than or equal to the last trading date of this contract.

114 Average price for position is not available.

115 This order was rejected together with first order from OPO pair.

116 This order was rejected together with second order from OPO pair.

120 Order expiration time is earlier than activation time.

121 Order expiration time is in the past.

122 Cannot calculate order expiration time.

123 Too late to modify the order.

124 Master account has negative purchasing power. Trading is not allowed.

125 Modification of trailing offset for trailing stop/stop limit is not allowed.

126 Order cannot be activated.

CQG FIX API Specification

Page 154: CQG FIX API Specification

Page 150

Code Description

127 New order quantity must be greater than zero.

128 Cannot save the order because another order with the same Client Order ID already exists.

129 Cannot find original order. Please check Original Client Order ID (OrigClOrdID).

130 The order was rejected because account is locked for migration.

131 The order was rejected because demo account is expired.

132 This order cannot be modified because it is a part of an active synthetic strategy order.

133 This order cannot be modified or cancelled because it is a part of an active synthetic strategy order.

134 Market synthetic strategy order cannot be modified.

135 Synthetic strategy order cannot be parked.

136 Inactive order cannot be used in a compound one.

137 Inactive compound order cannot be modified.

138 Synthetic strategy trading is disabled for this order's route.

139 Order rate has exceeded the configured maximum for the account. Please try again later.

140 Order is not within the exchange risk parameters set for this firm.

141 Order is not within the risk parameters set for this firm.

142 Order cannot be placed outside omnibus account trading times.

143 Order size is invalid (zero or negative).

144 Order visible size is invalid (less than 0 or more then order size).

Appendix A: Reject Codes

Page 155: CQG FIX API Specification

Page 151

Code Description

145 Synthetic strategy trading disabled for this order's route.

146 Worst-case position exceeds account’s per-instrument limit.

147 The order exceeds the trade size limit for the commodity.

148 The order exceeds the trade size limit for the instrument.

149 Delta daily loss limit has been reached.

150 Order cancelled by exchange after freeze.

151 The order size must be a multiple of increment quantity.

152 Unable to evaluate risk for the strategy order because risk data is not available for one or more accounts.

153 The account is not mapped for the trader.

154 Insufficient funds. Required cash exceeds the available one (balance + collateral).

155 The execution size of the working leg of a strategy order cannot be zero.

156 Price is not valid for this instrument.

157 Trail Offset is not valid for this order.

158 Exchange Request Throttle

159 Internal Request Throttle

160 Order price already in market

163 The Account has no balances configured

164 Visible size for the order cannot be less than 0

CQG FIX API Specification

Page 156: CQG FIX API Specification

Page 152

Code Description

165 Visible size for the order cannot be greater than the total size

166 Visible size for the order cannot be less than 1

167 Minimum visible size for the order cannot be less than 0

168 Minimum visible size for the order cannot be greater than the visible size

169 This order type can be used only with synthetic strategies

170 ActiveAt order activation started much later than activation time.

171 Only Iceberg orders may have visible size set.

172 Only Iceberg orders may have minimum visible size set.

173 You cannot modify this order under the current route configuration. Please contact your FCM.

174 Order is canceled by throttle

175 Specific margin value is not set for some of the commodities in the account's portfolio.

176 Trader is not authorized on specified commodity

177 Offset between limit and stop prices can't be negative for native stop-limit orders.

178 Order type can't be changed.

179 The order was changed from mFix messenger plugin.

180 Order price is outside the allowed range for contract.

181 Order has been replaced.

182 Order is not within the risk parameters set for the customer's account.

Appendix A: Reject Codes

Page 157: CQG FIX API Specification

Page 153

Code Description

183 Aggressive order was not matched.

184 Crossed market for passive order.

CQG FIX API Specification