如何处理 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 标签号。
标签:
- 1 = 姓名
- 3 = 节点数
- 4 = NumberOfChains
组件:
- 节点:Name (1) 标签是必需的,Chains 组件是可选的
- 链:需要 NumberOfChains (4) 并且至少需要一个链
- 链:NumberOfNodes (3) 是必需的并且至少需要一个节点
以# 开头的行是注释,不是实际消息的一部分。
新行是标记分隔符。
# 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 端口的代码生成器崩溃,因为它们可能不会检查这种精神错乱(因此会继续在您的内存中创建递归结构,直到它们崩溃为止).
想象这样一种情况,您需要在 FIX 消息中表示递归数据结构,例如树。你会怎么做?
我可以这样表示 JSON 中的数据结构:
{
{
"name": "1"
},
{
"name": "3",
"chains": [
[
{
"name": "a"
},
{
"name": "c",
"chains": [
{
"name": "x"
},
]
}
],
[
{
"name": "A"
},
]
]
}
}
我如何在 FIX 中表示它?
我要在这里提出一个解决方案。
忽略标准 FIX 标签号。
标签:
- 1 = 姓名
- 3 = 节点数
- 4 = NumberOfChains
组件:
- 节点:Name (1) 标签是必需的,Chains 组件是可选的
- 链:需要 NumberOfChains (4) 并且至少需要一个链
- 链:NumberOfNodes (3) 是必需的并且至少需要一个节点
以# 开头的行是注释,不是实际消息的一部分。 新行是标记分隔符。
# 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 端口的代码生成器崩溃,因为它们可能不会检查这种精神错乱(因此会继续在您的内存中创建递归结构,直到它们崩溃为止).