Внутренние порядковые номера FIX

У меня есть процесс между клиентом на стороне продажи и обменом, который делает обмен валюты. Существует два адаптера FIX: один получает сообщения от продажи и обслуживает сообщения в процессе. И еще один движок FIX, который принимает сообщения из процесса и отправляет их в FIX на биржу.

Каждое сообщение FIX имеет уникальный порядковый номер, помятый тегом 34. Однако кажется, что каждый из этих FIX-движков имеет номер INCOMING SEQUENCE (какой движок FIX ожидает встречный участник) и OUTGOING SEQUENCE NUMBER (какой FIX-движок отправляет встречной стороне).

Являются ли эти внутренние порядковые номера независимыми от тега 34?

В этой конфигурации внутренние порядковые номера FIX ENGINE на продажу составляют от reset до 1,1 при входе в систему. Внутренние порядковые номера FIX ENGINE для обмена не reset до 1,1.

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

Однако я не понимаю отношения между тегом 34 и внутренними порядковыми номерами.

Ответ 1

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

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

Если у вас есть два сеанса FIX, то каждый сеанс отслеживает пару последовательностей.

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

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

Однако я не понимаю связи между тегом 34 и внутренними порядковыми номерами.

Этот вопрос звучит для конкретного двигателя. Вы не указали, какой движок вы используете.

Но это не должно иметь большого значения. Каждое отправляемое сообщение должно увеличиваться на 34; для этого используется внутреннее хранилище. Каждое полученное вами сообщение должно иметь 34 на 1 больше, чем последнее; опять же, внутреннее хранилище поддерживается, чтобы приложение могло отслеживать это.

Если вы используете какой-либо из движков QuickFIX, вам не нужно беспокоиться об этом. QF обрабатывает все это для вас. (Если вы считаете, что вам нужно возиться с порядковым номером в QuickFIX, вы, вероятно, ошибаетесь. Это распространенный вопрос новичка. Просто установите правильную конфигурацию, и движок сделает все остальное.)