Appendix D: Order State Change Matrices

D5 – Cancel request issued for an order that becomes filled before cancel request can be accepted

Time Message Received (ClOrdID, OrigClOrdID) Message Sent (ClOrdID, OrigClOrdID) Exec Type OrdStatus Exec Trans Type Order Qty Cum Qty Leaves Qty Last Shares Comment
1 New Order(X) 10000
2 Execution(X) Rejected Rejected New 10000 0 0 0 If order is rejected
2 Execution(X) New New New 10000 0 10000 0
3 Execution(X) Partial Fill Partially Filled New 10000 2000 8000 2000 Execution for 2000
4 Cancel Request(Y,X) 10000
4 Execution(X) Partial Fill Partially Filled New 10000 5000 5000 3000 Execution for 3000. This execution passes the cancel request on the connection
5 Cancel Reject (Y,X) Partially Filled 10000 If request is rejected
5 Execution (Y,X) Pending Cancel Pending Cancel New 10000 5000 5000 0 "Pending cancel" order status takes precedence over "partially filled" order status
6 Execution(X) Fill Pending Cancel New 10000 10000 0 5000 Execution for 5000 whilst order is pending cancel. "Pending cancel" order status takes precedence over "filled" order status
7 Cancel Reject (Y,X) Filled 10000 Cancel request rejected – CxlRejectReason = 0 (too late to cancel)

Back to Appendix D: Order State Change Matrices