解析FIX消息的最佳方法是什么?

时间:2010-02-22 13:46:16

标签: finance quickfix

如何使用python解析FIX消息? (FIX消息,如'财务'FIX协议)

6 个答案:

答案 0 :(得分:10)

你的意思是使用QuickFIX吗? (我可以在你的标签中看到QuickFIX)

如果是这样,我不知道。 通常,为FIX消息编写简单的解析器并不困难。 我发现valid fix上的网络工具可以胜任。

答案 1 :(得分:7)

除了使用实际的quickfixengine之外,当您知道它包含特定标记时,很容易解析修复消息。

它包含0x1分开的'key = value'字符串对。一个复杂因素是组,因为您必须弄清楚标记是组中的第一个(组标题),然后找出组结束时(当它击中不在组中的另一个标记时)。

另一个有问题的字段是RawData,它可以包含任何内容,包括字段分隔符0x1,但它之前是RawDataLength,因此您必须首先读取它,然后在RawData标记之后读取RawDataLength字节数以到达下一个字段。

我相信quickfixengine使用标签字典,它可以确定标签是第一组,然后继续添加,直到击中不在组中的标签。

当我需要自定义解析FIX消息时,我大部分都知道我们期望的消息和数据,所以我可以为这些消息调整它。

答案 2 :(得分:5)

FIX格式令人惊讶地解析(因为非XML格式,即几乎所有人都使用的格式,没有子组开始和结束标记,而是你必须根据标记排序规则来解决它,和不在子组中的标记,标题或尾部可以按任何顺序排列。)

因此,我建议你不要自己解析它,而是建议使用现有的库。

唯一维护良好的开源选项是Java QuickFIX/J库。

有许多商业解决方案,例如CameronFIX

答案 3 :(得分:4)

尝试http://fix.nowing.com

这是一个基于Web的修复消息解析器

答案 4 :(得分:2)

来自quickfixj源代码,它使用treeMap来处理FIX消息。

关于XML格式,我认为FIX更好,尽管JAVA中的解析更难。因为XML太重了。

答案 5 :(得分:1)

没有一种最佳方式,但考虑到您或SO系统附加的quickfix标记,查看QuickFix开源FIX引擎将是一个很好的起点

如果您所在的公司非常重要,或者您需要更多支持和服务,还有许多商业供应商。

祝你好运