Order Cancel/Replace Request
Price, OrderQty, OrdType, StopPx, ManualOrderIndicator, OEOID, CustOrderHandlingInst, and FrequentTraderID may be adjusted. Modifies will result in a loss of time priority unless (1) they have no change in Price and also reduce OrderQty or (2) they change the StopPx for a stop order that has not been elected. OrdType may be adjusted from Limit to Market.
Time priority is maintained on a cancel/replace order in the following cases:
- A decrease in OrderQty with no other changes.
- A decrease in OrderQty, a change to the OEOID and/or the ManualOrderIndicator, and no other changes.
- A decrease in OrderQty and/or a change to the StopPx on an unelected stop order with no other changes.
- A decrease in the OrderQty and/or a change to the StopPx on an unelected stop order, a change to the OEOID and/or the ManualOrderIndicator, and no other changes.
Other fields will be ignored, and the value from the original order will be reused.
Changes in OrderQty result in an adjustment of the current order’s OrderQty. The new OrderQty does not directly replace the current order’s LeavesQty; rather, a delta is computed from the current OrderQty and the replacement OrderQty. This delta is then applied to the current LeavesQty. If the resulting LeavesQty is less than or equal to zero the order is cancelled. This results in safer behavior when the replace request overlaps partial fills for the current order, leaving the TPH in total control of the exposure of the order.
A Cancel/Replace should not be issued until the ack for the previous Cancel/Replace has been received for that order (or the New Order Ack for the first Cancel/Replace). The FIX handler will reject a new Cancel/Replace if it has not seen the prior Cancel/Replace return from the Matching Engine.
Cancel/Replace requests that merely reduce OrderQty may be overlapped if the existing ClOrdID is re-used. This is the only case where re-use of the existing ClOrdID is allowed.
A maximum of 1,679,615 Cancel/Replace requests may be made to a single order each trading day. Once the 1,679,615th modification is made, then the next user-generated message on the order should be an Order Cancel Request.
| Tag | Field Name | Req’d | Description |
|---|---|---|---|
| 35 | Standard Message Header | Y | MsgType= G |
| 97 | PossResend | N |
|
| 1 | Account | N | Ignored - value preserved from original order |
| 11 | ClOrdId | Y |
|
| 41 | OrigClOrdID | N |
|
| 37 | OrderId | N |
|
| 60 | TransactTime | Y | Time Cancel/Replace initiated/released. |
| 54 | Side | N | Must match original order. |
| 38 | OrderQty | Y | Number of contracts for order. This will modify the OrderQty of the current order; it does not directly set the remaining quantity. |
| 40 | OrdType | N |
|
| 44 | Price | Y | Limit Price. Order rejected if priced finer than the minimum trading increment for the symbol. |
| 99 | StopPx | N | Defaults to original order if not sent |
| 9619 | CancelOrigOnReject | N |
|
| 1028 | ManualOrderIndicator | Y |
|
| 1031 | CustOrderHandlingInst | N |
|
| 25004 | OEOID | Y | Identifies the Order Entry Operator responsible for this message. Minimum and maximum length is 3 and 18 characters, respectively. Characters in ASCII range 33-126 are allowed, except for comma, semicolon, and pipe. |
| 21097 | FrequentTraderID | N |
|
| Standard Message Trailer | Y |





