简体   繁体   English

QuickFix / N在破解之前发送错误消息

[英]QuickFix/N sending error message before getting to crack

I am trying to subscribe to MarketData SnapShot full refresh. 我试图订阅MarketData SnapShot完全刷新。

I can see data message 35=W coming in from an established API, but I cannot catch it in either FromApp or FromAdmin. 我可以看到数据消息35 = W来自已建立的API,但是我无法在FromApp或FromAdmin中捕获它。

The quick fix engine is immediately finding something wrong with the message (repeat tags) and is sending an automatic error message to API via ToAdmin, But I suspect message is OK, it is just the engine doesn't like it. 快速修复引擎立即发现该消息(重复标记)有问题,并通过ToAdmin向API发送自动错误消息,但是我怀疑该消息还可以,只是该引擎不喜欢它。

It never gets chance to get cracked. 它永远不会有机会被破解。 Why is this happening? 为什么会这样呢?

My subscription message:
 8=FIX.4.4|9=130|35=V|34=2|49=STR.NY.SIM|52=20150429-10:52:21.032|56=XXX|262=MARKETDATAID|263=1|264=1|265=0|267=1|269=0|146=1|55=EUR/USD|10=114|

Reply from API:
 8=FIX.4.4|9=0342|35=W|49=XXX|56=STR.NY.SIM|52=20150429-10:52:21.035|34=2|262=MARKETDATAID|55=EUR/USD|64=SP|268=2|269=0|278=2ba#1430304740070#0.B_J0+|270=1.39076|271=4000000|272=20150429|273=10:52:20.070|15=EUR|282=JPMC|64=20150501|269=1|278=2ba#1430304740070#0.O_J0+|270=1.39088|271=4000000|272=20150429|273=10:52:20.070|15=EUR|282=JPMC|64=20150501|10=080|

QuickFix response BEFORE crack:
 8=FIX.4.4|9=121|35=3|34=3|49=STR.NY.SIM|52=20150429-10:52:21.108|56=XXX|45=2|58=Tag appears more than once|371=64|372=W|373=13|10=221|

I don't see field 64 mentioned in the definition of MarketData SnapShot full refresh message for FIX4.4 . 我没有在FIX4.4MarketData SnapShot完整刷新消息的定义中提到字段64 Not just that, it appears more than once in the reply from the "established" API. 不仅如此,它还多次出现在来自“已建立” API的回复中。

Field 64 is the field for Settlement Date ... It may be that the counterparty is sending more data than is required or interprets this as another field. 字段64是“ 结算日期 ”字段...可能是对方发送的数据超出要求,或者将其解释为另一个字段。 Even so, the format of the contents should be YYYYMMDD which is not so for the first occurrence of this field. 即使这样,内容的格式也应该是YYYYMMDD ,对于此字段的首次出现则不是。

QuickFIX validates messages according to the Data Dictionary (cf FIX4.4.xml). QuickFIX根据数据字典(cfFIX4.4.xml)验证消息。 If this field does not appear in the specification the message will be rejected by QuickFIX. 如果该字段未出现在规范中,则该消息将被QuickFIX拒绝。

If the counterparty cannot change this, ie will keep sending tag 64 in message type W, you will have to either tweak the data dictionary specifically for this counterparty, or try find a way to remove the tags before processing this message. 如果交易对手无法更改此消息,即将继续以消息类型W发送标签64,则您将必须为此交易对手专门调整数据字典,或者尝试找到一种在处理此消息之前删除标记的方法。

EDIT: I did find an occurrence of tag 64 in the FIX 5.0 SP2 specification ... Your counterparty is responding with fields from another fix version. 编辑:我确实在FIX 5.0 SP2规范中发现了标签64的出现...您的交易对手正在用来自另一个修订版本的字段进行响应。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM