【问题标题】:Quickfix/C++ - Ordering fieldsQuickfix/C++ - 排序字段
【发布时间】: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


【解决方案1】:

为了解决这个问题,我在消息中使用了一个现有的重复组,并在其中添加了标签 #29,并仅在插入的组元素的最后一个元素上对其进行初始化(我无法复制粘贴或将代码发送到外部,对不起)。

【讨论】:

  • 我修剪了不是答案的部分(答案部分仅用于此目的)。
  • 它碰巧是什么嵌套组?可以分享一下吗?
猜你喜欢
  • 2019-07-15
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
相关资源
最近更新 更多