Pending Replace -->Part Fill --> Replaced --> Part Fill Bust scenarion: Order Status query

Imported from previous forum

[ original email was from Rahul Shah - rahul.shah@wipro.com ]
Scenario and steps followed – FIX 4.2 version
1)New Order from Cl.Sim
2)Ack recd by client
39= 0,150=0 ,20=0
3)Cancel / Replace Request from client
4)Pending Replace ack recd by client
39= E,150=E ,20=0
5)Part fills reported to client (order in pending replace state)
39= E,150=1 ,20=0
6)Replace acked back to client
39= 1,150=5 ,20=0
7)Part fill busted and reported to client
39=0,150=1 ,20=1(cancel)

Query:
In step 7 after part fills bust what order status we should report back to client ?
39=0 Or
39=5 (as it was replaced) Or
39=1 (part fill though it was busted)

Currently we report 39=0.

Please advice.

Thank You,
Rahul Shah

The semantic changed after FIX 4.2 and became much clearer by eliminating ExecTransType (20)and substituting Partial Fill (1) and Fill (2) with Trade (F) in field ExecType (150).

If you really need to stick to the FIX 4.2 semantics then I suggest to look at the FIX 4.2 specification on pages 92-94 which describe the concept of precedence for OrdStatus (39). According to that table, an order cannot return to status “New” once it has been replaced. All actions changing the order status have a higher precedence than “New”. Also look at scenarios D34 and D35 on page 227 which come pretty close to your case.

You do not say what the quantities of the order are. If CumQty>0 then the order status is still “Partially Filled” as only part of the executed qty was busted. If CumQty=0, i.e. the order has no executions due to the bust, then it has still been replaced to get there. The precedence of “Replaced” (3) is higher than that of “New” (2). The bust changes attributes of the order, i.e. changes the quantities. The fact that the change results in the order looking exactly as it was at the time it was initially entered is secondary.

In general it is debatable whether busts should go all the way back to the order and “replenish” it again. Orders are vehicles resulting in trades which are entities of their own. Trades can then get busted and I believe it should be the decision of the user to modify his order or not. Exchanges typically decouple orders and trades in this sense but there is more than one model out there. Some require to keep the executed qty of orders and quantities of trades in sync, sometimes simply because there are no trade entities (Trade Capture Report), only executions attached to order entities.

Regards,
Hanno.

Scenario and steps followed – FIX 4.2 version
1)New Order from Cl.Sim
2)Ack recd by client 39= 0,150=0 ,20=0
3)Cancel / Replace Request from client
4)Pending Replace ack recd by client 39= E,150=E ,20=0 5)Part fills
reported to client (order in pending replace state) 39= E,150=1 ,20=0
5)Replace acked back to client 39= 1,150=5 ,20=0
6)Part fill busted and reported to client 39=0,150=1 ,20=1(cancel)

Query: In step 7 after part fills bust what order status we should
report back to client ? 39=0 Or 39=5 (as it was replaced) Or 39=1 (part
fill though it was busted)

Currently we report 39=0.

Please advice.

Thank You, Rahul Shah

[ original email was from John Greenan - john.greenan@alignment-systems.com ]
See also http://www.fixprotocol.org/discuss/read/8f68ad19

This is not determinate in FIX 4.2 - there is no “right” answer…