quickfixj 交换组顺序
quickfixj swaps group order
我想生成一个有 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
即使我创建直接字符串消息并通过我的数据字典对其进行验证,也会发生这种情况。
我该怎么做才能让群组保持我想要的顺序?!谢谢
在 FIX 中,顶级正文中的标签顺序无关紧要。 Message
对象的各种 QuickFIX 引擎的内部表示忽略顶级标记顺序,因为存储它没有任何好处。当消息转换为字符串时,它按数字标记顺序对它们进行排序。 根据 FIX,它不会以任何有意义的方式更改消息。
(顺序保留在重复组内,因为 FIX 确实要求顺序在组内有意义。)
What can I do to keep the groups in the order I want ?!
对于 QuickFIX,答案是:你不能。
如果这对您的需求来说真的是个大问题(没有理由应该如此),那么我想您将不得不探索其他 FIX 引擎选项。
定义 class 扩展 GROUP 并使用您自己的顺序。
只需检查 NoMDEntryTypes.NoRelatedSym
我想生成一个有 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
即使我创建直接字符串消息并通过我的数据字典对其进行验证,也会发生这种情况。
我该怎么做才能让群组保持我想要的顺序?!谢谢
在 FIX 中,顶级正文中的标签顺序无关紧要。 Message
对象的各种 QuickFIX 引擎的内部表示忽略顶级标记顺序,因为存储它没有任何好处。当消息转换为字符串时,它按数字标记顺序对它们进行排序。 根据 FIX,它不会以任何有意义的方式更改消息。
(顺序保留在重复组内,因为 FIX 确实要求顺序在组内有意义。)
What can I do to keep the groups in the order I want ?!
对于 QuickFIX,答案是:你不能。
如果这对您的需求来说真的是个大问题(没有理由应该如此),那么我想您将不得不探索其他 FIX 引擎选项。
定义 class 扩展 GROUP 并使用您自己的顺序。 只需检查 NoMDEntryTypes.NoRelatedSym