QuickFIX / n和FXALL

时间:2013-11-29 18:16:16

标签: quickfix fix-protocol

我正在尝试使用FIX 4.3标准向MarketAll FIX服务器发送MarketDataRequest。查看文档,服务器的响应应如下所示

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

但是在FXAll API文档字段55(Instrument o Symbol)之前的MDReqID字段应该在标准的MarketDataSnapshotFullRefresh消息之后

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

当然,QuickFix / n引擎正在捕获带有字段msgtype =“X”的消息MarketDataIncrementalRefresh,然后我总是有一个TagNotDefinedForMessage错误。如何解决这个问题呢? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我们将FIX43.xml文件修改为FIX43_FXALL.xml,并特定在我们想要使用该特定数据字典的quickfix配置文件中(即我们使用文件的直接路径)。

修改如下:

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