我发送标准的市场数据增量刷新请求消息(35 = V),并开始接收增量刷新。在大多数情况下,一切都很好,很花哨。但是,每隔一段时间,我会收到一条奇怪的未找到消息。例如:


  (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专家可能知道正在发生什么。

谢谢你的帮助。

最佳答案

该消息具有两个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检查,以便它不会尝试提取不存在的字段。

关于python - 存在字段时显示“未找到字段”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17270259/

10-10 20:13