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.

TagField NameReq’dDescription
35Standard Message HeaderYMsgType= G
97PossResendN
  • Y = Indicates an application level resend. If the ClOrdID does not indicate an already pending Cancel/Replace, the cancel is treated as normal. If ClOrdID does indicate an already pending Cancel/Replace then the resent Cancel/Replace is ignored.
  • N = (default) Indicates a new cancel.
1AccountNIgnored - value preserved from original order
11ClOrdIdY
  • Unique ID chosen by TPH. 20 characters or less. Characters in ASCII range 33-126 are allowed, except for comma, semicolon, and pipe.
  • A leading tilde (~) cannot be sent on any ClOrdId and will result in a reject. These are reserved for internal use by CFE and could be received as a result of a system-generated ClOrdId.
  • Duplicate order ClOrdIds will be rejected (or ignored if PossResend= Y ).
41OrigClOrdIDN
  • ClOrdID of the order to replace. In the case of multiple changes to a single order, this will be the ClOrdID of the most recent accepted change.
  • OrderID must be sent if OrigClOrdID is not.
37OrderIdN
  • OrderId of the order to replace as supplied by CFE on the associated order acknowledgement. The OrderId is constant even in the event of multiple changes to a single order.
  • OrigClOrdID must be sent if OrderId is not. If both the OrigClOrdID and OrderId are supplied, OrderId is used.
60TransactTimeYTime Cancel/Replace initiated/released.
54SideNMust match original order.
38OrderQtyYNumber of contracts for order. This will modify the OrderQty of the current order; it does not directly set the remaining quantity.
40OrdTypeN
  • Defaults to original order if not sent.
  • 1 = Market
  • 2 = Limit
  • 4 = Stop Limit (Futures only)
  • May replace Limit with Market and vice versa, but otherwise must match original order (or not sent).
44PriceYLimit Price. Order rejected if priced finer than the minimum trading increment for the symbol.
99StopPxNDefaults to original order if not sent
9619CancelOrigOnRejectN
  • Default is configurable per port (N if not configured).
  • N = Leave original order alone.
  • Y = Cancel original order if replacement fails (an unsolicited cancel report will be sent for original order in this case).
1028ManualOrderIndicatorY
  • Y = Manual order entry
  • N = Automated order entry
1031CustOrderHandlingInstN
  • Execution source code provided during order entry to describe broker service. A default value can be set using the "Default Customer Order Handling Instruction" port attribute.
  • W = Desk (high touch)
  • Y = Electronic (default)
  • C = Vendor-provided platform, billed by Executing Broker
  • G = Sponsored Access via Exchange API or FIX, provided by executing broker
  • H = Premium algorithmic trading provider, billed by executing broker
  • D = Other, including other-provided screen
25004OEOIDYIdentifies 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.
21097FrequentTraderIDN
  • Supplemental customer identifier used for billing related programs.
  • 6 character alphanumeric (0-9, A-Z, or a-z ) value.
Standard Message TrailerY
Cboe Titanium Cboe Futures Exchange FIX Specification - Order Cancel/Replace Request | Cboe