问题标签 [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.

0 投票
2 回答
4641 浏览

java - “Sent test request TEST”发生后 Quickfix/j 的奇怪行为

我正在使用 Quickfix/J 接收消息,但发生“已发送测试请求 TEST”。日志文件 (FIX.4.2-AB.event.log) 显示:

但我在另一个日志文件(FIX.4.2-AB.message.log)中找到了一些东西:

这显然表明对方B已经将心跳发送回给我们。

而且 FIX.4.2-AB.messages.log 文件还在增长!!!!!!!!!!!!该文件继续接收消息,但 Quickfix/J 进程没有(在 onMessage() 方法中没有发生任何事情)!!!!

请帮助我了解为什么会这样?为什么收到心跳后还是断开连接,日志断开?


因为这个问题还没有解决。这是更新:

我的配置:

这是代码:

基本上我让Quickfix/J自己处理连接。

问题是应用程序仍在继续接收消息但没有处理它们,并且日志文件显示它没有连接。所有消息都在 FIX.4.2-AB.message.log 中,这就是它不断增长的原因。

我发现了一些类似的案例:

http://www.quickfixj.org/jira/browse/QFJ-668

http://www.quickfixj.org/jira/browse/QFJ-624

http://quickfix-j.364392.n2.nabble.com/Timed-out-waiting-for-heartbeat-td365186.html

http://www.quickfixj.org/jira/browse/QFJ-759

不幸的是,他们都没有提供解决方案。所以请帮帮我。


第二次更新如下:

我提取日志文件(我是 A,对方是 B):

请注意,它会继续尝试再次登录会话但失败。

同时,我确信该应用程序会不断收到来自对方的消息。证据是 FIX.4.2-AB.message.log 文件随着有效消息(不仅仅是心跳,还有其他有效消息)不断增长。这意味着连接不会丢失。

为什么我无法登录会话?

请帮忙


第三次更新:

我的登录成功日志如下:

第三行表示对方向我发送了一个 TEST 请求,我没有响应,这似乎没问题并且建立了连接。

我应该明确处理 TEST 请求的响应吗?看来 quickfix/j 会为我处理。

0 投票
2 回答
1281 浏览

quickfix - 减慢每秒发送的 FIX 消息以适应供应商限制要求

我通过 FIX 协议向供应商发送订单。供应商每秒只接受 100 条 FIX 消息,并要求我限制我发送给他们的订单不超过这个速率。我确信我可以写一些东西来减慢我发送给他们的消息,类似于我在这里找到的内容:Throttling method calls to M requests in N seconds

但我有两个问题:

我想知道减慢发送给执行供应商或清算公司的消息的速度是否是行业的普遍要求,或者这是我正在与 rinky-dink 供应商打交道的危险信号?

是否有一些参数可以让 QuickFix/J 自动减慢我的消息吞吐量?

0 投票
2 回答
1493 浏览

java - 为什么 QuickfixJ 在发送注销响应后仍然启动登录

QuickfixJ用来连接到对方的 FIX 消息。

但是,有一天我发现日志如下:

显然,对方发送了一个注销请求,我的应用程序做出了响应。会话应该结束并关闭。

为什么应用程序仍然尝试向对方发起登录请求?

我错过了什么吗?因为我内部没有实现onLogout(SessionId session)fromAdmin(Message message, SessionId session)而且我认为它可以自己自动QuickfixJ处理

0 投票
2 回答
503 浏览

java - 在 Java 中使用 QuickFix/J 查询远程服务器以获取仪器的位置

我正在使用 FIX 协议和 QuickFix/J API 构建一个用于与远程服务器进行交易的客户端。

我可以发送订单、接收价格更新、取消订单等...

我现在被要求“查询 API 以获取仪器的当前位置”。

所以假设我可以提交一个购买工具的订单,但它没有被执行,我想从服务器接收一些信息,比如“你在数量 Y 的工具 X 上做多”。

是否可以使用 QuickFix/J API?

我写了一个这样的方法

它发送这样的 FIX 消息

8=FIX.4.29=9835=AP34=4949=HIQ6_ORDER52=20140324-
15:54:10.14256=HIQFIX1=100539048=466378955=SAP207=XETR10=199

并收到这样的消息:

8=FIX.4.29=9935=334=6949=HIQFIX52=20140324-15:54:10.89156=HIQ6_ORDER45=4958=无效的 MsgType372=AP373=1110=242

如您所见,我收到“无效消息”错误

0 投票
1 回答
699 浏览

vim - Vim 中 Quickfix 结果的着色

grep在 Vim 中使用时,如何使 quickfix 中的结果着色?

我努力了:

set grepprg=grep\ --color=always\ -n\ $*\ /dev/null

但它不起作用。

我在 cygwin 上使用 Vim 7.4,我也在 Linux Mint 15 中尝试过。请帮忙,谢谢。

0 投票
1 回答
783 浏览

java - quickfix/j 连接状态机

有人可以将 Quickfix/J 连接解释为有限状态机(理想情况下带有图表)吗?

具体来说 , 中的方法有什么区别SessionStateListener(大概代表状态变化),它们应该以什么顺序发生?:

  • 连接
  • 断开连接
  • 登录
  • 注销
  • 重置
  • 刷新
  • onMissedHeartBeat
  • 心跳超时

有什么区别,例如登录和连接?重置与断开连接有何不同?有什么onMissedHeartBeat不同onHeartBeatTimeout?这些是否有特定的顺序发生,例如可以在登录之后但在注销之前发生断开连接?在这种情况下,状态是否会重置为“注销”?

0 投票
1 回答
235 浏览

fix-protocol - Quickfixj 自动重新订阅报价会话

作为我们的 FIX 提供商对我们开发的连接器应用程序执行的一致性测试的一部分,在经历所有会话的突然断开后,应该自动重新连接并重新订阅报价会话。

由于我们使用 QuickfixJ,当报价会话发生任何中断时,客户端应用程序会自动重新连接并重新登录成功,并且默认情况下会将序列号重置为从 1 开始。但是,重新登录后,我们的应用程序不会收到任何报价消息即使交易对手在中断之前不断发送订阅的报价(这就是我们的交易对手所说的)。除了成功的 Heartbeat 消息外,我们在日志中也看不到任何内容。

重新登录后是否必须再次发送新的 QuoteRequest?还是我们必须发送 ResendRequest?

我认为我们不能在这里发送 ResendRequest,因为在登录期间序列号已经被重置。如果我们必须发送一个新的 QuoteRequest,它是否会导致交易对手出现任何错误,因为它没有停止发送先前订阅的 Quotes?

您能否建议我们一个解决方案。提前致谢。

0 投票
1 回答
3272 浏览

quickfixj - QuickFixJ:创建启动器设置

我对设置 FIX 连接不太了解,但我完全按照站点的说明进行操作。我已经到了“从 Eclipse 运行”标题下的最后一点,一切都完全按照说明中的说明发生了。

但是,现在,当我尝试运行 QFixMessenger.java 代码时,我收到以下错误:

2014-04-01 14:10:32.743 错误 qfixmessenger.QFixMessenger - 登录失败!quickfix.ConfigError:quickfix.mina.initiator.AbstractSocketInitiator.createSessions(AbstractSocketInitiator.java:173) 的设置中没有启动器 quickfix.mina.initiator.AbstractSocketInitiator.createSessionInitiators(AbstractSocketInitiator.java:81) 的 quickfix.SocketInitiator.initialize(SocketInitiator .java:85) 在 quickfix.SocketInitiator.start(SocketInitiator.java:65) 在 com.jramoyo.qfixmessenger.QFixMessenger.logon(QFixMessenger.java:315) 在 com.jramoyo.qfixmessenger.QFixMessenger.main(QFixMessenger.java: 146) 2014-04-01 14:10:32.956 错误 ui.QFixMessengerFrame - 无法解析 FIXT 1.1 字典!com.jramoyo.fix.model.parser.FixParsingException:文件资源/FIXT11.xml 未找到!在 com.jramoyo.qfixmessenger.quickfix。

还有很多其他的错误行,但我认为上传整个错误消息可能太混乱了。

这是人们第一次尝试使用 FIX 时遇到的一般错误吗?如果是这样,有人可以给我一些关于我应该做什么的指示吗?

这是我的 quickfix.cfg 文件的样子:

如果还有什么我可以提供的,请告诉我。老实说,我很迷茫,我什至不确定哪些信息可能是相关的。

谢谢

麦克风

0 投票
2 回答
1219 浏览

quickfix - QuickFIXJ FieldnotFound 异常

在我的应用程序中,我收到了大量的 FIX 消息。我是否应该检查我检索的所有标签是否存在标签。如果我没有检查标签是否存在,我会收到 FieldNotFound 异常,以防消息中不存在标签。有没有办法绕过 isSetField(Field) 方法来检查消息中是否存在标签。任何帮助,将不胜感激。谢谢,比宾

0 投票
1 回答
3846 浏览

quickfix - 如何注销修复会话?

我正在使用quickfixj。我有一条像“EndTrade”这样的自定义消息,当我收到该消息时,我想结束修复会话吗?我怎样才能做到这一点?我还没有找到任何方法这样做。它不允许我使用new Session().logout().