【发布时间】:2017-11-28 16:08:10
【问题描述】:
我目前正在尝试使用 Quickfix/C++ 在 FIX 中向金融市场发表演讲。 这个市场拒绝了我的消息(一个 RegistrationInstruction,msgtype=o),告诉我一个字段不在正确的位置。
问题是指定的标签 (#29 LastCapacity) 是由 quickfix 在字段 SecurityIDSource #22 和 SecurityID #48 之间发送的,市场告诉我仪器“组件”应该按照规范的定义发送:
Start <instrument>
55 Symbol
48 SecurityID
22 SecurityIDSource
167SecurityType
end <Instrument>
那么标签 #29 不应该出现在这个组件中。
你知道如何告诉 quickfix 不要在 #22 和 #48 之间发送 #29 吗?
非常感谢
【问题讨论】:
-
该字段是否属于重复组?顺序不相关,除了如果该字段出现在重复组中。请至少在您的问题中包含一个构建消息的代码片段。
-
事实上,该字段不是重复组的一部分。但是我向其发送消息的服务器抱怨该字段位于“块”内,这会破坏其块读取过程:-( ...我知道在这种情况下字段顺序无关紧要,但不幸的是,我应该只是做我的交易对手告诉我做的事情。我把这个字段放在一个重复组中只是为了把它发送到另一个地方。现在,这个字段只设置在最后一个组元素中,然后在消息的末尾。
-
那么您的交易对手不符合 FIX 标准……肯定会很痛苦。它至少会帮助周围的人在 quickfix 标签上包含一个显示您如何构建消息的代码片段。
-
另外,字段 29 不是至少 4.4 版本的 Registration Instructions 的一部分。不知道为什么要发送那个。字段LastCapacity 不应出现在该指令中。你确定是这条指令被拒绝了吗?字段 22 和 48 也不会出现在该消息中...
标签: quickfix