Лучший способ разобрать сообщение FIX?

Как вы анализируете сообщение FIX с помощью python? (сообщение FIX, как в «финансовом» протоколе FIX)


person Chez    schedule 22.02.2010    source источник
comment
13 голосов и закрыто! Прекрасная работа!   -  person chrisapotek    schedule 11.07.2012
comment
этот вопрос меня тоже интересовал, как жаль, что он закрыт.   -  person Guillaume07    schedule 01.10.2012
comment
Хотя вопрос специфичен для .NET, здесь есть несколько общеприменимых идей: protocol-messages-in-net" title="Какой наиболее эффективный способ анализа сообщений протокола исправления в сети"> stackoverflow.com/questions/4907848/   -  person SteveWilkinson    schedule 01.10.2012
comment
Жаль, что этот вопрос не был закрыт. Если вы просто хотите проанализировать какой-либо текст FIX, взгляните на этот анализатор исправлений, просмотрите исходный код, чтобы увидеть, как блок текста FIX анализируется. Если вы хотите проанализировать FIX для реального торгового приложения, взгляните на проекты с открытым исходным кодом (два из моих — github.com/falconair/fix.js и github.com/falconair/lowlevelfix)   -  person Shahbaz    schedule 07.02.2013


Ответы (6)


Вы имеете в виду использование QuickFIX? (Я вижу QuickFIX в ваших тегах)

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

person sergej    schedule 22.02.2010
comment
QuickFix используется в качестве базового синтаксического анализатора FIX рядом компаний, предоставляющих синтаксические анализаторы FIX. Запустить синтаксический анализатор QuickFIX довольно легко, я бы посоветовал вам попробовать. - person Luhar; 25.02.2010

Помимо использования фактического механизма quickfixengine, легко проанализировать сообщение об исправлении, если вы знаете, что оно содержит определенные теги.

Он содержит разделенные 0x1 пары строк «ключ = значение». Одной из сложностей являются группы, потому что вы должны выяснить, что тег является первым в группе (заголовок группы), а затем выяснить, когда группа заканчивается (когда он сталкивается с другим тегом, не входящим в группу).

Другим проблемным полем является поле RawData, которое может содержать что угодно, включая разделитель полей 0x1, но ему предшествует RawDataLength, поэтому вам нужно сначала прочитать это, а затем прочитать количество байтов RawDataLength после тега RawData, чтобы перейти к следующему полю.

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

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

person stefanB    schedule 01.03.2010

Формат FIX на удивление раздражает при анализе (поскольку формат, отличный от XML, т. е. тот, который до сих пор используется почти всеми, не имеет начальных и конечных маркеров подгруппы, вместо этого вы должны работать с ним на основе правил порядка тегов и тегов, которые не находятся в подгруппе, заголовок или хвост могут быть в любом порядке).

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

Единственным хорошо поддерживаемым вариантом с открытым исходным кодом является библиотека Java QuickFIX/J.

Есть много коммерческих решений, например. CameronFIX

person George Hawkins    schedule 22.02.2010
comment
Библиотека C++ QuickFIX также поддерживается. - person John Zwinck; 22.02.2010

попробуйте http://fix.nowing.com

это веб-парсер сообщений об исправлениях

person Neo Wang    schedule 04.04.2012

из исходного кода quickfixj он использует treeMap для обработки сообщения FIX.

что касается формата XML, я думаю, что FIX лучше, хотя анализ в JAVA сложнее. потому что XML слишком тяжелый.

person user462872    schedule 30.09.2010
comment
Я согласен на FIX вместо XML, за исключением кровавых повторяющихся групп. - person ProfK; 21.04.2011
comment
Я согласен с проф. Повторяющиеся группы для вечеринок и т. Д. - это боль. - person Kelly; 18.11.2011
comment
Кроме того, большинство людей пытаются разобрать FIX-сообщение, разбивая его по SOH, что полностью игнорирует проблему RawData (тег 96). Кстати, использование TreeMap, вероятно, не лучший подход, потому что это затрудняет распознавание и поддержку повторяющихся тегов в вашем сообщении. Я думаю, что список, вероятно, является лучшим представлением структуры данных. - person noahlz; 21.02.2012

Не существует одного лучшего способа, но, учитывая тег quickfix, который вы или система SO прикрепили, взгляните на QuickFix движок FIX с открытым исходным кодом был бы хорошим местом для начала.

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

Удачи

person sdg    schedule 22.02.2010