Imported from previous forum
Hi all,
I hope someone can offer some suggestions on the best way to handle this scenario:
Order 1000 BHP in the market
Client sends Cancel/Replace Request to increase to 2000
Change Order to Pending Replace
Receive Unsolicited Amend that increased order qty to 2500
Another scenario could have an unsolicited price amendment and a Fill occurring on the amended order at the new price.
What is the recommended manner of handling these events?
Thanks in advance,
Di
Are you using FIX 4.2 or later? ExecType=D (restated) was introduced to handle this type of unsolicited execution report from the sell side. There’s a scenario #20 in the FIX 4.2 spec called “Unsolicited replacement of a part-filled order”. It’s not precisely either of the cases you mention, but it does show how ExecType=D can be used with various OrdStatus values and ClOrdId to handle unsolicited replaces of orders.
I’ll try a cut at both. The second scenario might be straightforward:
Order, ClOrdId=X, OrderQty=1000, Price=20.01 (new order)
Exec report, ExecType=0, OrdStatus=0, ClOrdId=X, OrderQty=1000, Price=20.01 (order ack)
Exec report, ExecType=D, OrdStatus=0, ClOrdId=X, OrderQty=1000, Price=20.02 (unsolicited replace on price)
Exec report, ExecType=2, OrdStatus=2, ClOrdId=X, OrderQty=1000, Price=20.02, LastShares=1000, LastPx=20.02 (fill on new price)
Your first scenario gets tricker due to your cancel/replace request:
Order, ClOrdId=X, OrderQty=1000, Price=20.01 (new order)
Exec report, ExecType=0, OrdStatus=0, ClOrdId=X, OrderQty=1000, Price=20.01 (order ack)
Cancel replace, ClOrdId=Y, OrigClOrdId=X, OrderQty=2000, Price=20.01 (replace request on quantity)
Then it might depend on whether the sellside got your cancel replace request before doing their own amend. If they got yours first, it might be:
Exec report, ExecType=E, OrdStatus=E, ClOrdId=Y, OrigClOrdId=X, OrderQty=1000, Price=20.01 (replace pending)
Exec report, ExecType=5, OrdStatus=5, ClOrdId=Y, OrigClOrdId=X, OrderQty=2000, Price=20.01 (replaced)
Exec report, ExecType=D, OrdStatus=5, ClOrdId=Y, OrderQty=2500, Price=20.01 (unsolicited replace on quantity)
But if they did their amend before they got yours, the restated would probably be:
Exec report, ExecType=D, OrdStatus=0, ClOrdId=X, OrderQty=2500, Price=20.01 (unsolicited replace on quantity, using the old ClOrdId)
I’m not sure what would happen next. Either your cancel replace request could be rejected, or it could be handled, which would then look like a decrease in quantity back to 2000.
David Rhodes
TransactTools
david.rhodes@transacttools.net
Hi all,
I hope someone can offer some suggestions on the best way to handle
this scenario:Order 1000 BHP in the market Client sends Cancel/Replace Request to
increase to 2000 Change Order to Pending Replace Receive Unsolicited
Amend that increased order qty to 2500Another scenario could have an unsolicited price amendment and a Fill
occurring on the amended order at the new price.What is the recommended manner of handling these events?
Thanks in advance,
Di