如何使用python解析FIX消息? (FIX消息,如'财务'FIX协议)
答案 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)
这是一个基于Web的修复消息解析器
答案 4 :(得分:2)
来自quickfixj源代码,它使用treeMap来处理FIX消息。
关于XML格式,我认为FIX更好,尽管JAVA中的解析更难。因为XML太重了。
答案 5 :(得分:1)
没有一种最佳方式,但考虑到您或SO系统附加的quickfix标记,查看QuickFix开源FIX引擎将是一个很好的起点
如果您所在的公司非常重要,或者您需要更多支持和服务,还有许多商业供应商。
祝你好运