Appendix D (from www.fixtrading.org)

Order State Change Matrices

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:

 

 

D1 - Filled 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

 

 

 

 

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

 

D2 � Part-filled day order, done for day

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

 


D3 � Cancel request issued for a zero-filled 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

 

 

 

 

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

 

 

D4 � Cancel request issued for a part-filled order � executions occur whilst cancel request is active

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

 

 

 

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)

 

D6 � Zero-filled order, cancel/replace request issued to increase order qty

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


D7 � Part-filled order, followed by cancel/replace request to increase order qty, execution occurs whilst order is pending replace

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

 

D8 � Filled order, followed by cancel/replace request to increase order quantity

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

 

D9 � Cancel/replace request (not for quantity change) is rejected as a fill has occurred

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)

 

D10 � Cancel/replace request sent whilst execution is being reported � the requested order qty exceeds the cum qty. Order is replaced then 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

 

 

 

 

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.

 

 


D11 � Cancel/replace request sent whilst execution is being reported � the requested order qty equals the cum qty  � order qty is amended to cum qty

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�

 

D12 � Cancel/replace request sent whilst execution is being reported � the requested order qty is below cum qty � order qty is amended to cum qty

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�

 

 


 

D13 � One cancel/replace request is issued which is accepted � another one is issued which is also 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 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

 


D14 � One cancel/replace request is issued which is rejected before order becomes pending replace � then another one is issued which is 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 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

 


D15 One cancel/replace request is issued which is rejected after it is in pending replace � then another one is issued which is 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 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

 


D16� One cancel/replace request is issued followed immediately by another � broker processes sequentially

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

D17� One cancel/replace request is issued followed immediately by another � broker rejects the second as order is pending replace

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

 

D18 � Telephoned 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

 

 

 

 

 

 

 

 

 

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

 

D19 � Unsolicited cancel of a part-filled 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

 

 

 

 

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.


D20 � Unsolicited replacement of a part-filled 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

 

 

 

 

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

 


D23 - Order rejected because the order has already been verbally submitted

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�

 

D24 - Order status request rejected for unknown 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

 

 

 

 

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"

 

D26 - Order sent, immediately followed by a status request. Subsequent status requests sent during life of 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

 

 

 

 

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

 


 

D27 - GTC order partially filled, restated (renewed) and partially filled the following day

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

 

D28 - GTC order with partial fill, a 2:1 stock split then a partial fill and fill the following day

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

 


D29 - GTC order partially filled, restated(renewed) and canceled the following day

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

 

 


 

D30 - GTC order partially filled, restated(renewed) followed by replace request to increase quantity

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

 

 

D31 - Poss resend 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

 

 

 

 

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.

 

D32 � Fill or Kill order cannot be 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 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

D33 � Immediate or Cancel order that 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

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

D34 � Filled order, followed by correction and cancellation of executions

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

 

D36 - GTC order partially filled, restated (renewed) and partially filled the following day, with corrections of quantity on both executions

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