문제

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.

도움이 되었습니까?

해결책

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.

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top