Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 快速修复:如何从消息中获取符号(标志55)?_Python_Quickfix_Fix Protocol - Fatal编程技术网

Python 快速修复:如何从消息中获取符号(标志55)?

Python 快速修复:如何从消息中获取符号(标志55)?,python,quickfix,fix-protocol,Python,Quickfix,Fix Protocol,我正在使用Python API运行QuickFix,并使用FIX4.2连接到TT-FIX适配器 我正在登录并发送两种工具的市场数据请求。这很好,来自仪器的数据也如预期的那样。我可以从这些信息中得到各种各样的信息 但是,我在获取符号(标志55)字段时遇到问题 这适用于我收到的第一条消息[初始市场数据快照(标志35=W)]。一旦我开始获得增量刷新(标志35=X),我就无法再获得符号字段。收到的每条消息都会导致“字段未找到”错误 这让我很困惑,因为在日志中,无论消息类型是W还是X,符号字段始终存在 认

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

我正在登录并发送两种工具的市场数据请求。这很好,来自仪器的数据也如预期的那样。我可以从这些信息中得到各种各样的信息

但是,我在获取符号(标志55)字段时遇到问题

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

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

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

有人能帮我弄清楚这是怎么回事吗?我希望能够明确地告诉我的计算机它在看什么仪器


谢谢

你的问题很简单,但你也有一些误解

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

2) 在X消息中,符号位于重复组中。首先必须使用
msg.GetGroup()
获取组对象,然后从中获取符号。看,从电视上看

3) 在W消息中,符号不在组中。这就是为什么它对你有用

很明显,您对QuickFIX和FIX都是新手。我认为您应该花几分钟时间浏览本课程的“处理消息”部分


此外,该网站可以成为你最好的朋友。

Hi@Grant,是的,我对一切都不熟悉,编程本身。我自己解决了大约四十个问题,只有当我完全被难倒的时候才会问。我感谢你的帮助。我一直在从重复组中获取数据,一直在上下查看QuickFix文档,并一直访问FIXimate。只是想让你知道我不是想让别人帮我解决问题。我不认为这个符号在一个组中,因为在我的日志中,它从未重复过。这一定是一种怪癖,或者可能是滚动我没有看到重复的几条消息。再次感谢。重复组的大小可能为1,例如,它实际上没有重复:)请查看字段268;它告诉MDIncGroup中有多少个MDEntries。我打赌你正在解析的特定消息的值是268=1。(如果我的答案解决了你的问题,别忘了将其标记为“已接受”。也许还可以投票表决。)我确信这就是答案,因为我的代码适用于35=W。我还没有测试,但知道你已经解决了它。(我看了一下日志,果然是268=1。)另外,我需要15个声誉来提高投票率,否则我会提高投票率,以及你对我之前问题的帮助。谢谢
    import quickfix as fix

    def fromApp(self, message, sessionID):

        ID = fix.Symbol()
        message.getField(ID)
        print ID