quickfix:如何从消息中获取符号(标志55)?

Wap*_*iti 2 python quickfix fix-protocol

我正在使用Python API运行QuickFix,并使用FIX4.2连接到TT FIX适配器

我正在登录并发送针对两种工具的市场数据请求。这样就可以正常工作,并且可以从仪器中获得预期的数据。我可以从消息中获取各种信息。

但是,我在获取符号(标志55)字段时遇到麻烦。

    import quickfix as fix

    def fromApp(self, message, sessionID):

        ID = fix.Symbol()
        message.getField(ID)
        print ID
Run Code Online (Sandbox Code Playgroud)

这适用于我收到的第一条消息[初始市场数据快照(标志35 = W)]。一旦开始进行增量刷新(标志35 = X),就无法再获取“符号”字段。每条到达的消息都会导致“未找到字段”错误。

这使我感到困惑,因为在日志中,无论消息类型是W还是X,符号字段始终存在。

认为符号在刷新消息的标题中,我尝试get.Field(ID)在35 = W和get.Header().getField(ID)35 = X时使用,但是这不起作用。

有人可以帮我弄清楚这里发生了什么吗?我希望能够明确告诉我的计算机正在查看什么仪器。

谢谢

Gra*_*ier 5

您的问题很简单,但是您也混入了一些误解。

1)符号将永远不会出现在标题中。这是一个身体领域。

2)在X条消息中,符号位于重复组中。你首先必须得到与群对象msg.GetGroup(),然后得到的符号。请从重复组文档页面中查看此示例代码

3)在W消息中,该符号不在组中。这就是为什么它在那里为您工作的原因。

显然,您对QuickFIX和FIX而言一般来说都是新手。我认为您应该花几分钟时间浏览docs的“使用消息”部分。

此外,FIXimate网站可以成为您最好的朋友。

  • 重复组的大小可能为1,例如实际上并没有重复:)查看字段268;它告诉MDIncGroup中有多少个MDEntries。我敢打赌,您要解析的特定邮件的值为268 = 1。 (2认同)