Question

I send a standard Market Data Incremental Refresh Request message (35 = V) and begin receiving incremental refreshes. Most of the time everything is absolutely fine and dandy. However, every once in a while, I get a strange Field not found message. For example:

(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☺)

Field not found

(Message 4 Rejected: Conditionally Required Field Missing:290)

(8=FIX.4.2☺9=119☺35=j☺34=3☺49=XXX☺52=20130624-07:27:07.037☺56=XXX☺45=4☺58=Conditionally Required Field Missing (290)☺372=X☺380=5☺10=144☺)

I've cut some fields containing personal information or irrelevant information. But as you can see, it is explicitly message 4 that is being rejected, because it lacks field 290, when in fact 290 is clearly there.

So, what's the deal? Has anyone seen this kind of behavior before?

I'm using the Python bindings. Fix 4.2, Python 2.7.

And for the sake of completeness, here's a message (the very next one) that didn't get rejected:

(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☺

(And no, the difference in tag 55 between the rejected and accepted messages is not the cause of this. QuickFix found 290 in plenty of 55=ZN messages.)

I know this is a pretty technical question but am hoping there is a QuickFix guru out there who might know what's going on.

Thanks for any help.

Was it helpful?

Solution

This message has a repeating group of two MDEntries. Field 290 appears in the first one, but not the second one. Your code is probably trying to extract 290 from the second one, and is thus getting the error.

Group 1 (has 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☺

Group 2 (lacks 290):
279=0☺269=0☺270=126.421875☺271=57☺

Examine your code that's extracting 290. Put in an if-field-is-present check so that it doesn't try to extract a field that's not there.

OTHER TIPS

please take a look at this page: http://www.onixs.biz/fix-dictionary/4.2/msgType_X_88.html

in the paragraph starting with: "Adding, Changing, or Deleting Market Data Entries"

I've never worked with this kind of messages, but hope this will help.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top