2014-09-15 3 views
1

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

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

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

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

Я думаю, что это внутреннее решение для быстрого исправления, поскольку 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 = XDLCME_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 = 124156 250 ☺ 271 = 1 ☺ 10 = 140 ☺)

< 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 = ☺ ☺ 10 Вт = 012 ☺)

ответ

3

(изменить - я повернулся от словаря данных в файле конфигурации - coul d это как-то связано с этим?)

Да, это как раз проблема.

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

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

+0

Еще раз спасибо, Грант. – Wapiti