我以前在这里看到过这个问题并应用了建议的解决方案,但仍在提出
未为此消息定义标签
我正在发送以下消息:
toapp : 8=FIX.4.4|9=151|35=V|34=2|49=Test|52=20180731-14:35:54.947|56=UAT-Test|55=EUR/USD|63=SP|115=Username|167=FOR|207=XCEL|262=1|263=1|264=0|265=0|461=SPOT|10=074|
把这个拿回来
toadmin : 8=FIX.4.4|9=134|35=3|34=3|49=Test|52=20180731-14:35:54.982|56=UAT-Test|45=2|58=Tag not defined for this message type|371=264|372=W|373=2|10=090|
市场数据请求的数据字典中的条目是:
<message name="MarketDataRequest" msgtype="V" msgcat="app">
<field name="MDReqID" required="Y"/>
<field name="SubscriptionRequestType" required="Y"/>
<field name="MarketDepth" required="Y"/>
<field name="Symbol" required="Y"/>
<field name="SecurityType" required="Y"/>
<field name="MDUpdateType" required="Y"/>
<field name="CFICode" required="Y"/>
<field name="SettlType" required="Y"/>
<field name="OnBehalfOfCompID" required="N"/>
<field name="SecurityExchange" required="Y"/>
</message>
...
<field number="264" name="MarketDepth" type="INT"/>
我遇到的所有其他FIX实现也都有NoMDEntryTypes
和NoRelatedSym
组,这并不奇怪,但这正是规范所要求的。
此外,如果我发送toapp消息并在没有fromapp/fromadmin消息的情况下返回toadmin消息,这是否意味着quickfix拦截了格式错误的消息,并且从未发送过它?
拒绝不是因为您的市场数据请求。我可以从拒绝中的标签372=W
中看出这一点:
FIX 4.4:RefMsgType<372>字段
MsgType<35>(35(。
源
MsgType W指的是市场数据快照。
根据您提供的信息,我可以推断您发送了一个MarketDataRequest(35=V
(,该请求可能会成功工作。您连接到的服务器会用快照(35=W
(回复,然后您的FIX引擎会自动拒绝它们,因为它们的快照包含标签264,这是您所没有预料到的。