Ответ 1
Любое приложение FIX должно поддерживать два набора порядковых номеров на сеанс: входящий и исходящий. Эти порядковые номера не зависят друг от друга.
- Каждый раз, когда приложение отправляет сообщение, оно увеличивает исходящий порядковый номер и устанавливает его в теге 34.
- Каждый раз, когда приложение получает сообщение, оно увеличивает ожидаемый входящий номер и проверяет, соответствует ли ему тег 34 входящего сообщения.
Если у вас есть два сеанса FIX, то каждый сеанс отслеживает пару последовательностей.
Часто поставщик захочет сохранить порядковые номера между разъединениями. Это особенно важно для соединений для управления заказами, где, например, вы определенно хотите знать о любых выполненных заказах, которые вы пропустили, если ваше соединение по какой-то причине оборвалось.
Это не так важно для каналов рыночных данных. Если ваше соединение оборвалось в течение минуты, вам все равно, какая цена была, когда вы снижались - вам нужно знать только последнюю цену сейчас. Поэтому последовательность сбрасывается при входе в систему.
Однако я не понимаю связи между тегом 34 и внутренними порядковыми номерами.
Этот вопрос звучит для конкретного двигателя. Вы не указали, какой движок вы используете.
Но это не должно иметь большого значения. Каждое отправляемое сообщение должно увеличиваться на 34; для этого используется внутреннее хранилище. Каждое полученное вами сообщение должно иметь 34 на 1 больше, чем последнее; опять же, внутреннее хранилище поддерживается, чтобы приложение могло отслеживать это.
Если вы используете какой-либо из движков QuickFIX, вам не нужно беспокоиться об этом. QF обрабатывает все это для вас. (Если вы считаете, что вам нужно возиться с порядковым номером в QuickFIX, вы, вероятно, ошибаетесь. Это распространенный вопрос новичка. Просто установите правильную конфигурацию, и движок сделает все остальное.)