Imported from previous forum
[ original email was from Terry Murtaugh - murtaugh@world.std.com ]
I have two questions about execution messages of ExecTransType 1 or 2 (cancel or correct):
On execution cancels, what is supposed to be in the LastShares and LastPx field - the fill being cancelled? Nothing (i.e., leave fields out, or set to zero, or ignore on the receiving end)?
Secondly, suppose an order has been successfully replaced after a fill has occurred. Now the broker wants to cancel or correct the fill which was sent under the old ClOrdID (which has been superceded by the replacement ClOrdID). Which ClOrdID should be used on the execution cancel or replace - the one sent with the execution to begin with, or the current ClOrdID for the active order?
Thanks.
[ original email was from John Armstrong - johna@ms.com ]
> On execution cancels, what is supposed to be in the LastShares and LastPx field - the fill being cancelled?
Yes. LastShares and Px of the fill being cancelled. The AvgPx and CumQty should reflect the
fact that these shares were cancelled.
>
> Secondly, suppose an order has been successfully replaced after a fill has occurred. Now the broker wants to cancel or correct the fill which was sent under the old ClOrdID (which has been superceded by the replacement ClOrdID). Which ClOrdID should be used on the execution cancel or replace - the one sent with the execution to begin with, or the current ClOrdID for the active order?
The ClOrdID that was reported at the time of the
original report.
>
> Thanks.
>
>
> > On execution cancels, what is supposed to be in the LastShares and LastPx field - the fill being cancelled?
>
> Yes. LastShares and Px of the fill being cancelled. The AvgPx and CumQty should reflect the
> fact that these shares were cancelled.
>
> >
> > Secondly, suppose an order has been successfully replaced after a fill has occurred. Now the broker wants to cancel or correct the fill which was sent under the old ClOrdID (which has been superceded by the replacement ClOrdID). Which ClOrdID should be used on the execution cancel or replace - the one sent with the execution to begin with, or the current ClOrdID for the active order?
>
> The ClOrdID that was reported at the time of the
> original report.
>
>
> >
> > Thanks.
> >
We agree that the AvgPx and CumQty should reflect the values of the order NOW, including the correction and ALL other executions - both prior and after the report being corrected.
However, while the buy-side may have recorded the partial fill on the original ClOrdID, all the remaining fields (other than LastPx and LastShares ) must reflect the latest status of the "order family".
If, as has been suggested, we use the original ClOrdID, do we need to report the order instructions and quantities that were in effect at that time?
This seems to be in contradiction to the statement in FIX 3.0 & 4.0 execution reports "Each execution message will contain information that will describe the current state of the order and execution status as understood by the broker."
We can find no reference in the 3.0 and 4.0 specs that suggest we should use an "expired" or "superceded" ClOrdID to relay new information. The specs seem to tie everything back through the the ExecRefID to the unique ExecID of that execution.
Jim Damon - CIS