我正在尝试使用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错误。如何解决这个问题呢? 提前谢谢。
答案 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>