3

我是 FIX 协议的新手,我正在使用 QuickFIX 来解析我的 FIX 消息。每当我收到位置报告消息 ( AP) 时,它都会被 FIX 引擎拒绝,并出现以下错误:

组 702 的第一个条目不以分隔符 704 开头

702是一个组标签。我做了一些研究,发现重复的组消息使用它的第一个字段作为分隔符。在我的案例中,组702应该有标签704(LongQty)或705(ShortQty)。只有一个标签会出现。

我的交易对手没有发送703标签。704当 FIX 引擎在某些情况下发现没有标签时,它会拒绝该消息。请让我知道你的建议来解决这个问题。

4

1 回答 1

2

FIX 期望每个组都以一个一致的标签开始。

例如,您可以通过重新排列(或删除/添加)该组中的字段来更改 XML DataDictionary 中的该标记以使用 704 而不是 703。

在我的案例中,组 702 应该具有标签 704(LongQty)或 705(ShortQty)。

不,那行不通。 它总是以 704 开头还是总是以 705 开头?它不可能是其中之一。

如果您的交易对手真的说这是其中之一,那么他们做错了 FIX,我们应该公开羞辱他们。(说真的,难道他们不能只输入 704=0 而不是省略它吗?)要处理这种白痴,您可能必须破解 QF 引擎。

我建议您与您的交易对手再次核对,以确认他们确实做错了这样的事情。我希望(为了你)你弄错了。

编辑:

这是来自 FIX 44 规范,第 1 卷,第 19 页:

如果使用重复组,则需要重复组的第一个字段。这允许协议的实现使用第一个字段作为指示新的重复组条目的“分隔符”。NoXXX 之后列出的第一个字段,如果 NoXXX 字段大于零,则成为有条件的必需字段。

于 2016-10-05T19:40:51.540 回答