Imported from previous forum
[ original email was from Henrik Johansson - henrik.johansson@omxgroup.com ]
Hi,
In Fix 4.4 Specification vol 1 page 19. it is stated that “If the repeating group is used, the first field of the repeating group is required. This allows implementations of the protocol to use the first field as a “delimiter” indicating a new repeating group entry. The first field listed after the NoXXX, then becomes conditionally required if the NoXXX field is greater than zero.”
In the New Order Multileg and Multileg Order Cancel Replace messages there is a repeating group for the different legs, the instance counter is NoLegs (Tag 555). The first entry in this repeating group which is conditionally mandatory is not a field, instead it is a Instrument Leg component. I do not think that field order is specified for components and no field is mandatory in the component either. This implies that all of the fields in the Instrument Leg component might be the first field in an instance of the group which is not what I guess is the intention reading the specification.
Unfortunately there is no other field in this specific group that is mandatory that can be moved to this first place in the group wiich easily would resolve the problem.
What would be the best resolution here? One resolution could be to make LegSymbol mandatory and state that that field also SHALL be the first field of the group instance. An other resolution could be adding a dummy field with the only purpose to tell that a new instance is started. I do not like the second resolution if we only would add that for this specific group, I think it for clarity then should be added for all repeating groups.
How is this resolved in current implementations and how would a long term resolution look like?
Thanks in advance,
Henrik
Hi,
In Fix 4.4 Specification vol 1 page 19. it is stated that “If the
repeating group is used, the first field of the repeating group is
required. This allows implementations of the protocol to use the first
field as a “delimiter” indicating a new repeating group entry. The first
field listed after the NoXXX, then becomes conditionally required if the
NoXXX field is greater than zero.”In the New Order Multileg and Multileg Order Cancel Replace messages
there is a repeating group for the different legs, the instance counter
is NoLegs (Tag 555). The first entry in this repeating group which is
conditionally mandatory is not a field, instead it is a Instrument Leg
component. I do not think that field order is specified for components
and no field is mandatory in the component either. This implies that all
of the fields in the Instrument Leg component might be the first field
in an instance of the group which is not what I guess is the intention
reading the specification.
On page 34 of Vol 1, in the opening comments about components it mentions that component field order is important for repeating groups:
“Note that some component blocks may be part of repeating groups thus if the component block is denoted as part of a repeating group, then the entire group of fields representing the component block are to be specified at the component block’s repeating group “level” in the message definition and follow repeating group rules concerning field order. See “Repeating Groups” for more details.”
So LegSymbol should be first (i.e. the delimiter) and is required if NoLegs > 0.
Cheers
Dave
[ original email was from Henrik Johansson - henrik.johansson@omxgroup.com ]
Thanks a lot for your info!
I was lazy and just reading from the FIXimate where the req’d field was set to ‘N’ for LegSymbol which do not fully reflect the true specification in this matter.
/Henrik