问题标签 [quickfixn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
338 浏览

fix-protocol - FIX 协议:在重传期间接收到无序消息会导致重传循环

我有一个使用 QuickFIX/n 作为 FIX 层的修复客户端。

如果由于某种技术原因我的客户端断开连接,FIX 服务器将继续发送消息,直到它注意到客户端不再存在(我假设有心跳)。

当我的客户端重新连接时,它会注意到第一条消息的间隙。例如,如果我的客户端最后收到的消息 SeqNuM=124 并且在重新连接时服务器发送 SeqNum=152,这意味着服务器在意识到断开连接之前将消息从 125 发送到 151。

我的问题发生在之后。我的客户发送一个重新发送请求 34=2,BeginSeqNo 7=125 和 EndSeqNo=0(给我一切)。在此重传期间和完成之前,FIX 服务器向我发送 SeqNo=153 的新消息

所以我的客户得到的是:

与对方(负责服务器)交谈时,他们说在重传期间继续发送新消息是可以的,我应该缓存它们直到重传完成。

看起来这不是 QuickFIX/n 实现的方式(我没有找到处理这种特定情况的选项),但是在查看 FIX 文档时,我找不到有关此缓存过程的任何信息。我还假设这个缓存过程非常复杂,因为我可能应该缓存给定时间(否则我可能会永远等待丢失的消息)。

我的问题很简单:这个缓存过程是什么,我在哪里可以找到有关它的规范?而且,这是由 QuickFIX 库处理的,还是我应该在它之上实现一些特定的东西?

0 投票
0 回答
17 浏览

quickfixn - 在 QuickFIXn NewOrderSingle() 中设置用户定义字段

我想平仓并构建新订单单消息。但未能在此消息中添加用户定义字段(9041=_ID)(其他预定义字段已成功添加)。有人知道吗?

0 投票
1 回答
60 浏览

python - QuickFix Python,CompositeLogFactory 不可用?

在 Java 或 C# 中,您可以使用 compositelogfactory 来同时使用 screenlogfactory 和 filelogfactory 将日志写入日志文件和屏幕

但是在 Python 版本(SWIG C++ 版本)中,我找不到 CompositeLogFactory。这是不可用的,还是可以通过 Python QuickFix 以不同(但相似)的方式实现相同的功能?

0 投票
1 回答
189 浏览

c# - Quickfix/n QuickFix.FieldConvertError: 无法转换字段: 无法将字符串转换为 int (N)

我收到以下错误,无法弄清楚原因(没有其他错误):

我正在将此消息发送到我的应用程序(它要长得多,但我删除了很多消息以尝试找到有问题的标签并将消息减少到下面的剩余标签,但看起来问题不在于消息本身):

这是我的数据字典的一部分:

我已经尝试将标签的类型从“int”切换到“string”,但仍然出现该错误。我很困惑。

我正在使用 QuickFix v1.9.0.0。我的应用程序是用 C# 编写的,但这并不重要,因为传入的消息甚至没有击中我的代码。

非常感谢任何建议/建议。

0 投票
1 回答
178 浏览

quickfixn - QuickFIX/n 不支持的消息类型

我正在将 VB.NET 应用程序从 Quickfix.net 1.0.3 升级到 github 上的最新代码(甚至比已发布的 v1.9.0 更新,因为我需要一个新功能)。进行必要的更改后,当我尝试发送 FIX42.NewOrderSingle 时,我收到了来自破解程序的 Unsupported Message Type 错误。我已经查看了每个论坛上的每个类似问题,问题通常是它没有处理特定的消息类型,但我正在处理确切的类型,所以我不确定问题是什么。我也在使用开箱即用的规格。

有什么想法或有什么方法可以调试问题吗?

0 投票
1 回答
303 浏览

quickfixn - QuickFix 维护多个接受器之间的序列号

我正在使用 Quickfix/n 库。我有在 2 台机器和一个启动器上运行的接受器。目前,当其中一个接受者出现故障时,我遇到了维护发起者和接受者之间的序列号的问题。对于 ex-Initiator 正在发送和接收来自机器 1 上的接受者的消息。机器 1 上的接受者发送的最后一个 SeqNum 是 5 当它关闭时。现在机器 2 上的接收器已连接,但启动器正在发送注销消息,说 MsgSeqNum 太低,期望 SeqNum 6 但接收到 1。那么我如何确保机器 2 上的接收器将从 SeqNum 6 而不是 1 开始?

0 投票
1 回答
230 浏览

c# - Quickfixn-FIXT1.1 和 FIX5.0 版本 MarketDataSnapshotFullRefresh 360T “标签出现不止一次”

我使用带有 FIXT1.1 的 Quickfixn 作为 TradeClient 从 360T 获取外汇市场数据。

我收到此错误“标签出现多次” 8=FIXT.1.19=14835=334=1249=XXXXXXX50=XXXXXXX.EDF.API52=20200804-16:22:11.47156=360T_SEP142=QUOTE145=1258=标签出现多次371 =423372=373=1310=117

我正在为 AppDataDictionary 使用附加的 FIX50.xml 文件。我正在使用 github/Quickfixn 上的 FIX50.xml 和 FIXT11.xml 数据字典文件。我已经尝试了 Stack Overflow 中针对此错误的所有解决方案。它没有成功。任何帮助,将不胜感激。

tradeclient.cfg

TradeClientApp.cs

0 投票
0 回答
168 浏览

c# - FIX 连接停止

我在 IIS 中运行我的应用程序,一段时间后我在事件日志中得到了这个,应用程序停止与 ECN 连接。我试图禁用回收,但仍然没有成功。你能指点我任何解决方案吗 

0 投票
2 回答
77 浏览

quickfix - 如何回答 MassQuoteAck?

我正在尝试出价并询问 primeXM 经纪人。但我不知道我做错了什么。谁能给我看一个回答 Massquote 的例子?

一旦我收到 MassQuote 响应,我就会发送 MassQuoteAsk,但会出现错误“缺少必需的标签”。

日志:

市场数据请求:

MassQuote 消息响应:

0 投票
0 回答
193 浏览

quickfixj - 修复协议并使用交错的实时消息重新发送?

当我们收到与新/新消息交错的重发消息时,修复(即快速修复)客户端的正确行为是什么?

我有一种情况,我们在登录时检测到大量丢失的消息,msgseqnum 比预期的要高。
发起者发出重新发送(开放式)。
接收到新的/未经请求的消息并将其放入队列中。

有趣的部分在收到第一个错过的修复消息后开始,(第一个重发消息,34 = BeginSeqNo)

当这种情况发生时,我们的 quickfixn 发起方进入某种模式并考虑重新发送完成(或其他),当我们在许多重新发送的消息后不久收到一条新的/未经请求的消息,该消息与重新发送流交错时,我们的发起方将发送一个新的重发。

这个序列继续下去,我们最终会遇到大量的并发重新发送,并且每个重新发送的消息都充满了网络。

由接受者交错实时和重新发送提要是否正确?

在这种情况下,quickfixn 发起者是否应该再次发送重新发送?
(没有“重新发送完成”消息,所以我可以理解发送新重新发送的行为,但已经有重新发送正在进行中..)

接受者实际上应该进行并发和重叠重发吗?


编辑/添加问题,因为评论太长了。

我们的 qfn 配置了默认的 SendRedundantResendRequests (false),并且它对很多“不发送另一个”也有效。

参见例如日志:

事件“从:2999869 到:0 已满足”使 qfn 认为正在进行的重新发送已完成,并且在下一个“MsgSeqNum 太高,预期为 2999877 但收到 3004825”时发出另一个重新发送,尽管已经有重新发送正在进行。

这继续下去,上面的例子给出了多个并发重新发送。

客户端是否应该在 3002521 之前发送另一个重发请求?

这里发生的情况是我们收到重新发送的消息 2999869 - 2999876 但随后我们收到 3004825(不正确?)触发新的重新发送。