Лучший способ проанализировать сообщение FIX? [закрытый]

29
задан ap330 6 January 2016 в 19:26
поделиться

4 ответа

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

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

11
ответ дан 28 November 2019 в 02:01
поделиться

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

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

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

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

5
ответ дан 28 November 2019 в 02:01
поделиться

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

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

Удачи

1
ответ дан 28 November 2019 в 02:01
поделиться

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

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

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

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

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

7
ответ дан 28 November 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: