我已经实现了请求市场数据的修复客户端。我已成功登录到服务器但是当服务器向我们发送MarketDataIncrementalRefresh消息时,我的应用程序拒绝了消息"标签出现不止一次"它指示的标签是55.你能帮我解决一下吗? 它拒绝的信息是: 8 = FIX.4.2 9 = 196 35 = X 34 = 14 49 = Xenfin 56 = newchange.api -price 52 = 20140528-08:54:32.144 262 = 156 268 = 2 279 = 1 269 = 0 278 = B 55 = EUR / USD 270 = 1.36201 271 = 1000000.00 279 = 1 269 = 1 278 = A 55 = EUR / USD 270 = 1.36205 271 = 1000000.00 10 = 133
在我的配置文件中,我没有使用数据字典并设置了UseDataDictionary = N
答案 0 :(得分:2)
这通常意味着您有配置或DataDictionary问题,或两者兼而有之。
配置问题:如果你在FIX5上,你的配置应该有UseDataDictionary=Y
和DataDictionary=path/to/xml
(或AppDataDictionary=
和TransportDataDictionary=
)。
DataDictionary问题:您的对手方可能已在邮件中添加了自定义字段,并且您的DD尚未正确更新以反映这些字段。在解析重复组时,当QF / n解析器找到不属于该组的字段(每个DD)时,它会假定该组已结束。之后的任何字段都被视为在组外。
您需要编辑DD文件以反映对方对标准邮件集所做的任何更改。这可能包括添加自定义字段,可能包括重新排列字段顺序或向他们通常不属于的组添加字段。有关编辑DD的详细信息,请参阅此页面:
http://quickfixn.org/tutorial/custom-fields-groups-and-messages
答案 1 :(得分:1)
那是因为你有一个重复的小组,一次是出价,一次是报价
8=FIX.4.2
9=196
35=X
34=14
49=Xenfin
56=newchange.api -price
52=20140528-08:54:32.144
262=156
268=2
279=1 269=0 278=B 55=EUR/USD 270=1.36201 271=1000000.00
279=1 269=1 278=A 55=EUR/USD 270=1.36205 271=1000000.00
10=133
并且您没有正确处理它。