使用 Quickfix 市场数据增量刷新时标签出现多次

Posted

技术标签:

【中文标题】使用 Quickfix 市场数据增量刷新时标签出现多次【英文标题】:Tag appears more than once while using Quickfix market data incremental refresh 【发布时间】:2014-05-30 11:26:00 【问题描述】:

我已经实现了请求市场数据的修复客户端。我已成功登录到服务器,但是当服务器向我们发送 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=欧元/美元 270=1.36201 271=1000000.00 279=1 269=1 278=A 55=欧元/美元 270=1.36205 271=1000000.00 10=133

在我的配置文件中我没有使用数据字典并设置 UseDataDictionary=N

【问题讨论】:

标签是否在数据字典的重复组中?如果不是,则需要将其移到正确的组中 您应该粘贴它拒绝的消息。 【参考方案1】:

这通常意味着您有配置或 DataDictionary 问题,或两者兼而有之。

配置问题:你的配置应该有UseDataDictionary=YDataDictionary=path/to/xml(或者AppDataDictionary=TransportDataDictionary=,如果你在FIX5上)。

DataDictionary 问题:您的交易对手可能已将自定义字段添加到消息中,而您的 DD 尚未正确更新以反映它们。在解析重复组时,当 QF/n 解析器发现不属于(每个 DD)组的字段时,它假定组已结束。之后的任何字段都被视为组外。

您需要编辑您的 DD 文件以反映您的交易对手对标准消息集所做的任何更改。这可能包括添加自定义字段,并且可能包括重新排列字段顺序或将字段添加到他们通常不属于的组中。有关编辑 DD 的更多信息,请参阅此页面:http://quickfixn.org/tutorial/custom-fields-groups-and-messages

【讨论】:

查看this mail list thread,了解一个遇到类似问题的人的更具体示例。【参考方案2】:

那是因为你有一个重复组,一次出价,一次出价

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  

你没有正确处理它。

【讨论】:

谢谢rupweb,你能告诉我如何正确处理吗?这对我真的很有帮助。 这里是重复组quickfixn.org/tutorial/repeating-groups和quickfixj.org/quickfixj/usermanual/1.5.3/usage/…的快速修复链接

以上是关于使用 Quickfix 市场数据增量刷新时标签出现多次的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2010 (utility.obj) 中使用带有 VC++ 的 QuickFix 时出错

刷新recyclerview后数据来了两次

由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?

使用 ninja 和 clang++ 时 vim 中的快速修复列表

-PowerBI SQL 导入数据与增量刷新

vue实现不刷新整个页面刷新数据