Привет, друзья!
И снова с вами OSAEngine.ru. Сегодня мы рассмотрим, почему FAST-протокол, который долгое время использовался для передачи данных на финансовых рынках, устарел и был заменен более современными и эффективными решениями, такими как SBE (Simple Binary Encoding). Подробности о протоколе SBE я расскажу в следующей статье, так что не переключайтесь и готовьтесь к увлекательному путешествию в мир бинарного кодирования!
Почему стоит избегать FAST-протокол
Если вы только начинаете рассматривать вопрос прямого рыночного доступа (DMA) и подключения к торговым системам, важно ориентироваться на современные стандарты и технологии. Протокол FAST (FIX Adapted for STreaming) на сегодняшний день устарел и имеет ряд ограничений, которые делают его менее подходящим для высокочастотной торговли и современных торговых решений.
Недостатки FAST
Сложность обработки данных:
- FAST использует сложные методы сжатия, такие как удаление избыточности и кодирование длин повторов (RLE). Это требует значительных вычислительных ресурсов для кодирования и декодирования данных, что может увеличивать задержки.
- Гибкость структуры: Сообщения в FAST имеют гибкую и сложную структуру, что усложняет процесс их обработки и увеличивает вероятность ошибок.
Задержки и производительность:
- Высокая задержка: Сложные алгоритмы сжатия в FAST могут создавать дополнительные задержки, что делает его менее эффективным для высокочастотной торговли.
- Низкая производительность: В условиях, где важна каждая микросекунда, дополнительная сложность обработки сообщений в FAST становится значительным недостатком.
Сложность реализации:
- Сложная реализация: Использование XML-схем для описания структуры сообщений в FAST добавляет дополнительную сложность в реализацию и поддержку систем.
Преимущества современных протоколов, таких как SBE
На смену FAST пришел протокол SBE (Simple Binary Encoding), который обеспечивает более высокую производительность за счет упрощения структуры и методов кодирования.
История и преимущества SBE
- История SBE: SBE был разработан компанией FIX Protocol Ltd. и впервые представлен в 2013 году как часть обновления стандарта FIX 5.0.
- Простота и эффективность: SBE использует простую бинарную кодировку, что значительно уменьшает время на кодирование и декодирование сообщений. Это особенно важно для систем, требующих минимальных задержек.
- Минимизация задержек: SBE разработан с акцентом на минимальные задержки, что делает его идеальным для высокочастотной торговли. Простая структура и отсутствие сложных алгоритмов сжатия обеспечивают максимально быстрое выполнение операций.
- Современные требования: SBE лучше адаптирован к современным требованиям финансовых рынков, где высокая скорость и производительность являются ключевыми факторами успеха. SBE поддерживает различные финансовые инструменты, такие как акции, облигации, опционы и фьючерсы, что делает его универсальным решением для различных типов торговли.
Пример кодирования сообщений в FAST и SBE
FAST:
- Предыдущее сообщение: Цена — 100, Количество — 50, Время — 12:00
- Текущее сообщение: Цена — 101, Количество — 50, Время — 12:01
- FAST передает только изменения: Цена — 101, Время — 12:01
SBE:
- Каждое сообщение содержит полную информацию без учета изменений.
- Сообщение будет закодировано как последовательность бинарных данных:
- Цена: 101 (4 байта)
- Количество: 50 (4 байта)
- Время: 12:01 (4 байта)
Примеры схем
Пример схемы SBE:
<sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2020/sbe" package="my.package" id="1" version="1.0">
<types>
<composite name="price" description="Price in integer format">
<type name="int32"/>
</composite>
</types>
<messages>
<message name="Order" id="1">
<field name="Price" id="1" type="int32"/>
<field name="Quantity" id="2" type="int32"/>
<field name="Time" id="3" type="int32"/>
</message>
</messages>
</sbe:messageSchema>
Пример схемы FAST:
<templates xmlns="http://www.fixprotocol.org/ns/fast/td/1.1">
<template name="Order" id="1">
<sequence name="Order" presence="optional">
<field name="Price" id="1" type="uInt32" />
<field name="Quantity" id="2" type="uInt32" />
<field name="Time" id="3" type="uInt32" />
</sequence>
</template>
</templates>
Чем схемы SBE проще, чем схемы FAST
Структура и Простота
- SBE: Схемы для SBE имеют фиксированную структуру сообщений. Поля в этих схемах четко определены и имеют фиксированные размеры и типы данных. Это упрощает процесс кодирования и декодирования, так как нет необходимости в сложных алгоритмах для обработки переменной длины данных и гибких структур.
- FAST: Схемы для FAST допускают гибкость в структуре сообщений, что позволяет создавать более сложные и вложенные структуры данных. Однако эта гибкость увеличивает сложность обработки сообщений и требует дополнительных вычислительных ресурсов для их декодирования и восстановления полной информации.
Описание данных
- SBE: В SBE схемах данные описаны с использованием простых типов данных и фиксированных размеров. Это упрощает обработку и уменьшает количество ошибок при передаче данных. Каждый тип данных в SBE имеет четко определенное место и размер, что делает процесс декодирования быстрым и эффективным.
- FAST: В схемах для FAST используется множество типов данных и сложных методов сжатия, таких как удаление избыточности и предсказание. Это требует дополнительных шагов для обработки данных и увеличивает вероятность ошибок при декодировании.
Производительность
- SBE: Простая и фиксированная структура сообщений SBE позволяет минимизировать задержки при передаче данных. Это критически важно для высокочастотной торговли, где каждая микросекунда имеет значение. Простота схем SBE позволяет быстрее и эффективнее обрабатывать данные.
- FAST: Сложные методы сжатия в FAST, такие как RLE и предсказание, увеличивают время на кодирование и декодирование данных. Это может создавать дополнительные задержки, что делает FAST менее эффективным для использования в условиях, где важна минимальная задержка.
Заключение
Если вы планируете подключаться к торговым системам, рекомендуется избегать использования FAST и ориентироваться на современные протоколы, такие как SBE, которые обеспечивают более высокую производительность и надежность. Переход к SBE позволит вам создать надежное и высокопроизводительное соединение, что будет способствовать успешной работе на финансовых рынках.
Следите за следующей статьей, где мы рассмотрим детали протокола SBE и его разновидности, предлагаемые Московской Биржей, а также конкретные примеры кодирования сообщений и их преимуществ для высокочастотной торговли.
Мой блог с оригиналом статьи
да уж, fast на fgpa было прикольно делать ) У меня только с 13 версии нормально получилось.
поэтому плисеры на бирже продавили решение на sbe )