Imported from previous forum
[ original email was from Andrew Schorr - schorr@ead.dsa.com ]
We’re communicating with an ECN via FIX 4.1, and
we are in disagreement over how to handle this
situation (which is somewhat similar to example
D16 in the FIX 4.2 appendix D):
1. We send New Order(X) which is accepted
by the ECN with a New message.
2. We send a Replace Request(Y,X). The
ECN acknowledges receipt of this
message with a Pending Replace
Execution(Y,X)
3. We send a Cancel Request(Z,Y). The
ECN responds with a Pending
Replace Execution(Z,Y)
At this point, the ECN would like to communicate
to us that everything (both X and Y) has been
successfully cancelled. The dispute is over how
to do this. The ECN is sending me an Execution
Report (Z,X) with OrdStatus and ExecType equal
to Cancelled. They claim that the OrigClOrdID
should be X since Y never went live, and that
this message means that both orders are now
cancelled.
I say that the proper approach would be to send
two messages: first an Execution(Y,X)
with ExecType Replace, and second (immediately
following) an Execution(Z,Y) of Canceled.
My approach seems more consistent with example
D16. Plus, the ECN’s approach seems to me to
be inconsistent with the definition of the
OrigClOrdID field: “Conditionally required for
PendingCancel, Replaced, Canceled ExecType values.
ClOrdID of the previous order (NOT the initial
order of the day) when canceling or replacing
an order.” It also seems inconsistent with the
Execution(Z,Y) Pending Replace that they had sent
to acknowledge the cancel request.
From a business perspective, I think you should
give 2 outs when you are telling the buy-side
firm that they are out on 2 orders; I think that
overloading one message to give 2 outs is vague
and unusual.
Any opinions?
Thanks,
Andy