Execution Report - correct a correction?

Imported from previous forum

Would you correct an execution report with ExecTransType(20) = Correct

or

cancel then send a new correction to the original execution via ExecRefID?

In other words, can you correct a correction?

 

Thanks

The FIX 4.2 Specification describes the scenario of multiple corrections as follows:

       The CORRECT transaction type applies at the execution level and is used to modify an incorrectly reported fill.  The incorrect execution will be identified in the ExecRefID field.  If a single execution is corrected more than once, ExecRefID should refer to the ExecID of the last corrected ExecutionRpt (same convention as ClOrdID and OrigClOrdID).  To correct an ExecutionRpt which was previously canceled, an ExecutionRpt with ExecTransType=New should be sent (e.g. cannot send ExecTransType=Correct for an ExecutionRpt with ExecTransType=Cancel).  Note:  Data reported in the CumQty, LeavesQty, and AvgPx fields represent the status of the order as of the time of the correction, not as of the time of the originally reported execution.

In other words, it is up to you which approach you use. If you want a complete chain of events then you should not cancel an ExecutionReport because a new one with ExecTransType=New starts a new chain (ExecRefID does not apply). You have no choice once you have canceled a previous ExecutionReport, even if that occurred in error. Higher FIX versions (as of FIX 5.0 SP2 EP131) would allow you to then reference a previous chain by means of RefClOrdID(1806).

So if we want the chain of events (as of 4.2), would it look like this?

#1 New: ExecID=1

#2 Correct: ExecID=2, ExecRefID=1

#3 Correct: ExecID=3, ExecRefID=2

And it'd be incorrect for #3 to have ExecRefID=1. Is that right?

Hi,

In relation to this question:

When creating an ER with ExecType=TradeCancel, do I need to complete all mandatory fields ? (e.g. CumQty, OrderStat etc...)

Or is it only relevant to pass the involved tags: ExecID, ExecType, ExecRefID ?

Regards,
Simon

Hi,

trade cancel option (20=1) against execution transaction type is used in Indian markets which is also called the Trade Bust. A new fill is sent with Tag 20=0 after the bust.

@Simon: all the fields should be sent. please find a sample trade cancel msg below.

< out > 8=FIX.4.2|9=263|35=8|49=MAX|56=BBM|34=6|57=SAH|52=20140714-06:13:21.672|19=14071400000003|39=0|20=1|150=1|11=Jul14A-1|1=CLI|21=3|54=1|55=INFY|59=0|15=INR|37=2014071400002|40=2|38=100000|44=925.00|14=0|151=100000|32=0|31=0.00|6=0.0000|30=NS|60=20140714-06:13:21|17=14071400000004|10=050|

Sudhir