问题标签 [quickfixj]
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.
quickfix - 会话级别和应用程序lvl seqNumber?
quickfix/j 是否为两种类型的消息(会话和应用程序 lvl 消息)维护相同的 seqNum 序列,或者每个级别都有单独的 seqNum 序列。
假设我有一个正在运行的连接,同时我得到命令 msgType=D 和 quickfix 会话级消息心跳 msgType=0。msgType = 10 的当前 seqNum,平均而言,当命令 msgType 进来时,我想知道 msgType = D 的序列号是多少。其他 seqNum 将是 11 还是 1?
java - QuickFIXJ 的无效会话
我正在尝试与在一台服务器上正常工作的外部交易对手建立 FIX 连接。我已将实现移到另一台服务器上(在具有自己防火墙的不同网络上)。我可以看到登录消息在双方之间交换(我在应用程序和网络层日志中都看到了)。但是,既然我在登录后立即响应对方消息,我的 FIX 出站消息会引发异常,抱怨没有有效的会话可以发送消息。在此之前,我在网络日志中看不到任何重置(重置发生在上述事件发生之后,我的 quickfixj 应用程序发送注销)。根据对方的指示,我的心跳间隔设置为 30 秒 - 此异常发生在登录响应的一秒内。相同的配置适用于不同的服务器(我没有任何防火墙规则)。有什么想法可能导致这种情况,如果与网络相关,那么确认这一点的最佳方法是什么?
更新:问题与我的错误逻辑有关 - 我已经修复了它。在访问之前未填充会话 ID。
logging - 如何更改日志的 quickfixj 字符集编码?
我将 quickfixj 与 Wildfly Java EE 服务器一起使用。我想让修复日志与应用程序日志合并。但是有“^A”分隔符。有没有办法将quickfixj引擎的编码设置为UTF?我会很感激任何帮助。
c# - QuickFIX/n - 启动器在登录阶段反复抛出错误
我正在使用下面此链接上的交易客户端应用程序在我的 VPS 服务器和经纪人服务器之一之间建立连接。
http://www.quickfixn.org/tutorial/example-applications。
经过一周的努力,我终于可以粗略地连接到经纪人的服务器了。
但是,当我运行交易客户端应用程序时,在登录阶段我收到此错误:
交易客户端应用程序不断重复登录尝试,但是,它始终只收到相同的错误消息。
当然,像我这样的新手在这个 QuickFix/n 引擎上,我真的无法弄清楚出了什么问题。我能想到的一个可能的调查领域是我的 stunnel 证书可能无效,因为我对 stunnel 程序 ( https://www.stunnel.org ) 也很陌生。我只按照网站上的说明使用经纪人的 ip 地址配置 pem 证书,但我不能 100% 确定它的用途。
这是我放在“stunnel.conf”文件中的内容:
以下是来自 stunnel 程序的一些记录消息:
我使用内置的自我证书应用程序使用上面的“stunnel.conf”文件构建了证书。
如您所见,对于像我这样的新手来说,这有点复杂,对此问题的任何想法或提示将不胜感激。
提前非常感谢。
亲切的问候。
米
==================================================== ================================= 更新于 27/11/2014
在我将调试详细设置为高并接受 xapi1492 的建议后,我正在从 Stunnel 日志文件更新我的错误日志。
==================================================== ================================= 更新于 28/11/2014
仍然很难找到答案,所以我决定为 QuickFix 客户端应用程序提供我的配置文件。
==================================================== ================================= 更新于 28/11/2014
接受xpa1492的建议,我把Borker的IP地址和端口号放在SocketConnectHost和SocketConnectPort上。这是我从 QuickFix 客户端应用程序收到的日志消息。似乎建立了初始连接,但登录请求可能以某种方式无效。
代理发送注销请求时传入消息的详细信息。
java - Quickfixj 内部调试日志
我正在使用 QuickFIXJ 1.5 版本。我在 logj.properties 文件中将日志记录级别设置为 INFO,如下所示:
但是在应用程序日志中,我看到了 QuickFIXJ 的调试日志。
为什么它会忽略 log4j.properties 中的级别设置?
谢谢
c# - 获取 QuickFix/n 的会话属性(用户名和密码)
我已将我的用户名和密码放在 FIX 配置文件中。所以我必须认为我应该能够从一些内部变量(如会话变量或 SessionSetting 变量或 session.SessionDataDictionary 或其他变量)中获取用户名和密码。但是,我没有找到任何直接的解决方案来从内部变量中获取用户名和密码。
从逻辑上讲,这可能是非常可行的。但是,没有人建议这样做,或者我没有看到有人在谷歌上这样做。我从谷歌找到的唯一代码位就是这个。
但是上面的代码只适用于 Java 版本的 QuickFix,并且此方法在 QuickFix 的 DotNet 版本中不可用(即 QuickFix/n)
我希望使用 QuickFix/n 为 FIX 4.4 实现类似的结果。如果有人熟悉 QuickFix,这可能是非常简单的任务。我将非常感谢您的提示或建议。如果您对 Java 或 C++ 版本有一些想法,我不介意,因为它们都非常相似。我只需要知道这个用户名和密码存储在哪个变量中,以及如何使用 Csharp 代码获取它。
提前致谢。
java - qfixj 是否覆盖标签 43 的值
如果我在消息中明确添加标签 43=N,当由于某种原因重新发送相同的消息时,qfixj 会用 Y 替换它吗?
如果是,那么有没有办法告诉 qfixj 在重新发送任何特定消息时不包含/替换此标签?我不想自己在 toApp 回调中这样做,因为这会降低性能,因为我只希望将此标记设置为 N 仅用于一种特定的消息类型。
谢谢你
java - 金融信息交换网络平台(QuickFix/J)
我对 FIX 只熟悉了几天,我将不胜感激下面的一些指导。
连接到交易所的交易系统能够接受用于交易和市场数据请求目的的 FIX 消息。我正在尝试使用 QuickFix/J 构建一个 FIX Web 平台,该平台将提供给众多客户。
提供了一个 ip 和一个端口来连接到交易系统的网关,并且我已经获得了它们的有效消息标签。
我已经使用 QuickFix/J 构建了一个本地启动器和接受器(独立应用程序不是 Web)来进行测试并在两点之间发送消息(INITIATOR>ACCEPTOR 和 ACCEPTOR>INITIATOR),这工作正常,我明白了(更多/less) 消息应该如何工作。此外,我还尝试了解多个会话是如何工作的,这对我也有好处。(1 个接受者 - 多个发起者)
当谈到我现在需要继续使用网络应用程序时,我真的很困惑。我的问题:
连接到提供的网关时,我需要运行什么才能发送和接收 FIX 消息?发起者或接受者或两者兼而有之?根据我的理解:发起者将被启动并连接到接受者,所以在这种情况下,网关将成为接受者吗?
假设我想向多个客户端提供这个 Web 平台,并且每个连接的客户端在成功登录后都会有一个专用会话。如果接受者是实际的服务器,它如何知道客户端的会话细节?(SenderCompID 和 TargetCompID)
当前架构:
- 用于运行交易系统的专用服务器,FIX 客户端应用程序将连接到该服务器并发送/接收消息
- Web 应用程序将创建与交易系统的会话,并将发送/接收 FIX 消息
- 关于服务器和 Web 应用程序之间通信的建议?我正在考虑使用 activeMQ 在两点之间进行消息交换。这是个好主意吗?
我知道问太多了,但任何意见/建议将不胜感激。
谢谢你。
更新:
- 我对 activeMQ 最大的担忧实际上是会话管理,以及是否可以使用 amq 开发这样的 Web 应用程序以在客户端-amq-交易平台之间发送/接收消息。我没有深入使用 amq 和 quickfix/j,我只是想确定它实际上是可以做到的。
- 基于以上,您认为这种架构可以正常工作吗?建筑学
quickfixj - QuickFIXJ 设置消息中的 SendingTime
我有一个连接到多个价格提供商的 FIX 应用程序。它将接收到的数据分发给我们的内部应用程序。当它将从价格提供者接收到的消息发送到目标应用程序时,它会修改 FIX 标头中的 SendingTime(52) 字段,这是不可接受的。内部应用程序想要获取原始的 SendingTime 值。如何对 QuickFIXJ 引擎说不要分配时间戳值?
谢谢
quickfixj - QuickFIX/J 禁用存储消息
我有一个 FIX 应用程序,它接收 FIX MarketData 消息并将它们发送到内部应用程序。我禁用了 MarketData 日志记录,因为它会生成非常大的日志,但我们对商店也有同样的问题。当我查看堆转储时,我看到 TreeMap 不断地生长。TreeMap 很可能是 FileStore 中的那个。
在这种情况下人们会怎么做?
谢谢