Cancel a Filled or Calculated Execution.

Imported from previous forum

[ original email was from Zul Kagalwalla - zkagalwalla@fmco.com ]
Corrected typo on Approach C.

If you want to cancel a filled/calculated Execution how do yo do it?

Approach A:

ExecTransType = 1 (cancel)
ExecType = 4 (canceled)
OrdStatus = 4 (canceled)
ExecRefID = Value of field 17 of filled/calculated Execution Report

Approach B:

ExecTransType = 1 (cancel)
ExecType = 2 (for Filled) or B ( for calculated)
OrdStatus = 4 (canceled)
ExecRefID = Value of field 17 of filled/calculated Execution Report

Approach C:

ExecTransType = 1 (cancel)
ExecType = 4 (canceled)
OrdStatus = 2 (for Filled) or B ( for calculated)
ExecRefID = Value of field 17 of filled/calculated Execution Report

Will appreciate Comments/suggestions.

Thanks
Zul

I assume sell-side is cancelling the execution and needs to inform buy-side (order sender). I would advise for 4.2, 4.1 , 4.0(?):

ExecTransType = 1 (cancel)
ExecType = 4 (canceled) (?)
OrdStatus = (0 or 1 depening on OrdQty-CumQty).
ExecID = new ExecID for this msg.
ExecRefID = ExecID of ExecReport to be cancelled
CumQty/leaves move to old value.

HTH

Corrected typo on Approach C.

If you want to cancel a filled/calculated Execution how do yo do it?

Approach A:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 4
(canceled) ExecRefID = Value of field 17 of filled/calculated
Execution Report

Approach B:

ExecTransType = 1 (cancel) ExecType = 2 (for Filled) or B ( for
calculated) OrdStatus = 4 (canceled) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Approach C:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 2 (for
Filled) or B ( for calculated) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Will appreciate Comments/suggestions.

Thanks Zul

Zul, OrdStatus should reflect the current state of the order after you have cancelled the execution report. ExecType should indicate the type of execution report that you are cancelling. Therefore, if your execution report filled the order (i.e. the ExecType and OrdStatus of the original execution report equal 2-Filled), then you should send

ExecTransType=1 (cancel)
ExecType = 2 (Filled)
OrdStatus = 0 or 1 (current status of the order should be partially filled or new) ExecRefID = Value of field 17 of the execution report you are cancelling

Take a look at Appendix D in the specification – specifically D34 and D35. This may help.

Corrected typo on Approach C.

If you want to cancel a filled/calculated Execution how do yo do it?

Approach A:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 4
(canceled) ExecRefID = Value of field 17 of filled/calculated
Execution Report

Approach B:

ExecTransType = 1 (cancel) ExecType = 2 (for Filled) or B ( for
calculated) OrdStatus = 4 (canceled) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Approach C:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 2 (for
Filled) or B ( for calculated) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Will appreciate Comments/suggestions.

Thanks Zul

[ original email was from Zul Kagalwalla - zkagalwalla@fmco.com ]
Will and Himansu,

Thanks!

Will the definition of ExecType is:
The ExecType is used to identify the purpose of the execution report message

Is it not then that ExecType value would be 4 and not 1. But you are correct if you look at the D34 and D35 then ExecType should = 2.

So I am confused.

I would appreciate more comments and clarification.

Zul, OrdStatus should reflect the current state of the order after you
have cancelled the execution report. ExecType should indicate the type
of execution report that you are cancelling. Therefore, if your
execution report filled the order (i.e. the ExecType and OrdStatus of
the original execution report equal 2-Filled), then you should send

ExecTransType=1 (cancel) ExecType = 2 (Filled) OrdStatus = 0 or 1
(current status of the order should be partially filled or new)
ExecRefID = Value of field 17 of the execution report you are cancelling

Take a look at Appendix D in the specification – specifically D34 and
D35. This may help.

Corrected typo on Approach C.

If you want to cancel a filled/calculated Execution how do yo do it?

Approach A:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 4
(canceled) ExecRefID = Value of field 17 of filled/calculated
Execution Report

Approach B:

ExecTransType = 1 (cancel) ExecType = 2 (for Filled) or B ( for
calculated) OrdStatus = 4 (canceled) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Approach C:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 2 (for
Filled) or B ( for calculated) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Will appreciate Comments/suggestions.

Thanks Zul

Zul,

In FIX 4.1 and 4.2, ExecType=4 (cancelled) is used as a status message to indicate that the ORDER is cancelled. ExecTransType=1 is used to indicate that an EXECUTION is cancelled.

However, you will find that firms make different interpretations of the same FIX specification. And, you will often see modifications in the next FIX version to clarify certain expected behavior. FIX 4.3 clarifies the expected behavior for the scenario below by adding additional values for ExecType (H-Trade Cancel) and eliminating the ExecTransType field.

But I realize you are either working with FIX 4.1 or FIX 4.2. My response is based on my experiences with other firms and the most common interpretation that I have seen.

My suggestion to you is to talk to your counterparties for this case and make sure you have agreement from them.

Will and Himansu,

Thanks!

Will the definition of ExecType is: The ExecType is used to identify the
purpose of the execution report message

Is it not then that ExecType value would be 4 and not 1. But you are
correct if you look at the D34 and D35 then ExecType should = 2.

So I am confused.

I would appreciate more comments and clarification.

Zul, OrdStatus should reflect the current state of the order after you
have cancelled the execution report. ExecType should indicate the type
of execution report that you are cancelling. Therefore, if your
execution report filled the order (i.e. the ExecType and OrdStatus of
the original execution report equal 2-Filled), then you should send

ExecTransType=1 (cancel) ExecType = 2 (Filled) OrdStatus = 0 or 1
(current status of the order should be partially filled or new)
ExecRefID = Value of field 17 of the execution report you are
cancelling

Take a look at Appendix D in the specification – specifically D34 and
D35. This may help.

Corrected typo on Approach C.

If you want to cancel a filled/calculated Execution how do yo do it?

Approach A:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 4
(canceled) ExecRefID = Value of field 17 of filled/calculated
Execution Report

Approach B:

ExecTransType = 1 (cancel) ExecType = 2 (for Filled) or B ( for
calculated) OrdStatus = 4 (canceled) ExecRefID = Value of field 17
of filled/calculated Execution Report

Approach C:

ExecTransType = 1 (cancel) ExecType = 4 (canceled) OrdStatus = 2
(for Filled) or B ( for calculated) ExecRefID = Value of field 17 of
filled/calculated Execution Report

Will appreciate Comments/suggestions.

Thanks Zul