Изменение порядка полей в сообщении FIX

Я использую инициатор QuickFix/n. Мой брокер отклоняет мои сообщения о входе в систему, ссылаясь на неправильный порядок полей (тегов) в заголовке сообщения. Вместо 34, 49, 52, 56 порядок должен быть 49, 56, 34, 52.

QuickFix/n автоматически сортирует различные поля в трех областях (заголовок, тело, трейлер) сообщений по номеру тега при отправке сообщения в сеанс.

Есть ли способ изменить порядок полей в сообщении, отправленном акцептору? Есть ли способ предотвратить поведение сортировки? (Добавление групп в сообщение или изменение словаря данных не работает.)

Или, если это невозможно с QuickFix/n, существует ли механизм FIX, который позволяет изменять порядок полей в сообщениях?


person user3723746    schedule 09.06.2014    source источник
comment
Я уверен, что вы что-то неправильно понимаете. В протоколе FIX порядок полей не имеет значения, за исключением повторяющихся групп. Все эти поля находятся в заголовке, поэтому порядок в заголовке не имеет значения (кроме 8,9,35, которые должны стоять первыми). Какое на самом деле сообщение об ошибке они отправляют обратно?   -  person Grant Birchmeier    schedule 10.06.2014
comment
Да, Грант, но вы должны добавить их в правильную группу (заголовок, тело или трейлер), иначе вы получите эту ошибку!   -  person MD-Tech    schedule 10.06.2014


Ответы (2)


Эта ошибка обычно вызвана попыткой поместить поле заголовка в тело сообщения. Объект DataDictionary, предоставленный либо вами, если вы вручную добавляете его в сеанс, либо из самого сеанса (если вы используете файл конфигурации, чтобы сообщить сеансу, какой словарь данных использовать), имеет функции, называемые isHeaderField(int tagNumber) и isTrailerField( int tagNumber), чтобы помочь вам решить, должно ли поле быть в заголовке или в трейлере. Различные файлы словаря данных для разных контрагентов могут (я видел это только один или два раза) помещать поля заголовка в часть тела сообщения, поля тела в заголовок или (чаще всего) настраиваемые теги в заголовок. Это означает, что, как правило, рекомендуется использовать доступные функции, чтобы проверить, следует ли добавить поле в заголовок, тело, трейлер или повторяющуюся группу внутри тела. Поскольку этот вопрос касается сообщений о входе в систему, я предполагаю, что вы добавляете поля к этому типу сообщений, поэтому мне может понадобиться увидеть код, делающий это, чтобы помочь в дальнейшем.

person MD-Tech    schedule 10.06.2014
comment
Привет @MD-Tech, я нашел ваши ответы полезными за последние несколько месяцев при разработке нашей собственной торговой платформы. Мы ищем код-ревью/консультации, если вы заинтересованы, пожалуйста, ответьте здесь, и мы можем найти способ подключиться! - person Mir; 15.05.2021
comment
@Mir, к сожалению, сейчас я перешел на сторону клиента - в основном я работаю на позиции клиента - и не развивался много лет. Я был бы совершенно бесполезен для вас с технической точки зрения. - person MD-Tech; 15.05.2021
comment
оцените ответ, если вы заинтересованы в том, чтобы снова окунуться в эту сторону, свяжитесь с нами! Удачи! - person Mir; 17.05.2021

По умолчанию quickFix переупорядочивает теги в группе по возрастанию. Если вы хотите сохранить порядок, вам нужно перестроить банку быстрых исправлений, как это предлагается здесь.

person halbs    schedule 25.06.2015