3

我正在使用 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

这适用于我收到的第一条消息 [初始市场数据快照(标志 35 = W)]。一旦我开始获得增量刷新(标志 35 = X),我就无法再获得 Symbol 字段。到达的每条消息都会导致 Field Not Found 错误。

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

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

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

谢谢

4

1 回答 1

5

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

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

2) 在 X 消息中,符号在重复组中。您首先必须使用 获取一个组对象,然后从中获取msg.GetGroup()符号。请参阅此示例代码,来自重复组文档页面

3) 在 W 消息中,符号不在一个组中。这就是为什么它在那里为你工作。

总体而言,您似乎对 QuickFIX 和 FIX 很陌生。我认为您应该花几分钟时间浏览一下文档的“处理消息”部分。

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

于 2013-03-19T00:48:55.913 回答