ExecType(Tag 150)

Imported from previous forum

What should be the value in Tag 150 (ExecType) [ On whether it should be passed at all??] on an execution report for Cancelation of Trade (Bust). In a specific Scenario, the order is moved from “filled” to “partially Filled” when a bust occurs. On the bust message what should be the value on this tag?

[ original email was from Jeremy Sutton - jezza.sutton@patsystems.com ]
We use (in FIX.4.2) a regular value (e.g. 39=1) as if it were a normal fill. The tag 20 is used to indicate that this is a trade cancellation. You could also argue that in 4.2 you could send 150=D and treat this as an order restatement. Personally I fall on the side of saying a fill is a fill even when its a negative one so it is not 150=D.

[ original email was from Andrew Scott - ascott@latentzero.com ]
> What should be the value in Tag 150 (ExecType) [ On whether it should be

passed at all??] on an execution report for Cancelation of Trade (Bust).
In a specific Scenario, the order is moved from “filled” to “partially
Filled” when a bust occurs. On the bust message what should be the value
on this tag?

Ajit,

This scenario is relating to taking the order down from Filled Status to Partially Filled Status. The ExecType field should be used to report the current execution status of the order, at the time your message is being transmitted. As the status is Partially Filled, you should be reporting 150 ExecType = 1 [Partially Filled], and not 4 [Cancelled].

The field 20 ExecTransType is already being set to 1 [Busted] which communicates the cancellation of the execution.

If you set 150 ExecType = 4 [Cancelled] then you are communicating to the counterparty that the remaining open part of the parent order is being cancelled on your side - which is clearly not your intent! Further, the use of 150 = 4 in a Trade Bust is a protocol violation.

I am happy to discuss this with you further off-line, however this is a really clear cut issue which should be able to be resolved quickly.

[ original email was from John Prewett - jprewett@lavatrading.com ]
Firstly, we need to know what version of the protocol we are discussing.

It is safe to assume we aren’t discussing FIX.4.0 or earlier as there is no ExecType tag.

In FIX.4.1, this case isn’t covered in Appendix D thus we should probably adhere to any example found in a subsequent version of FIX, such as FIX.4.2.

In FIX.4.2, this case is exactly covered in Appendix D example D35.
You will notice in step 5, when the bust occurs and the order devloves from being filled to being partially filled the tag values are:
ExecTransType=Cancel
ExecType=PartialFill
OrdStatus=PartiallyFilled

In FIX.4.3 and later, the ExecTransType tag is no longer used and its values are merged into the ExecType tag, thus there is no further anomaly. The tag values under the circumstance would be:
ExecType=TradeCancel
OrdStatus=PartiallyFilled

I do not agree with the previous poster who said:

The ExecType field should be used to report the current execution
status of the order, at the time your message is being
transmitted.

ExecType is used to indicate the reason why the message is flowing.
OrdStatus is used to indicate the current status of the order at the moment when the message was sent.

I hope this helps.

John Prewett

[ original email was from Jeremy Sutton - jezza.sutton@patsystems.com ]
Indeed. ExecType indicates the “reason” for the execution report. Order status indicates the actual order state. Best illustrated in the example of pending cancel and received fills. Since there is a hierarchy in order states which promotes pending cancel above partial fill, the order state is pending cancel for each of the execution reports where a fill arrives. Since you need to know why the execution report has been sent to you, execution type is partial fill. Indicated by examples in FIX.4.2 guide.

This behaviour taken to busting trades tells you that execution type should be partial fill. The additional information - that we are getting a bust - is contained within execution transaction type, plus execution transaction type.

[ original email was from Andrew Scott - ascott@latentzero.com ]
My wording had not been clear. I agree that the ExecType communicates the ‘reason’ for the Execution Report, however in this case the ExecType is conveying the state of the execution which is Partially Filled. There is no confusion between the intent of OrdStatus and ExecType. ExecType should not be used to communicate the status of the order.

An excellent example is communicating successful amendment of a partially filled order in which case OrdStatus = ‘1’ [Partially Filled] and ExecType = ‘5’ [Amended].

The earlier comment still stands. The expected ExecType = ‘1’ and not ‘4’ for the Trade Bust message.