微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

验证 QuickFix/N 重复组,其中前两个字段交换顺序

如何解决验证 QuickFix/N 重复组,其中前两个字段交换顺序

我正在实现一个客户端来连接到服务器,据我所知,该服务器使用了 FIX4.2 和 FIX4.4 的混合版本。

当某些事件发生时,服务器会以非标准顺序发送带有字段的组 453(nopartyID)。

根据规范文档,第一个字段应该是 PartyID (448)。对于某些消息,组中的第一个字段是 PartyIDSource (447) 并且消息被拒绝。根据规范,PartyIDSource 是组中的第二个字段。

我收到以下错误

<event> Message 140 Rejected: Group 453's first entry does not start with delimiter 448 (Field=453)

从文档和反复试验中,我找不到解决此问题的方法。在一些猜测中,我尝试将字段 447 添加为数据字典中组定义中的第一个(非必需)字段。我还在配置中将 ValidateFieldsOutOfOrder 设置为 N。

有什么办法可以不拒绝和处理消息吗?

相关文档:

组比数据字典的其他部分更微妙。

在消息中定义了一个组,带有组标签。 group 标签的第一个子元素是 group-counter 标签,然后是 group 中的其他字段,按照它们在消息中出现的顺序。

解决方法

ValidateFieldsOutOfOrder 与此处无关,因此您可以将其删除。

如果我没理解错的话,你说的是

  • 有时 447 在 448 之前
  • 在其他时候 448 在 447 之前

如果这是真的,那么不幸的是,您的交易对手真的很愚蠢。根据 FIX 规范,重复组中的字段顺序应该是一致的。 (而且,每个组序列的第一个字段始终必须存在。)如果它们是触发器字段,则它们违反了 FIX。

如果订单是一致的,你只需编辑你的 DD 来改变订单,听起来你已经尝试过了。但是如果你的交易对手是翻转的,那么你的 DD 将永远是部分时间错误。

我没有很好的答案给你。 QF/n 并非旨在处理交易对手修复错误的所有方式(也不应该如此)。

您的交易对手的实施草率。尝试联系他们的支持人员,看看他们是否会解决问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?