Order State Change Matrices

Filled order

Time

Request (ClOrdID,OrigClOrdID)

Response (ClOrdID,OrigClOrdID)

ExecType

OrdStatus

OrderQty

CumQty

LeavesQty

LastQty

Comment

1

NewOrderSingle(A)

10

2

ExecutionReport(A)

PendingNew

PendingNew

10

0

10

3

ExecutionReport(A)

Rejected

Rejected

10

0

10

If order is rejected

3

ExecutionReport(A)

New

New

10

0

10

4

ExecutionReport(A)

Trade

PartiallyFilled

10

2

8

2

5

ExecutionReport(A)

Trade

PartiallyFilled

10

3

7

1

6

ExecutionReport(A)

Trade

Filled

10

10

0

7


Canceled order

Time

Request (ClOrdID,OrigClOrdID)

Response (ClOrdID,OrigClOrdID)

ExecType

OrdStatus

OrderQty

CumQty

LeavesQty

LastQty

Comment

1

NewOrderSingle(A)

10

2

ExecutionReport(A)

PendingNew

PendingNew

10

0

10

3

ExecutionReport(A)

Rejected

Rejected

10

0

10

If order is rejected

3

ExecutionReport(A)

New

New

10

0

10

4

OrderCancelRequest(B,A)

5

OrderCancelRejected(B,A)

New

10

0

10

If cancel is rejected

5

ExecutionReport(B,A)

PendingCancel

PendingCancel

10

0

10

6

OrderCancelRejected(B,A)

New

10

0

10

If cancel is rejected

7

ExecutionReport(B,A)

Canceled

Canceled

10

0

0


Replace to increase quantity

Time

Request (ClOrdID,OrigClOrdID)

Response (ClOrdID,OrigClOrdID)

ExecType

OrdStatus

OrderQty

CumQty

LeavesQty

LastQty

Comment

1

NewOrderSingle(A)

10

2

ExecutionReport(A)

PendingNew

PendingNew

10

0

10

3

ExecutionReport(A)

New

New

10

0

10

4

OrderCancel/ReplaceRequest(B,A)

11

5

OrderCancelRejected(B,A)

New

10

0

10

If replace is rejected

5

ExecutionReport(B,A)

PendingReplace

PendingReplace

10

0

10

6

New

New

6

ExecutionReport(B,A)

Replaced

New

11

0

0

7

ExecutionReport(B)

Trade

PartiallyFilled

11

1

10

1


Replace during fill

Time

Request (ClOrdID,OrigClOrdID)

Response (ClOrdID,OrigClOrdID)

ExecType

OrdStatus

OrderQty

CumQty

LeavesQty

LastQty

Comment

1

NewOrderSingle(A)

10

2

ExecutionReport(A)

PendingNew

PendingNew

10

0

10

3

ExecutionReport(A)

New

New

10

0

10

4

OrderCancel/ReplaceRequest(B,A)

8

5

ExecutionReport(A)

Trade

PartiallyFilled

10

1

9

1

Fill before replace is received

6

ExecutionReport(B,A)

PendingReplace

PendingReplace

10

1

9

7

ExecutionReport(A)

Trade

PendingReplace

10

3

7

2

Fill before replace is processed

8

ExecutionReport(B,A)

Replaced

New

8

3

5

9

ExecutionReport(B)

Trade

Filled

8

8

0

5