我在here之前已经看到了这个问题 并已应用建议的解决方案,但仍想出
此消息未定义标签
我正在发送此消息:
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|
数据字典中针对marketdatarequest的条目为:
<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截获了错误格式的消息并从未发送过?
答案 0 :(得分:1)
该拒绝不适用于您的市场数据请求。我可以从拒绝中的标签372=W
得知这一点:
FIX 4.4:RefMsgType <372>字段
所引用的FIX消息的MsgType <35>(35)。
MsgType W指向market data snapshot。
根据您提供的信息,我可以推断出您发送了一个MarketDataRequest(35=V
),它大概可以成功运行。您要连接的服务器会使用快照(35=W
)进行回复,然后您的FIX引擎会自动拒绝它们,因为它们的快照包含您不希望看到的标记264。