MiFID II - Complex trade component id

When linking trades as part of a complex trade e.g. calendar spread, as defined under MiFID II transaction reporting field 40, what FIX tag are Firms using? It would appear that SecondaryExecID (Tag = 527) could meet the purpose, however, there is no limit to the string value, therefore does not meet the {ALPHANUMERIC-35} format requirement for MiFIDII.

Which FIX message are you looking to implement?

This is in FIX.4.4

This is a FIX version, not a message… :wink:

Thanks for pointing out! Must have misread, I am guessing you are referring to which message(type) we are looking to capture this id in - please correct if I am wrong - it is in fills, so 35=8(execution report message type) /150=[1|2|F] (execution type of partial/fill)

FIX looked into this under the assumption that the TradeCaptureReport(35=AE) message would be used. Extension Pack EP232 proposed the use of TradeLinkID(820) or PackageID(2489) to map field 40 (Complex trade component id). However, these fields are not part of the ExecutionReport(35=8) message that you state above.

The ExecutionReport(35=8) message allows you to have all legs of a complex trade in the same message if you use its InstrmtLegExecGrp component. You would then not need an explicit FIX field but have to break up the legs into separation MiFID II transaction reports and generate your own link identifier.

SecondaryExecID(527) is not a good choice as it is an alternative identifier for the same execution identified by ExecID(17). FIX does not define any limits for string fields, you need to limit it to 35 characters in order to be able to use a FIX field for reporting to ESMA.

@kamin012020 Since you’re using the ExecutinReport(35=8) I’m going to assume this is a message from the dealer to a client, or from an execution venue to the customer. The solution depends on whether you’re reporting fills for each leg individually or the strategy as a whole. If you’re reporting the entire strategy as a whole (i.e. all 3 legs of a butterfly in a single msg) then you don’t need linking as Hanno pointed out.

However, if you are going to break up the legs into it’s own ExecutionReport and send it to the recipient individually, the ClOrdID(11) should be the same for each of the message as it has to refer back to the same submitted NewOrderMultileg(35=AB) message - that should provide you with the link to the order. To identify which leg you’re reporting the fill on, ideally in the 35=AB message the LegID would have been assigned to each let that can be referenced in the 35=8 message. I’ve seen cases where in the 35=8 would use the LegID value from the order in the OrderID of the 35=8 if the instrument leg information is promoted up to the main Instrument component when reporting legs individually. I’ve also seen cases where the leg instrument remains in the InstrmtLegExecGrp with a single instance and the LegID there carries the same value as from the order, while the OrderID could be the overall strategy order ID assigned by the dealer.

1 Like

Thanks @hanno.klein @ltaikit