Интерфейс нашего контрагента (акцептора) основан на FIX версии 4.3.Однако они внесли несколько изменений в типы сообщений, а также внесли флаги из версии 5.0.
Я запрашиваю сообщение MarketDataSnapshotFullRefresh (MsgType=W)
, отправив MarketDataRequest (MsgType=V
) нашему контрагенту (акцептору).
Я хочу изменить словарь так, чтобы он соответствовал сообщению.Как вы можете видеть из приведенного ниже XML, мне пришлось добавить группу NoLegs
, которая является частью ответа, но не оригинальной спецификации 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>
После того, какизменил dict, чтобы он соответствовал пользовательскому сообщению, мой клиент больше не отвечает сообщением об отклонении получателю ... пока все хорошо.
Однако я не могу получить доступ к этому полю, так как этот атрибутне является частью класса QuickFix.FIX43.MarketDataSnapshotFullRefresh
.
Короче говоря, как я могу получить доступ к настраиваемым полям из пользовательских сообщений?