问题标签 [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.
fix-protocol - 如何在 QuickFix/J 中创建列表订单消息
我正在尝试使用 QuickFix/J lib 生成由我的 TargetCompID 执行的“列表订单”(外汇订单)。
如果我正确理解 FIX 消息标准,我的消息必须包含以下字段(我已将值放在括号中):
标题部分
- 8 开始字符串 (FIX.4.4)
- 9 BodyLength(发送时由quickfixj计算并提供)
- 35 MsgType (E = NewOrderList)
- 34 MsgSeqNum(将在发送时由 quickfixj 计算和提供)
- 49 SenderCompId(就是我)
- 52 SendingTime(发送时由quickfixj计算并提供)
- 56 TargetCompId(这是我的交易对手,将执行我的外汇订单)
然后是身体部位
- 66 ListId (uniq id 计算)
- 68 ToNoOrders(我的订单数量到列表中)
- 73 NoOrders(与我将立即生成完整订单列表的计数值相同)
然后重复以下字段的列表(我的列表中每个订单一个列表字段):
- 11 ClOrdId(我的订单编号)
- 67 ListSeqNo(我列表中的订单索引:从 1 到 N;N = ToNoOrders = NoOrders)
- ... 其他几个字段,如 15(货币)、120(SettlCurrency)
为此,我已经完成了(在 java / quickfixj 中):
但是这样做,在我的 quickfixj 应用程序的回调函数 toApp 中(“这是您正在发送给交易对手的应用程序消息的回调”),在参数 (syso(message)) 中显示消息表明只有一个订单在我的信息中,这是我发出的最后一个命令。
看起来它们是我们可以在 QuickFixJ 中创建的一些“组”,我们可以在同一条消息中添加多个组。但是有很多类型的组,我不知道什么组适合我的“列表顺序”,如果有的话?我看到有一个 Message 的子类,它是 NewOrderList(它是我的 MsgType = E),但它不是一个“组”;并且必须可以直接创建 Message 并提供 MsgType ......
或者我可能没有正确理解我必须提供的 FIX 消息标准和字段?
问候,
亚历克斯
fix-protocol - QuickFIX/J: Not receiving ExecutionReport messages
After opening an order with our brokerage firm, we desire to obtain the fill price from the ExecutionReport
messages. Below you will find the callback code used.
The MarketDataSnapshotFullRefresh
messages are received properly, but the second if
block is never triggered. Strangely, the corresponding messages.log file does contain multiple 35=8
messages.
We use QuickFIX/J as FIX engine.
java - 如何使用 QuickFIX/J 发送 FIX 消息
我需要一个简单的示例来说明如何初始化会话并发送一条 FIX 消息。我有这个初始代码:
quickfixj - QuickFIX/J:体验期在午夜断开连接
当整晚运行我们的 Initiator 应用程序时,会话会在午夜断开一小段时间。
我们的交易对手表示不执行任何每日断开连接,仅在整个市场关闭时每周断开连接。这是我们的 Quickfix/J 配置:
quickfix - 如果 QuickFIX/J 存在,则仅在满足重新发送请求后触发某些东西
一旦连接恢复,我们的系统会在断开/连接丢失后生成一些需要发送给对方的消息(例如主动取消)。
问题是我们触发了发送那些onLogon()
消息,但是如果有一个太早的重新发送请求并且当我们有太多消息要发送(数百条)时我们遇到了问题(可能只是因为另一端的实现方式)。
我知道这ResendRequest
可能不会出现,而且如果不简单地等待就不可能解决这个问题,但是对于我们使用 QuickFIX/J 尽快发送消息但在序列号同步之后的最佳方法是什么?
编辑:我正在尝试使用 FIX 4.2 解决这个问题。FIX 4.4 实际上引入了http://www.onixs.biz/fix-dictionary/4.4/tagNum_789.html这将解决我的问题(只要对方也发送此可选标签)。
谢谢
java - QuickFIX/J:启用协议和密码套件设置
我正在查看此链接以获取有关 QuickFIX/J 配置的帮助。
如何启用 TLS 1.2 作为启用的协议?是吗:
如果我想指定密码套件怎么办?例如,仅使用密码套件TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
和TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
. 是吗:
可以加逗号吗?
没有关于如何在文档中指定这一点的示例。
quickfix - 有没有办法禁用发送 ResendRequest 消息?
重发请求逻辑是一种 FIX 会话机制,通过该机制,给定系统在检测到来自其对手方的消息序列号高于预期时,请求从对手方重新发送的一系列有序消息。对方按顺序重新发送请求的消息范围,直到两个系统都按顺序重新发送
由于我正在处理的市场只想依赖NextExpectedMsgSeqNum,有没有办法通过 Quickfix 引擎禁用ResendRequest消息的发送?
即:配置参数:EnableResendRequest=Y|N
java - 如何在 Camel quickfixj 组件中启用多线程
我正在使用骆驼快速修复组件来消耗不同货币对的市场价格。我订阅了大约 G20 货币对,所以我们得到了很多更新,而我们的端点无法处理这样的负载,所以开始拒绝消息并记录错误。
我认为它可以制作多线程,这样一个线程就可以处理更新的价格。我试图搜索很多,但没有找到任何令人满意的答案。
你能帮我解决这个问题吗?
java - QuickFIX/J 的 GC 问题
我们正在使用 QuickFIX/J 创建一个低延迟的 Java 应用程序。我们订阅了大约 50 个货币对,因此我们每天获得大约 4000000 个报价。这是因为我们从不同的流动性提供者那里获得它们。
我看到很多 GC 发生,在高峰时间我们的应用程序挂起并且没有响应。我尝试过使用 64 GB 堆,也尝试过使用 G1 进行 GC,但没有成功。你能建议我如何解决这个问题吗?
你之前有没有遇到过这个问题,你做了哪些 GC 优化?
我应该从 QuickFIX/J 转移并尝试使用其他 FIX 引擎吗?您能否推荐一些可以满足我要求的开源/商业 FIX 引擎?
目前我正在使用 Java 7。迁移到 Java 8 会有帮助吗?
java - QuickFixJ - quickfix.UnsupportedMessageType: null(Websphere)
我用 QuickFixJ 开发了一些东西,但遇到了一个奇怪的情况。我们有一个存根来模拟修复接受器,在我的环境中本地工作我可以发送/接收我们使用自定义消息类型的消息 quickfixj jar 基于新字典、新消息类型重新生成...
来自我的环境的示例消息。FIX 发起者和 FIX_STUB(acceptor) 之间的通信:
在Tomcat上运行正常,但是当我们尝试在测试环境中使用完全相同的代码并部署到Websphere服务器时,我收到此错误:
正如您在示例中看到的类型(消息子类)它被正确处理(quickfix.fix50sp2.Request,quickfix.fix50sp2.Response)但在 Websphere 上不是(quickfix.fix50sp2.Message)。使用 MessageCracker。
你能帮我解决这个问题,找出为什么会发生这种情况与操作系统、Web 服务器或某些 FIX 配置有关吗?