快速修复(Quickfix)是否自动填充头部、正文和尾部字段?

4

当我想发送一个Quickfix消息(例如Logon),是否需要手动填写每个字段,或者设置文件中的数据会根据需要自动添加。

目前,我可以连接但不能登录到我的经纪人的FIX服务器,我无法得知我做错了什么。

2个回答

2

当您从启动器调用start时,QuickFix将自动连接并发送登录信息。如果无法与经纪人建立联系,请要求他们确认是否能够看到您的登录请求。另外,请确保他们不需要额外的字段,例如密码或SubID


1
@gearhead 你不需要计算校验和,这是 QuickFIX 的工作。如果你需要在 Logon 中发送密码,你需要重写 toAdmin 方法并在消息中填写相应的字段。 - chrisaycock
谢谢@GrantBirchmeier,我现在明白我需要做什么了。当我执行sessionID.isHeaderField(554)时,我发现密码字段不存在,但是当我尝试使用sessionID.setString(554, password)添加它时,一切都崩溃了,说我没有正确使用setField()方法。(顺便说一句,我正在使用Python 2.7) - gearhead
2
@gearhead 不要将密码添加到会话ID中,而是添加到消息中。 - chrisaycock
@gearhead - 是的,就像chrisaycock所说的那样。不要动sessionID!密码是Logon消息体中的一个字段。 - Grant Birchmeier
1
如果您已经准备好了,请将答案标记为已接受。不要忘记点赞优质内容。谢谢! - Grant Birchmeier
显示剩余3条评论

1

QuickFIX会从QuickFIX设置/配置文件中填充字段。因此,当QuickFIX处理连接时,诸如TargetCompID、SenderCompID、Host等内容都会自动填充。请参阅配置指南以获取更多可以在此处填充的字段的详细信息。虽然您可以向此文件添加字段,但是quickFIX引擎不会自动填充它们。您需要覆盖toAdmin方法以添加消息的其他字段。

当您覆盖toAdmin方法时,您需要检查消息类型。如果消息对象与Java中的消息对象相同,则需要获取消息头并检查消息头中的消息类型字段,因为它不在消息正文中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接