List Status 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 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 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 (M), which is the other usual reason to send this message.
Clients should be prepared to receive multiple List Status messages about a single list (compound order). To avoid unnecessary messages, the CQG gateway usually sends only one List Status 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 message reflecting the latest structure of the list.
Tag |
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. Valid value: 1 | |
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. 5002 = Independent. This is a CQG-specific value, not supported in FIX 5.0 SP1. | |
83 |
RptSeq |
Int |
Y |
Sequence number of this report message. 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. |
➔ |
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.2 | 9=220 | 35=N | 49=CQG_Gateway | 56=CQG_Gateway | 34=140 | 57=Test FIX | 52=20110726-12:54:27.834 | 429=1 | 66=20110726125427209_521 | 20036=1225518 | 82=1 | 431=2 | 51385=1 | 83=1 | 60=20110726-12:54:27.330 | 68=2 | 73=2 | 67=0 | 20029=619330037 | 67=1 | 20029=619330038 | 10=185 |