Our counterparties (acceptor) interface is based on FIX version 4.3. However they made several modifications to the message types and also brought in flags from version 5.0.
I am requesting a MarketDataSnapshotFullRefresh (MsgType=W)
message by sending a MarketDataRequest (MsgType=V
) to our counterparty (acceptor).
I hade to modify the dictionary so it fits the message. As you can see from the XML below, I had to add the group NoLegs
which is part of the reply, but not of the original specification 4.3 (https://www.onixs.biz/fix-dictionary/4.3/msgType_W_87.html).
<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">
<field name="MDReqID" required="N" />
<component name="Instrument" required="Y" />
<field name="FinancialStatus" required="N" />
[...]
<field name='MDEntryForwardPoints' required="N" />
<group name="NoMDEntries" required="Y">
<field name="MDEntryType" required="Y" />
[...]
<field name="PriceType" required="N" />
<field name='MDEntrySpotRate' required="N" />
<field name='MDEntryForwardPoints' required="N" />
</group>
<group name="NoLegs" required="N">
<component name="InstrumentLeg" required="N" />
</group>
</message>
After having changed the dict to fit the custom message, my client does not reply anymore with a reject message to the acceptor... so far so good.
However I am not able to access this field, as this attribute is not part of the class QuickFix.FIX43.MarketDataSnapshotFullRefresh
.
So long story short, how can I access custom fields from custom Messages?