我发送标准市场数据增量刷新请求消息(35 = V)并开始接收增量刷新。大多数时候,一切都非常好,花花公子。但是,每隔一段时间,我就会收到一条奇怪的Field not found消息。例如:
(8 =FIX.4.2☺9=00221☺35=X☺49=XXX☺56=XXX☺34=4☺52= 20130624-07:27:06.706☺262=XXX☺268=2☺279= 2☺55=ZN☺48=00A0IN00ZNZ☺10455=ZNU3☺167=FUT☺207=CBOT☺15=USD☺200=201309☺的 290 = 1 ☺269=0☺270=126.4375☺271 =9☺387=12237☺279=0☺269=0☺270=126.421875☺271=57☺10=176☺)
未找到字段
(消息4被拒绝:有条件地需要字段缺失:290)
(8 =FIX.4.2☺9=119☺35=j☺34=3☺49=XXX☺52= 20130624-07:27:07.037☺56=XXX☺45=4☺58=有条件地要求缺少字段(290)☺372=X☺380=5☺10=144☺)
我剪切了一些包含个人信息或无关信息的字段。但正如你所看到的那样,明确的消息4被拒绝,因为它缺少字段290,而实际上290显然存在。
那么,这笔交易是什么?以前有没有人见过这种行为?
我正在使用Python绑定。修复4.2,Python 2.7。
为了完整起见,这是一条没有被拒绝的消息(下一个消息):
(8 =FIX.4.2☺9=00188☺35=X☺49=XXX☺56=XXX☺34=5☺52= 20130624-07:27:06.706☺262=XXX☺268=1☺279= 1☺55=ZB☺48=00A0IN00ZBZ☺10455=ZBU3☺167=FUT☺207=CBOT☺15=USD☺200=201309☺290=1☺269=1☺270=135.15625☺271=13☺387=5111☺ 10 =156☺
(不,拒绝和接受的消息之间的标签55的差异不是原因.QuickFix在55 = ZN消息中发现290.)
我知道这是一个非常技术性的问题,但我希望那里有一位可能知道发生了什么的QuickFix大师。
感谢您的帮助。
答案 0 :(得分:4)
此消息包含两个MDEntries的重复组。字段290出现在第一个字段中,但不出现在第二个字段中。你的代码可能试图从第二个中提取290,从而得到错误。
第1组(有290名):
279=2☺55=ZN☺48=00A0IN00ZNZ☺10455=ZNU3☺167=FUT☺207=CBOT☺15=USD☺200=201309☺290=1☺269=0☺270=126.4375☺271=9☺387=12237☺
第2组(缺少290):
279=0☺269=0☺270=126.421875☺271=57☺
检查提取290的代码。放入if-field-is-present检查,以便它不会尝试提取不存在的字段。
答案 1 :(得分:-1)
请看一下这个页面: http://www.onixs.biz/fix-dictionary/4.2/msgType_X_88.html
在以“添加,更改或删除市场数据条目”
开头的段落中我从未使用过这种消息,但希望这会有所帮助。