| 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) |