connamara / quickfixn

QuickFIX/n implements the FIX protocol on .NET.
http://quickfixn.org
Other
469 stars 557 forks source link

Incorrect type of MassCancelRejectReason field #271

Closed yahor-by closed 10 years ago

yahor-by commented 10 years ago

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 ).

gbirchmeier commented 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.

yahor-by commented 10 years ago

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>
gbirchmeier commented 10 years ago

Ah, good eye. Looks to me like someone at FIX screwed up there. That may explain why they changed it in FIX50.