Quickfix failing to read repeating group

一世执手 提交于 2019-12-02 12:31:23

问题


I am using quickfix in Windows with python bindings. I have been able to make market data requests in the past. I recently changed to a different API provider (Cunningham, aka CTS) and am encountering a lot of issues. At least one of them, however, seems to be internal to quickfix. It is baffling me.

When I send a market data request, I get back a response. It is a typical 35=W message, a market snapshot.

Quickfix is rejecting this message because tag 269 appears more than once!

Of course, tag 269 is MDEntryType, it is supposed to occur more than once. Notice also that tag 268, NoMDEntries, is defined and says there are 21 entries in the group.

I think this is internal to quickfix because quickfix is generating an error message and sending it back to CTS. Also, this error aborts the message before it can get passed to the fromApp function. (I know because my parsers which apply themselves to the message whenever fromApp is called are not even getting this message).

Any ideas? The message is below.

(edit -- I have turned off the data dictionary in the config file -- could it have anything to do with that?)

<20140915-22:39:11.953, FIX.4.2:XXXXX->CTS, incoming> (8=FIX.4.2 ☺ 9=836 ☺ 35=W ☺ 34=4 ☺ 49=CTS ☺ 56=XXXXX ☺ 52=20140915-22:39:11.963 ☺ 48=XDLCM E_F ZN (Z14) ☺ 387=2559 ☺ 965=2 ☺ 268=21 ☺ 269=0 ☺ 270=124156250 ☺ 271=646 ☺ 1023=1 ☺ 269=0 ☺ 270= 124140625 ☺ 271=918 ☺ 1023=2 ☺ 269=0 ☺ 270=124125000 ☺ 271=1121 ☺ 1023=3 ☺ 269=0 ☺ 270=124109375 ☺ 271=998 ☺ 1023=4 ☺ 269=0 ☺ 270=124093750 ☺ 271=923 ☺ 1023=5 ☺ 269=0 ☺ 270=124078125 ☺ 271=1689 ☺ 1023=6 ☺ 269=0 ☺ 270=124062500 ☺ 271=2011 ☺ 1023=7 ☺ 269=0 ☺ 270=124046875 ☺ 271=1782 ☺ 1023=8 ☺ 2 69=0 ☺ 270=124031250 ☺ 271=2124 ☺ 1023=9 ☺ 269=0 ☺ 270=124015625 ☺ 271=1875 ☺ 1023=10 ☺ 269=1 ☺ 27 0=124171875 ☺ 271=422 ☺ 1023=1 ☺ 269=1 ☺ 270=124187500 ☺ 271=577 ☺ 1023=2 ☺ 269=1 ☺ 270=12420312 5 ☺ 271=842 ☺ 1023=3 ☺ 269=1 ☺ 270=124218750 ☺ 271=908 ☺ 1023=4 ☺ 269=1 ☺ 270=124234375 ☺ 271=1482 ☺ 1023=5 ☺ 269=1 ☺ 270=124250000 ☺ 271=1850 ☺ 1023=6 ☺ 269=1 ☺ 270=124265625 ☺ 271=1729 ☺ 1023=7 ☺ 269=1 ☺ 270=124281250 ☺ 271=2615 ☺ 1023=8 ☺ 269=1 ☺ 270=124296875 ☺ 271=1809 ☺ 1023=9 ☺ 269=1 ☺ 27 0=124312500 ☺ 271=2241 ☺ 1023=10 ☺ 269=4 ☺ 270=124156250 ☺ 271=1 ☺ 10=140 ☺ )

<20140915-22:39:12.004, FIX.4.2:XXXX->CTS, event> (Message 4 Rejected: Tag appears more than once:269)

<20140915-22:39:12.010, FIX.4.2:XXXX->CTS, outgoing> (8=FIX.4.2 ☺ 9=102 ☺ 35=3 ☺ 34=4 ☺ 49=XXXX ☺ 52=20140915-22:39:12.009 ☺ 56=CTS ☺ 45=4 ☺ 58= Tag appears more than once ☺ 371=269 ☺ 372=W ☺ 10=012 ☺ )


回答1:


(edit -- I have turned off the data dictionary in the config file -- could it have anything to do with that?)

Yep, that's exactly the problem.

Without the DD, your engine doesn't know when a repeating group ends or begins. As far as it's concerned, there's no such thing as repeating groups.

You need a DD, and you need to make sure it matches your counterparty's message and field set. If they've added custom fields or messages, you need to make sure your DD reflects that.




回答2:


I realize this thread is years old but I had this exact problem and finally resolved it so I am putting it here to help anyone else that stumbles across this.

The issue was that in my config I was using the 'DataDictionary=..' parameter. Changing this to 'AppDataDictionary=...' solved my problem.

Steve



来源:https://stackoverflow.com/questions/25858091/quickfix-failing-to-read-repeating-group

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!