Closed yahor-by closed 10 years ago
In FIX 4.3 and 4.4, it's a char. I confirmed this against the FIX spec 4.4 document (it's in volume 6).
In FIX 5.0, they apparently changed it to an int.
So, it seems that fixspec.com is actually the one with the error.
I'm closing this as not-a-bug. If you disagree please comment back.
Ok, but if MassCancelRejectReason has type CHAR in FIX 4.4, how can I use MassCancelRejectReason.OTHER = 99 (according to FIX spec 4.4 vol.6 that value has been added at FIX 4.4) from "FIX44.xml":
<field number="532" name="MassCancelRejectReason" type="CHAR">
<value enum="0" description="MASS_CANCEL_NOT_SUPPORTED" />
<value enum="1" description="INVALID_OR_UNKNOWN_SECURITY" />
<value enum="2" description="INVALID_OR_UNKNOWN_UNDERLYING" />
<value enum="3" description="INVALID_OR_UNKNOWN_PRODUCT" />
<value enum="4" description="INVALID_OR_UNKNOWN_CFICODE" />
<value enum="5" description="INVALID_OR_UNKNOWN_SECURITY_TYPE" />
<value enum="6" description="INVALID_OR_UNKNOWN_TRADING_SESSION" />
<value enum="99" description="OTHER" />
</field>
Ah, good eye. Looks to me like someone at FIX screwed up there. That may explain why they changed it in FIX50.
MassCancelRejectReason (532) field of OrderMassCancelReport message at the documentation ( https://fixspec.com/FIX44/OrderMassCancelReport ) and at the specification ( FIX44.xml ) has type CHAR, but implemented ( MassCancelRejectReason.cs ) as INT. Apparently this is erroneous information. Obviously the MassCancelRejectReason field must be of type INT.
BTW, at the Java-version of QuickFIX this field has type INT ( http://www.quickfixj.org/quickfixj/javadoc/1.5.1/quickfix/field/MassCancelRejectReason.html ).