Appendix D: Order State Change Matrices

B.1.c — 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 Order Qty Cum Qty Leaves Qty Last Qty Comment
1 New Order(X)       10000        
2   Execution(X) Rejected Rejected 10000 0 0 0 If order is rejected
2   Execution(X) New New 10000 0 10000 0  
3   Execution(X) Trade Partially Filled 10000 2000 8000 2000 Execution for 2000
4 Cancel Request(Y,X)       10000        
4   Execution(X) Trade Partially Filled 10000 5000 5000 3000 Execution for 3000. This execution passes the cancel request on the connection
5   Cancel Reject (Y,X)   Partially Filled         If request is rejected
5   Execution (Y,X) Pending Cancel Pending Cancel 10000 5000 5000 0 "Pending cancel" order status takes precedence over "partially filled" order status
6   Execution(X) Trade Pending Cancel 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         Cancel request rejected – CxlRejectReason = 0 (too late to cancel)

Back to Appendix D: Order State Change Matrices