除了使用实际的quickfixengine之外,当您知道它包含特定标记时,它很容易解析修复消息.
它包含0x1个分开的'key = value'字符串对.一个复杂因素是组,因为你必须弄清楚标签是组中的第一个(组头),然后找出组结束时(当它击中不在组中的另一个标签时).
另一个有问题的字段是RawData,它可以包含任何内容,包括字段分隔符0x1,但它之前是RawDataLength,因此您必须首先读取该字符,然后在RawData标记之后读取RawDataLength字节数以到达下一个字段.
我相信quickfixengine使用标签字典,它可以确定标签是第一个组,然后继续添加,直到命中不在组中的标签.
当我需要自定义解析FIX消息时,我大部分都知道我们期望的消息和数据,所以我可以为这些消息调整它.
FIX格式令人惊讶地难以解析(因为非XML格式,即几乎所有人都使用的格式,没有子组开始和结束标记,而是你必须根据标记排序规则来处理它,并且标记为不在子组中,标题或尾部可以按任何顺序排列).
因此,我建议您使用现有的库来执行此操作,而不是自己解析它.
唯一维护良好的开源选项是Java QuickFIX/J库.
有许多商业解决方案,例如CameronFIX
| 归档时间: |
|
| 查看次数: |
21017 次 |
| 最近记录: |