2

我想生成一个市场数据请求,其中包含 2 组NoMDEntryTypes(267) 和NoRelatedSym(146) 一个接一个,如下所示:

267=2 269=0 269=1 146=1 55=EUR/USD

但是当我以某种方式发送消息时 quickfixj 或我的数据字典将组的顺序交换为以下内容:

146=1 55=EUR/USD 267=2 269=0 269=1 

即使我创建一个直接字符串消息并通过我的数据字典对其进行验证,也会发生这种情况。

我该怎么做才能使组保持我想要的顺序?!谢谢

4

2 回答 2

5

在 FIX 中,顶级正文中的标签顺序无关紧要。各种 QuickFIX 引擎的Message对象内部表示忽略顶级标签顺序,因为存储它没有任何好处。当消息转换为字符串时,它按数字标签顺序对它们进行排序。 根据 FIX,它不会以任何有意义的方式更改消息。

(顺序保留在重复组内,因为 FIX 确实要求排序在组内是有意义的。)

我该怎么做才能使组保持我想要的顺序?!

对于 QuickFIX,答案是:不能

如果这对您的需求来说是一个非常大的问题(没有理由应该如此),那么我想您将不得不探索其他 FIX 引擎选项。

于 2015-08-14T15:43:44.373 回答
1

定义扩展 GROUP 的类并使用您自己的顺序。只需检查 NoMDEntryTypes.NoRelatedSym

于 2020-09-04T08:44:26.863 回答