如何处理 FIX 中的递归?

How to handle recursion in FIX?

想象这样一种情况,您需要在 FIX 消息中表示递归数据结构,例如树。你会怎么做?

我可以这样表示 JSON 中的数据结构:

{
  {
    "name": "1"
  },
  {
    "name": "3",
    "chains": [
      [
        {
          "name": "a"
        },
        {
          "name": "c",
          "chains": [
            {
              "name": "x"
            },
          ]
        }
      ],
      [
        {
          "name": "A"
        },
      ]
    ]
  }
}

我如何在 FIX 中表示它?


我要在这里提出一个解决方案。

忽略标准 FIX 标签号。

标签:

组件:

以# 开头的行是注释,不是实际消息的一部分。 新行是标记分隔符。

# start of level 0
3=2
1=1
1=3
start of level 1
4=2
3=2
1=a
1=c
# start of level 2
4=1
3=1
1=x
# end of level 2
3=1
1=A
# end of level 1
# end of level 0

请评论这是否是有效的 FIX,以及是否有更好的方式在 FIX 中表达它。

没有充分的理由在 FIX 消息中包含递归段。为什么任何金融信息传输都需要无限深入?

您找不到任何关于它的信息,因为在传统的 FIX 用户群中没有任何一方想要它。

我想您可以自定义 FIX 数据字典以使重复组包含自身。我怀疑这样的 DD 会使至少一个(如果不是全部)QuickFIX 端口的代码生成器崩溃,因为它们可能不会检查这种精神错乱(因此会继续在您的内存中创建递归结构,直到它们崩溃为止).