Question

I am trying to send a MarketDataRequest to FXAll FIX Server using FIX 4.3 standard. Looking at the documentation the response from the server should be as follow

<message name="MarketDataIncrementalRefresh" msgtype="X" msgcat="app">
  <field name="MDReqID" required="N" />
  <group name="NoMDEntries" required="Y">
    <field name="MDUpdateAction" required="Y" />
    <field name="DeleteReason" required="N" />
    <field name="MDEntryType" required="N" />
    <field name="MDEntryID" required="N" />
    <field name="MDEntryRefID" required="N" />
    <component name="Instrument" required="N" />
    <field name="FinancialStatus" required="N" />
    <field name="CorporateAction" required="N" />
    ... omissis ...
  </group>
</message>

but in the FXAll API Documentation field 55 (Instrument o Symbol) is expected just after the field MDReqID like it should be on the standard MarketDataSnapshotFullRefresh message

<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">
  <field name="MDReqID" required="N" />
  <component name="Instrument" required="Y" />
  ... omissis ...
</message>

Of course QuickFix/n engine is trapping a message MarketDataIncrementalRefresh with the field msgtype="X" and then I always have a TagNotDefinedForMessage error. How to solve this problem? Thank in advance.

Was it helpful?

Solution

We modified our FIX43.xml file to FIX43_FXALL.xml and specific in the quickfix config file that we wanted to use that specific data dictionary (ie we used the direct path the file).

The modification looked like this:

<message name="MarketDataIncrementalRefresh" msgtype="X" msgcat="app">
  <field name="MDReqID" required="N" />
  <component name="Instrument" required="Y" />
    <group name="NoMDEntries" required="Y">
    <field name="MDUpdateAction" required="Y" />
    <field name="MDEntryType" required="Y" />
    <field name="MDEntryID" required="Y" />
    <field name="MDEntryRefID" required="N" />
    <field name="MDEntryPx" required="N" />
    <field name="MDEntrySize" required="N" />
    <field name="QuoteType" required="N" />
    <field name="MDEntryOriginator" required="N" />
    <field name="MinQty" required="N" />
    <field name="MDEntryPositionNo" required="N" />
    <field name="MDEntryDate" required="N" />
    <field name="MDEntryTime" required="N" />
    <field name="TickDirection" required="N" />
    <field name="MDMkt" required="N" />
    <field name="TradingSessionID" required="N" />
    <field name="TradingSessionSubID" required="N" />
    <field name="QuoteCondition" required="N" />
    <field name="TradeCondition" required="N" />
    <field name="MDEntryOriginator" required="N" />
    <field name="LocationID" required="N" />
    <field name="DeskID" required="N" />
    <field name="OpenCloseSettleFlag" required="N" />
    <field name="TimeInForce" required="N" />
    <field name="ExpireDate" required="N" />
    <field name="ExpireTime" required="N" />
    <field name="ExecInst" required="N" />
    <field name="SellerDays" required="N" />
    <field name="OrderID" required="N" />
    <field name="QuoteEntryID" required="N" />
   <field name="MDEntryBuyer" required="N" />
    <field name="MDEntrySeller" required="N" />
    <field name="NumberOfOrders" required="N" />
    <field name="Scope" required="N" />
    <field name="TotalVolumeTraded" required="N" />
    <field name="TotalVolumeTradedDate" required="N" />
    <field name="TotalVolumeTradedTime" required="N" />
    <field name="NetChgPrevDay" required="N" />
    <field name="Text" required="N" />
    <field name="EncodedTextLen" required="N" />
    <field name="EncodedText" required="N" />
  </group>
  <field name="FutSettDate" required="Y" />
</message>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top