The following matrices are included to clarify the sequence of messages and the status of orders involved in the submission and processing of new orders, executions, cancel requests, cancel/replace requests and order status requests. The matrices have been arranged in groups as follows:
Ref |
Group |
Description |
D1 |
Vanilla |
Filled order |
D2 |
Vanilla |
Part-filled day order, done for day |
D3 |
Cancel |
Cancel request issued for a zero-filled order |
D4 |
Cancel |
Cancel request issued for a part-filled order � executions occur whilst cancel request is active |
D5 |
Cancel |
Cancel request issued for an order that becomes filled before cancel request can be accepted |
D6 |
Replace to increase qty |
Zero-filled order, cancel/replace request issued to increase order qty |
D7 |
Replace to increase qty |
Part-filled order, followed by cancel/replace request to increase order qty, execution occurs whilst order is pending replace |
D8 |
Replace to increase qty |
Filled-order followed by cancel/replace request to increase order quantity |
D9 |
Replace not for qty change |
Cancel/replace request (not for quantity change) is rejected as a fill has occurred |
D10 |
Replace to decrease qty |
Cancel/replace request sent whilst execution is being reported � the requested order qty exceeds the cum qty . Order is replaced then filled |
D11 |
Replace to decrease qty |
Cancel/replace request sent whilst execution is being reported � the requested order qty equals the cum qty � order qty is amended to cum qty |
D12 |
Replace to decrease qty |
Cancel/replace request sent whilst execution is being reported � the requested order qty is below cum qty � order qty is amended to cum qty |
D13 |
Replace - sequence |
One cancel/replace request is issued which is accepted � another one is issued which is also accepted |
D14 |
Replace - sequence |
One cancel/replace request is issued which is rejected before order becomes pending replace � then another one is issued which is accepted |
D15 |
Replace - sequence |
One cancel/replace request is issued which is rejected after it is in pending replace � then another one is issued which is accepted |
D16 |
Replace - chaining |
One cancel/replace request is issued followed immediately by another � broker processes sequentially |
D17 |
Replace - chaining |
One cancel/replace request is issued followed immediately by another � broker rejects the second as order is pending replace |
D18 |
Unsolicited reports |
Telephoned order |
D19 |
Unsolicited reports |
Unsolicited cancellation of a part-filled order |
D20 |
Unsolicited reports |
Unsolicited replacement of a part-filled order |
D21 |
Unsolicited reports |
Unsolicited reduction of order quantity by sell side |
D22 |
Order reject |
Order rejected due to duplicate ClOrdID |
D23 |
Order reject |
Order rejected because the order has already been verbally submitted |
D24 |
Status |
Order status request rejected for unknown order |
D25 |
Status |
Status request followed by "Nothing done". |
D26 |
Status |
Order sent, immediately followed by a status request. Subsequent status requests sent |
D27 |
GT |
GTC order partially filled, restated (renewed) and partially filled the following day |
D28 |
GT |
GTC order with partial fill, a 2:1 stock split then a partial fill and fill the following day |
D29 |
GT |
GTC order partially filled, restated(renewed) and canceled the following day |
D30 |
GT |
GTC order partially filled, restated(renewed) followed by replace request to increase quantity |
D31 |
Resend |
Poss resend |
D32 |
TIF |
Fill or kill order that cannot be filled |
D33 |
TIF |
Immediate or Cancel order that cannot be immediately hit |
D34 |
Execution correct/cancel |
Filled order, followed by correction and cancellation of executions |
D35 |
Execution correct/cancel |
A cancel of a partially filled order followed by an execution cancel(bust) and new execution. |
D36 |
Execution correct/cancel |
GTC order partially filled, restated (renewed) and partially filled the following day, with corrections of quantity on both executions. |
D37 |
Stopped/Guarantee |
A stopped (execution price guarantee) report followed by execution. |
The Table below shows which state transitions have been illustrated by the matrices in this Appendix (marked with an asterisk). The row represents the current value of OrdStatus and the column represents the next value as reported back to the buy-side via an execution report or order cancel reject message. Next to each OrdStatus value is its precedence � this is used when the order exists in a number of states simultaneously to determine the value that should be reported back. Note that absence of a scenario should not necessarily be interpreted as meaning that the state transition is not allowed:
OrdStatus (precedence value) |
New (2)
|
Partially Filled (4) |
Filled (8) |
Done For Day (10) |
Pending Cancel (12) |
Pending Replace (11) |
Replaced (3) |
Canceled (5) |
Rejected (2) |
Stopped (7) |
Pending New (2) |
* |
|
|
|
|
|
|
|
* |
|
New (2) |
* |
* |
* |
* |
* |
* |
* |
|
* |
* |
Partially Filled (4) |
|
* |
* |
* |
* |
* |
|
* |
|
|
Filled (8) |
|
* |
* |
|
|
* |
|
|
|
|
Done for Day (10) |
|
* |
|
|
|
|
|
|
|
|
Pending Cancel (12) |
* |
* |
* |
|
* |
|
|
* |
|
|
Pending Replace (11) |
* |
* |
* |
|
|
* |
* |
* |
|
|
Replaced (3) |
|
* |
|
|
|
|
|
|
|
|
Canceled (5) |
|
|
|
|
|
|
|
|
|
|
Rejected (2) |
|
|
|
|
|
|
|
|
|
|
Stopped (7) |
|
* |
|
|
|
|
|
|
|
|
How to read the Order State Change Matrices:
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 by sales |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
0 |
If order is rejected by trader/exchange |
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
Execution of 2000
|
4 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3000 |
7000 |
1000 |
Execution of 1000
|
5 |
|
Execution(X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
7000 |
Execution of 7000 |
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 of 2000 |
4 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3000 |
7000 |
1000 |
Execution of 1000
|
5 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
3000 |
0 |
0 |
Assuming day order. See other examples which cover GT orders |
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 |
Cancel Request(Y,X) |
|
|
|
|
10000 |
|
|
|
|
4 |
|
Cancel Reject (Y,X) |
|
New |
|
10000 |
|
|
|
If rejected by salesperson |
4 |
|
Execution (Y,X) |
Pending Cancel |
Pending Cancel |
New |
10000 |
0 |
10000 |
0 |
|
5 |
|
Cancel Reject (Y,X) |
|
New |
|
10000 |
|
|
|
If rejected by trader/exchange |
5 |
|
Execution (Y,X) |
Canceled |
Canceled |
New |
10000 |
0 |
0 |
0 |
|
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) |
Partial Fill |
Pending Cancel |
New |
10000 |
6000 |
4000 |
1000 |
Execution for 1000 whilst order is pending cancel � �pending cancel� order status takes precedence over �partially filled� order status |
7 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
If request is rejected |
7 |
|
Execution (Y,X) |
Canceled |
Canceled |
New |
10000 |
6000 |
0 |
0 |
�Canceled� order status takes precedence over �partially filled� order status |
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) |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
Replace Request(Y,X) |
|
|
|
|
11000 |
|
|
|
Request to increase order qty to 11000 |
4 |
|
Cancel Reject (Y,X) |
|
New |
|
10000 |
|
|
|
If request is rejected by salesperson |
4 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
0 |
10000 |
0 |
|
5 |
|
Cancel Reject (Y,X) |
|
New |
|
10000 |
|
|
|
If rejected by trader/exchange |
5 |
|
Execution (Y,X) |
Replace |
Replaced |
New |
11000 |
0 |
11000 |
0 |
�Replaced� order status takes precedence over �new� order status |
6 |
|
Execution (Y) |
Partial Fill |
Partially Filled |
New |
11000 |
1000 |
10000 |
1000 |
Execution for 1000 |
7 |
|
Execution (Y) |
Partial Fill |
Partially Filled |
New |
11000 |
3000 |
8000 |
2000 |
Execution for 2000 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
12000 |
|
|
|
Request increase in order quantity to 12000 |
5 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
If request is rejected |
5 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
1000 |
9000 |
0 |
�Pending replace� order status takes precedence over �partially filled� order status |
6 |
|
Execution(X) |
Partial Fill |
Pending Replace |
New |
10000 |
1100 |
8900 |
100 |
Execution for 100 before cancel/replace request is responded to |
7 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
If request is rejected |
7 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
12000 |
1100 |
10900 |
0 |
�Partially filled�� order status takes precedence over �replaced� order status |
8 |
|
Execution(Y) |
Fill |
Filled |
New |
12000 |
12000 |
0 |
10900 |
Execution for 10900 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
10000 |
Execution for 10000 |
4 |
Replace Request(Y,X) |
|
|
|
|
12000 |
|
|
|
Request increase in order quantity to 12000 |
5 |
|
Cancel Reject (Y,X) |
|
Filled |
|
10000 |
|
|
|
If request is rejected |
5 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
10000 |
0 |
0 |
�Pending replace� order status takes precedence over �partially filled� order status |
6 |
|
Cancel Reject (Y,X) |
|
Filled |
|
10000 |
|
|
|
If request is rejected |
6 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
12000 |
10000 |
2000 |
0 |
�Partially filled� order status takes precedence over �replaced� order status. |
7 |
|
Execution(Y) |
Fill |
Filled |
New |
12000 |
12000 |
0 |
2000 |
Execution for 2000 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
10000 |
|
|
|
Assume in this scenario that client does not wish to increase qty (e.g. client wants to amend limit price) |
4 |
|
Execution (X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
9000 |
Execution for 9000 � the replace request message and this execution report pass each other on the connection |
5 |
|
Cancel Reject (Y,X) |
|
Filled |
|
10000 |
|
|
|
CxlRejectReason = 0 (too late to cancel) |
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 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request a decrease order quantity to 8000 (leaving 7000 open) |
4 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1500 |
8500 |
500 |
Execution for 500 sent. Replace request and this execution report pass each other on the connection |
5 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
If request is rejected by salesperson |
5 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
1500 |
8500 |
0 |
�Pending replace� order status takes precedence over �partially filled� order status |
6 |
|
Execution(X) |
Partial Fill |
Pending Replace |
New |
10000 |
1600 |
8400 |
100 |
Execution for 100 occurs before cancel/replace request is accepted |
7 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
If request is rejected by trader/exchange |
7 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
8000 |
1600 |
6400 |
0 |
�Partially filled� order status takes precedence over �replaced� order status. Replace is accepted as requested order qty exceeds cum qty |
8 |
|
Execution (Y) |
Fill |
Filled |
New |
8000 |
8000 |
0 |
6400 |
Execution for 6400. |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
Replace Request(Y,X) |
|
|
|
|
7000 |
|
|
|
Client wishes to amend order qty to 7000 shares |
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
7000 |
3000 |
7000 |
Execution for 7000 - the replace message and this execution report pass each other on the connection |
4 |
|
Execution (Y,X) |
Replace |
Filled |
New |
7000 |
7000 |
0 |
0 |
The replace request is interpreted as requiring the balance of the order to be canceled � the �filled� order status takes precedence over �canceled� or �replaced� |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
Replace Request(Y,X) |
|
|
|
|
7000 |
|
|
|
Client wishes to amend order qty to 7000 shares |
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
8000 |
2000 |
8000 |
Execution for 8000 - the replace message and this execution report pass each other on the connection |
4 |
|
Execution (Y,X) |
Replace |
Filled |
New |
8000 |
8000 |
0 |
0 |
The replace request is interpreted as requiring the balance of the order to be canceled � the �filled� order status takes precedence over �canceled� or �replaced� |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request decrease in order quantity to 8000, leaving 7000 open |
5 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
1000 |
9000 |
0 |
�Pending replace� order status takes precedence over �partially filled� order status |
6 |
|
Execution(X) |
Partial Fill |
Pending Replace |
New |
10000 |
1500 |
8500 |
500 |
Execution for 500 |
7 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
8000 |
1500 |
6500 |
0 |
�Partially filled� order status takes precedence over �replaced� order status |
8 |
|
Execution (Y) |
Partial Fill |
Partially Filled |
New |
8000 |
3500 |
4500 |
2000 |
Execution for 2000 |
9 |
Replace Request(Z,Y) |
|
|
|
|
6000 |
|
|
|
Request decrease in order quantity to 6000, leaving 2500 open |
10 |
|
Execution (Z,Y) |
Pending Replace |
Pending Replace |
New |
8000 |
3500 |
4500 |
0 |
|
11 |
|
Execution (Z,Y) |
Replace |
Partially Filled |
New |
6000 |
3500 |
2500 |
0 |
�Partially filled� order status takes precedence over �replaced� order status |
12 |
|
Execution(Z) |
Fill |
Filled |
New |
6000 |
6000 |
0 |
2500 |
Execution for 2500 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request decrease in order quantity to 8000, leaving 7000 open |
5 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
Request is rejected |
6 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1500 |
8500 |
500 |
Execution for 500 |
7 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3500 |
6500 |
2000 |
Execution for 2000 |
8 |
Replace Request(Z,X) |
|
|
|
|
6000 |
|
|
|
Request decrease in order quantity to 6000, leaving 2500 open. Note that OrigClOrdID = X |
9 |
|
Execution (Z,X) |
Pending Replace |
Pending Replace |
New |
10000 |
3500 |
6500 |
0 |
Note that OrigClOrdID = X |
10 |
|
Execution (Z,X) |
Replace |
Partially Filled |
New |
6000 |
3500 |
2500 |
0 |
Note that OrigClOrdID = X |
11 |
|
Execution(Z) |
Partial Fill |
Partially Filled |
New |
6000 |
5000 |
1000 |
1500 |
Execution for 1500 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request decrease in order quantity to 8000, leaving 7000 open |
5 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
|
10000 |
1000 |
9000 |
0 |
|
6 |
|
Execution(X) |
Partial Fill |
Pending Replace |
New |
10000 |
1500 |
8500 |
500 |
Execution for 500. �Pending replace� order status takes precedence over �partially filled� order status |
7 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
Request is rejected (e.g. by trader/exchange) |
8 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3500 |
6500 |
2000 |
Execution for 2000 |
9 |
Replace Request(Z,X) |
|
|
|
|
6000 |
|
|
|
Request decrease in order quantity to 6000, leaving 2500 open. Note that OrigClOrdID = X |
10 |
|
Execution (Z,X) |
Pending Replace |
Pending Replace |
New |
10000 |
3500 |
6500 |
0 |
|
11 |
|
Execution (Z,X) |
Replace |
Partially Filled |
New |
6000 |
3500 |
2500 |
0 |
|
12 |
|
Execution(Z) |
Partial Fill |
Partially Filled |
New |
6000 |
5000 |
1000 |
1500 |
Execution for 1500 |
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) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request decrease in order quantity to 8000, leaving 7000 open |
5 |
Replace Request(Z,Y) |
|
|
|
|
7000 |
|
|
|
Request decrease in order quantity to 7000, leaving 6000 open |
6 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
1000 |
9000 |
0 |
Broker processes Replace (Y,X) first |
7 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
8000 |
1000 |
7000 |
0 |
Broker processes Replace (Y,X) first |
8 |
|
Execution (Z,Y) |
Pending Replace |
Pending Replace |
New |
8000 |
1000 |
7000 |
0 |
Broker then processes Replace (Z,Y) |
9 |
|
Execution (Z,Y) |
Replace |
Partially Filled |
New |
7000 |
1000 |
6000 |
0 |
Broker then processes Replace (Z,Y) |
10 |
|
Execution(Z) |
Fill |
Filled |
New |
7000 |
7000 |
0 |
6000 |
Execution for 6000 |
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) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Replace Request(Y,X) |
|
|
|
|
8000 |
|
|
|
Request decrease in order quantity to 8000, leaving 7000 open |
5 |
Replace Request(Z,Y) |
|
|
|
|
7000 |
|
|
|
Request decrease in order quantity to 7000, leaving 6000 open |
6 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
1000 |
9000 |
0 |
|
7 |
|
Cancel Reject (Z,Y) |
|
Pending Replace |
|
10000 |
|
|
|
Rejected because broker does not support processing of order cancel replace request whilst order is pending cancel. CxlRejReason = �Order already in pending cancel or pending replace status� |
8 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
8000 |
1000 |
7000 |
0 |
�Partially filled� order status takes precedence over �replaced� order status |
9 |
|
Execution (Y) |
Partial Fill |
Partially Filled |
New |
8000 |
3000 |
5000 |
2000 |
Execution for 2000 |
This matrix illustrates the case where the broker does not support multiple outstanding order cancel or order cancel/replace requests
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 |
|
|
|
|
|
|
|
|
|
Order for 10000 shares phoned to broker |
2 |
|
Execution |
New |
New |
New |
10000 |
0 |
0 |
0 |
Confirm that the broker has accepted the order � note that broker does not need to capture a ClOrdID |
3 |
|
Execution |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
Execution of 2000
|
4 |
|
Execution |
Partial Fill |
Partially Filled |
New |
10000 |
3000 |
7000 |
1000 |
Execution of 1000
|
5 |
|
Execution |
Fill |
Filled |
New |
10000 |
10000 |
0 |
7000 |
Execution of 7000 |
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
|
|
|
|
|
|
|
|
|
Broker verbally agrees to cancel order |
5 |
|
Execution(X) |
Canceled |
Canceled |
New |
10000 |
1000 |
0 |
0 |
Broker signifies that order has been canceled - ExecRestatementReason = Verbal change |
This scenario might occur if the buy-side has not implemented order cancel requests or alternatively there is an electronic communication problem at the point that the buy-side wishes to send a cancel request.
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
|
|
|
|
|
|
|
|
Broker verbally agrees to increase order quantity to 11000 |
4 |
|
Execution(X) |
Restated |
New |
New |
11000 |
0 |
0 |
0 |
Broker signifies that order has been replaced ExecRestatementReason = Verbal |
5 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
11000 |
1000 |
10000 |
1000 |
Execution for 1000 |
6 |
|
|
|
|
|
|
|
|
|
Broker verbally agrees to increase order quantity to 12000 |
7 |
|
Execution(X) |
Restated |
Partially Filled |
New |
12000 |
1000 |
11000 |
0 |
Broker signifies that order has been replaced ExecRestatementReason = Verbal change |
This scenario might occur if the buy-side has not implemented order cancel/replace requests or alternatively there is an electronic communication problem at the point that the buy-side wishes to send a cancel replace request
D21 - Unsolicited reduction of order quantity by sell side ( e.g. for US ECNs to communicate Nasdaq SelectNet declines)
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Restated |
New |
New |
9000 |
0 |
9000 |
0 |
ExecRestatementReason="Partial Decline of OrderQty" |
4 |
|
Execution(X) |
Fill |
Filled |
New |
9000 |
9000 |
0 |
9000 |
|
D22� Order rejected due to duplicate ClOrdID
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) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
Order submitted with the same order id |
5 |
|
Execution(X) |
Rejected |
Partially Filled |
New |
10000 |
1000 |
9000 |
0 |
OrdRejReason = duplicate order |
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 |
|
|
|
Order for 10000 sent electronically |
2 |
|
|
|
|
|
|
|
|
|
Order passed verbally as there is communication problem and order does not arrive. The verbally passed order starts getting executed |
3 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
0 |
Order finally arrives and is detected as a duplicate of a verbal order and is therefore rejected. OrdRejReason = duplicate of a verbal order |
Note that the sell-side may employ a number of mechanisms to detect that the electronic order is potentially a duplicate of a verbally passed order, e.g. :
� Checking the possdup flag on the order message header
� Checking the incoming order details against other orders from the same client (e.g. side, quantity)
� Looking at the transact time on the order as a guide to �staleness�
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) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
Status Request (Y) |
|
|
|
|
|
|
|
|
|
5 |
|
Execution(Y) |
Rejected |
Rejected |
Status |
0 |
0 |
0 |
|
OrdRejReason = unknown order LastShares not required when ExecTransType=Status |
D25� Transmitting a CMS-style "Nothing Done" in response to a status request
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
Status Request(X) |
|
|
|
|
|
|
|
|
|
4 |
|
Execution(X) |
New |
New |
Status |
10000 |
0 |
10000 |
0 |
Text="Nothing Done" |
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 |
Status Request (X) |
|
|
|
|
|
|
|
|
|
3 |
|
Execution(X) |
Pending New |
Pending New |
Status |
10000 |
0 |
10000 |
|
Sent in response to status request. LastShares not required when ExecTransType=status |
4 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
0 |
If order is rejected |
4 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
5 |
Status Request (X) |
|
|
|
|
|
|
|
|
|
6 |
|
Execution(X) |
New |
New |
Status |
10000 |
0 |
10000 |
|
Sent in response to status request |
7 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
Execution for 2000 |
8 |
Status Request (X) |
|
|
|
|
|
|
|
|
|
9 |
|
Execution(X) |
Partial Fill |
Partially Filled |
Status |
10000 |
2000 |
8000 |
|
Sent in response to status request |
10 |
|
Execution(X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
8000 |
Execution for 8000 |
11 |
Status Request (X) |
|
|
|
|
|
|
|
|
|
12 |
|
Execution(X) |
Fill |
Filled |
Status |
10000 |
10000 |
0 |
|
Sent in response to status request |
13 |
Replace Request(Y,X) |
|
|
|
|
12000 |
|
|
|
Request to increase order qty |
14 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
10000 |
0 |
0 |
|
15 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
12000 |
10000 |
2000 |
0 |
|
16 |
Status Request (X) |
|
|
|
|
|
|
|
|
|
17 |
|
Execution (Y,X) |
Partial Fill |
Partially Filled |
Status |
12000 |
10000 |
2000 |
|
Sent in response to status request. Note reference to X to allow tie back of execution report to status request |
18 |
Status Request (Y) |
|
|
|
|
|
|
|
|
|
19 |
|
Execution(Y) |
Partial Fill |
Partially Filled |
Status |
12000 |
10000 |
2000 |
|
Sent in response to status request |
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
Day Order Qty |
Day Cum Qty |
Comment |
Day 1,1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
Day 1,2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
|
|
Day 1,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
|
|
Execution for 2000 |
Day 1,4 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
2000 |
8000 |
0 |
|
|
Optional at end of trading day |
Day 2,1 |
|
Execution(X) |
Restated |
Partially Filled |
New |
10000 |
2000 |
8000 |
0 |
8000 |
0 |
ExecRestatementReason = GTC renewal/restatement (no change) � optionally sent the following morning |
Day 2,2 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3000 |
7000 |
1000 |
8000 |
1000 |
Execution for 1000 |
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
Day Order Qty |
Day Cum Qty |
Comment |
Day 1,1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
Day 1,2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
|
|
Day 1,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
|
|
Execution for 2000 @ 50 |
Day 1,4 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
2000 |
8000 |
0 |
|
|
Optional at end of trading day |
Day 2,1 |
|
Execution(X) |
Restated |
Partially Filled |
New |
20000 |
4000 |
16000 |
0 |
16000 |
0 |
Sent the following morning after the split ExecRestatementReason = GTC corporate action. AvgPx=25, DayAvgPx=0 |
Day 2,2 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
20000 |
9000 |
11000 |
5000 |
16000 |
5000 |
Execution for 5000 |
Day 2,3 |
|
Execution(X) |
Fill |
Filled |
New |
20000 |
20000 |
0 |
11000 |
16000 |
16000 |
Execution for 11000 |
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
Day Order Qty |
Day Cum Qty |
Comment |
Day 1,1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
Day 1,2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
|
|
Day 1,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
|
|
Execution for 2000 |
Day 1,4 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
2000 |
8000 |
0 |
|
|
Optional at end of trading day |
Day 2,1 |
|
Execution(X) |
Restated |
Partially Filled |
New |
10000 |
2000 |
8000 |
0 |
8000 |
0 |
ExecRestatementReason = GTC renewal/restatement (no change) � optionally sent the following morning |
Day 2,2 |
Cancel Request (Y,X) |
|
|
|
|
10000 |
|
|
|
|
|
|
Day 2,3 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
|
|
If rejected by salesperson |
Day 2,3 |
|
Execution (Y,X) |
Pending Cancel |
Pending Cancel |
|
10000 |
2000 |
8000 |
0 |
8000 |
0 |
|
Day 2,4 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
|
|
If rejected by trader/exchange |
Day 2,4 |
|
Execution (Y,X) |
Canceled |
Canceled |
|
10000 |
2000 |
0 |
0 |
8000 |
0 |
|
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
Day Order Qty |
Day Cum Qty |
Comment |
Day 1,1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
Day 1,2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
|
|
Day 1,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
|
|
Execution for 2000 |
Day 1,4 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
2000 |
8000 |
0 |
|
|
Optional at end of trading day |
Day 2,1 |
|
Execution(X) |
Restated |
Partially Filled |
New |
10000 |
2000 |
8000 |
0 |
8000 |
0 |
ExecRestatementReason = GTC renewal/restatement (no change) � optionally sent the following morning |
Day 2,2 |
Replace Request(Y,X) |
|
|
|
|
15000 |
|
|
|
|
|
Increasing qty |
Day 2,3 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
|
|
If rejected by salesperson |
Day 2,3 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
|
10000 |
2000 |
8000 |
0 |
8000 |
0 |
|
Day 2,4 |
|
Execution (X) |
Partial Fill |
Pending Replace |
|
10000 |
3000 |
7000 |
1000 |
8000 |
1000 |
Execution for 1000 |
Day 2,5 |
|
Cancel Reject (Y,X) |
|
Partially Filled |
|
10000 |
|
|
|
|
|
If rejected by trader/exchange |
Day 2,5 |
|
Execution (Y,X) |
Replace |
Partially Filled |
|
15000 |
3000 |
12000 |
0 |
13000 |
1000 |
|
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) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
PossResend=Y |
4 |
|
Execution(X) |
New |
New |
Status |
10000 |
0 |
10000 |
|
Because order X has already been received, confirm back the current state of the order. Last shares not required when ExecTransType = Status |
5 |
New Order(Y) |
|
|
|
|
15000 |
|
|
|
PossResend=Y |
6 |
|
Execution(Y) |
New |
New |
New |
15000 |
0 |
15000 |
0 |
Because order Y has not been received before, confirm back as a new order. |
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 |
|
|
|
Order is FOK |
2 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
0 |
If order is rejected by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Canceled |
Canceled |
New |
10000 |
0 |
0 |
0 |
If order cannot be immediately filled |
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 |
|
|
|
Order is IOC |
2 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
0 |
If order is rejected by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
1000 |
Execution for 1000 |
4 |
|
Execution(X) |
Canceled |
Canceled |
New |
10000 |
1000 |
0 |
0 |
If order cannot be immediately hit |
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
OrdStatus |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
AvgPx |
Last Shares |
Last Px |
ExecId (ExecRefID) |
Comment |
1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
|
2 |
|
Execution(X) |
Rejected |
Rejected |
New |
10000 |
0 |
0 |
|
0 |
|
A |
If order is rejected by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
0 |
|
B |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
1000 |
9000 |
100 |
1000 |
100 |
C |
Execution for 1000 @ 100 |
4 |
|
Execution(X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
109 |
9000 |
110 |
D |
Execution for 9000 @ 110 |
5 |
|
Execution(X) |
Partial Fill |
Partially Filled |
Cancel |
10000 |
9000 |
1000 |
110 |
0 |
0 |
E (C) |
Cancel execution for 1000 |
6 |
|
Execution(X) |
Partial Fill |
Partially Filled |
Correct |
10000 |
9000 |
1000 |
100 |
9000 |
100 |
F (D) |
Correct price on execution for 9000 to 100 |
7 |
|
Execution(X) |
Fill |
Filled |
New |
10000 |
10000 |
0 |
102 |
1000 |
120 |
G |
Execution for 1000 @ 120 |
8 |
|
Execution(X) |
Fill |
Filled |
Correct |
10000 |
10000 |
0 |
120 |
9000 |
120 |
H(F) |
Correct price on execution for 9000 to 120 |
9 |
Replace Request (Y,X) |
|
|
|
|
12000 |
|
|
|
|
|
|
Request to increase order qty |
10 |
|
Execution (Y,X) |
Pending Replace |
Pending Replace |
New |
10000 |
10000 |
0 |
120 |
0 |
0 |
I |
|
11 |
|
Execution (Y,X) |
Replace |
Partially Filled |
New |
12000 |
10000 |
2000 |
120 |
0 |
0 |
J |
|
12 |
|
Execution(Y) |
Partial Fill |
Partially Filled |
Correct |
12000 |
10500 |
1500 |
120 |
9500 |
120 |
K(H) |
Correct execution of 9000 @ 120 to 9500 @ 120 |
D35 - A canceled order followed by a busted execution and a new execution
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
ExecID (ExecRefID |
Comment |
1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
A |
|
3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
5000 |
5000 |
5000 |
B |
LastPx=50 |
4 |
Cancel Request(Y,X) |
|
|
|
|
10000 |
|
|
|
|
|
5 |
|
Execution (Y,X) |
Pending Cancel |
Pending Cancel |
New |
10000 |
5000 |
5000 |
0 |
C |
|
6 |
|
Execution (Y,X) |
Canceled |
Canceled |
New |
10000 |
5000 |
0 |
0 |
D |
|
7 |
|
Execution(Y) |
Partial Fill |
Canceled |
Cancel |
10000 |
0 |
0 |
0 |
E(B) |
Cancel of the execution. �Canceled� order status takes precedence over �New� |
8 |
|
Execution(Y) |
Partial Fill |
Canceled |
New |
10000 |
4000 |
0 |
4000 |
F |
Fill for 4000. LastPx=51 |
Time |
Message Received (ClOrdID, OrigClOrdID) |
Message Sent (ClOrdID, OrigClOrdID) |
Exec Type |
Ord Status |
Exec Trans Type |
Order Qty |
Cum Qty |
Leaves Qty |
Last Shares |
Day Order Qty |
Day Cum Qty |
ExecID (ExecRefID) |
Comment |
Day 1,1 |
New Order(X) |
|
|
|
|
10000 |
|
|
|
|
|
|
|
Day 1,2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
|
A |
|
Day 1,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
2000 |
8000 |
2000 |
|
|
B |
Execution for 2000 |
Day 1,4 |
|
Execution(X) |
Done for Day |
Done for Day |
New |
10000 |
2000 |
8000 |
0 |
|
|
C |
Optional at end of trading day |
Day 2,1 |
|
Execution(X) |
Restated |
Partially Filled |
New |
10000 |
2000 |
8000 |
0 |
8000 |
0 |
D |
ExecRestatementReason = GTC renewal/restatement (no change) � optionally sent the following morning |
Day 2,2 |
|
Execution(X) |
Partial Fill |
Partially Filled |
New |
10000 |
3000 |
7000 |
1000 |
8000 |
1000 |
E |
Execution for 1000 |
Day 2,3 |
|
Execution(X) |
Partial Fill |
Partially Filled |
Correct |
10000 |
2500 |
7500 |
1500 |
8500 |
1000 |
F (B) |
Correct quantity on previous day�s execution from 2000 to 1500 |
Day 2,4 |
|
Execution(X) |
Partial Fill |
Partially Filled |
Correct |
10000 |
2000 |
8000 |
500 |
8500 |
500 |
G (E) |
Correct quantity on today�s execution from 1000 to 500 |
D37� Transmitting a guarantee of execution prior to execution
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 by broker |
2 |
|
Execution(X) |
New |
New |
New |
10000 |
0 |
10000 |
0 |
|
3 |
|
Execution(X) |
Partial Fill |
Stopped |
New |
10000 |
0 |
10000 |
1000 |
Text="You are guaranteed to buy 1000 at 50.10"; LastPx=50.10. This is similar to the concept of a �protected� trade |
4 |
|
Execution(X) |
Partial Fill |
Stopped |
New |
10000 |
1000 |
9000 |
1000 |
LastPx=50 * executed price is better than guaranteed |