Quickfix не может прочитать повторяющуюся группу

Я использую quickfix в Windows с привязками python. Раньше мне удавалось запрашивать рыночные данные. Недавно я перешел на другого поставщика API (Cunningham, он же CTS) и столкнулся с множеством проблем. Однако по крайней мере один из них, похоже, является внутренним для quickfix. Это сбивает меня с толку.

Когда я отправляю запрос рыночных данных, я получаю ответ. Это типичное сообщение 35=W, снимок рынка.

Quickfix отклоняет это сообщение, поскольку тег 269 появляется более одного раза!

Конечно, тег 269 — это MDEntryType, он должен встречаться более одного раза. Обратите также внимание на то, что тег 268, NoMDEntries, определен и сообщает, что в группе 21 запись.

Я думаю, что это внутреннее свойство quickfix, потому что quickfix генерирует сообщение об ошибке и отправляет его обратно в CTS. Кроме того, эта ошибка прерывает сообщение до того, как оно будет передано функции fromApp. (Я знаю, потому что мои парсеры, которые обращаются к сообщению всякий раз, когда вызывается fromApp, даже не получают это сообщение).

Любые идеи? Сообщение ниже.

(редактировать - я отключил словарь данных в файле конфигурации - может ли это иметь какое-либо отношение к этому?)

‹20140915-22:39:11.953, FIX.4.2:XXXXX->CTS, входящий> (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 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 ☺ 270 = 124093750 ☺ 270 = 124093750 ☺ 270 = 124093750 ☺ 270 = 124093750 ☺ 270 = 124093750 ☺ 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=12429 6875 ☺ 271=1809 ☺ 1023=9 ☺ 269=1 ☺ 27 0=124312500 ☺ 271=2241 ☺ 1023=10 ☺ 269=4 ☺ 270=124156250 ☺ 271=1 ☺ 14) 14)

‹20140915-22:39:12.004, FIX.4.2:XXXX->CTS, событие> (Сообщение 4 отклонено: тег появляется более одного раза:269)

‹20140915-22:39:12.010, FIX.4.2:XXXX->CTS, исходящий> (8=FIX.4.2 ☺ 9=102 ☺ 35=3 ☺ 34=4 ☺ 49=XXXX ☺ 52=20140915-22:39 :12.009 ☺ 56=CTS ☺ 45=4 ☺ 58= Тег встречается более одного раза ☺ 371=269 ☺ 372=W ☺ 10=012 ☺ )


person Wapiti    schedule 15.09.2014    source источник


Ответы (2)


(редактировать - я отключил словарь данных в файле конфигурации - может ли это иметь какое-либо отношение к этому?)

Ага, именно в этом проблема.

Без DD ваш движок не знает, когда заканчивается или начинается повторяющаяся группа. Что касается повторяющихся групп, то здесь не бывает.

Вам нужен DD, и вы должны убедиться, что он соответствует сообщению вашего контрагента и набору полей. Если они добавили настраиваемые поля или сообщения, вам нужно убедиться, что ваш DD отражает это.

person Grant Birchmeier    schedule 16.09.2014

Я понимаю, что этой ветке уже много лет, но у меня была именно эта проблема, и я, наконец, решил ее, поэтому я помещаю ее сюда, чтобы помочь всем, кто наткнулся на нее.

Проблема заключалась в том, что в моей конфигурации я использовал параметр 'DataDictionary=..'. Изменение этого на 'AppDataDictionary=...' решило мою проблему.

Стив

person Rewstyr    schedule 14.03.2018