Pull to refresh
0
ITI Capital
Лучший онлайн-брокер для работы на бирже

Cпособы передачи финансовых данных: протокол FIX

Reading time 5 min
Views 51K
image

Фондовый рынок является высокотехнологичной отраслью — помимо физической ИТ-инфраструктуры и технологичных торговых роботов игроки этого рынка занимаются развитием технических стандартов протоколов передачи данных. Сегодняшним материалом мы открываем серию топиков о протоколах передачи финансовой информаци. В первом выпуске представлена информация об одном из старейших протоколов — Financial Information eXchange или сокращенно FIX.

Немного истории


Создание протокола FIX было инициировано рядом финансовых организаций США в 1992 году — брокеры и инвестфонды хотели ускорить процесс осуществления торговых операций на бирже. В то время значительная часть торговых операций совершалась с помощью телефона, а протокол FIX позволил перевести взаимодействия в электронный вид.

В результате родился открытый стандарт передачи информации в электронном виде, который не контролирует ни одна из крупных организаций. Сегодня FIX стал отраслевым стандартом, который используется участниками финансового рынка разных стран для связи своих продуктов.

Как это работает


В настоящий момент протокол определен на двух уровнях — сессии (работа над доставкой данных) и приложения (описание содержимого данных). Существует два варианта синтаксиса протокола — традиционный, вида Tag=Value и в формате XML (FIXML). Рассмотрим каждый из них.

Синтаксис Tag Value


Сообщения протокола FIX обычно содержат заголовок и, собственно, тело сообщения. Каждое сообщение представляет собой поток полей =, отделенных друг от друга специальными символами — в спецификации FIX для разделения данных использован ASCII-символ SOH (#001, 0x01).

Теги содержат данные в формате TagNum, а поле тега не может быть пустым (кроме того, значение должно быть положительным и не начинаться с нулей). Сообщение с пустым полем Tag будет отклонено.

Тело сообщения обычно состоит из заголовка, тела сообщения и завершающего элемента (трейлера). Первым полем сообщения всегда является обозначение начала строки (BeginString, тег #8), затем указывается длина тела сообщения (BodyLength тег #9) и тип сообщения (MsgType, тег #35). Последним символом трейлера всегда является контрольная сумма (тег #10).

Часто сообщения содержат, как зашифрованную часть, так и символы, переданные в текстовом виде — данная схема обычно используется для валидации и верификации данных. Например, передача зашифрованного значения SenderCompID, указывающего на отправителя, является устаревшим способом валидации.

Для обеспечения большей гибкости FIX протокол содержит так называемые пользовательские поля — User Defined Fields. Они используются при передачи данных между сотрудничающими финансовыми организациями. Номера тегов с 5000 до 9999 были зарезервированы под пользовательские поля — зарезервировать их можно было на официальном сайте стандарта. В дальнейшем эти номера были израсходованы, поэтому был выделен новый интервал — с 20000 до 39999.

Сообщения в формате Tag Value выглядят следующим образом (символ ^ — это разделитель SOH):

8=FIX.4.2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^52=20030615-01:14:49^11=12345^ 1=111111^63=0^64=20030621^21=3^110=1000^111=50000^ 55=IBM^48=459200101^22=1^54=1^60=2003061501:14:49 38=5000^40=1^44=15.75^15=USD^59=0^10=127

Синтаксис FIXML


Работы по созданию синтаксиса в формате XML начались в 1998 году, а первая версия FIXML появилась в январе 1999 года.

Новая заявка на совершение операции в формате FIXML описывается следующим образом:

<Order
ClOrdID="123456"
Side="2"
TransactTm="2001-09-11T09:30:47-05:00"
OrdTyp="2"
Px="93.25"
Acct="26522154">

Здесь ClOrdID — id-ордера, side=”2” означает заявку на продажу, далее указывается время транзакции, тип заявки (2 соответствует Limit-ордеру) и его цена pX. Поле Acct означет номер счета пользователя.

Далее в сообщении указывается информация о ценной бумаге и число ценных бумаг, которые нужно купить или продать. В итоге простое сообщение будет выглядеть примерно так:

<FIXML>
<Order
ClOrdID="123456"
Side="2"
TransactTm="2001-09-11T09:30:47-05:00"
OrdTyp="2"
Px="93.25"
Acct="26522154">
<Instrmt Sym="IBM"
ID="459200101"
IDSrc="1"/>
<OrdQty Qty="1000"/>
</Order>
</FIXML>

В начале пути XML-версии FIX использовался только механизм определения синтаксиса DTD. В дальнейшем организация W3C разработала новый механизм — XML Schema, что заставило разработчиков FIX адаптировать стандарт для использования этого варианта синтаксиса.

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

Базовая организация схемы XML предполагает наличие типов данных, используемых в полях, которые содержатся в отдельном файле. Поля FIX определяются в специальном shared-файле, а компоненты и элементы синтаксиса FIXML в специальных файлах компонентов. Сообщения FIXML определяются с помощью специальных файлов, указывающих категорию.

image

Пример сообщения об отправке заявки на FIXML (Schema):

<FIXML v="4.4" r="20030618" s="20040109">
   <Order ClOrdID="123456" Side="2" TransactTm="2001-09-11T09:30:47-05:00"
          OrdTyp="2" Px="93.25" Acct="26522154">
      <Instrmt Sym="IBM" ID="459200101" IDSrc="1"/>
      <OrdQty Qty="1000"/>
   </Order>
</FIXML>

Сообщения FIX


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

Сообщения делятся на три категории:
  • Пре-торговые сообщения;
  • Торговые сообщения (заявки и передача информации о сделках);
  • Пост-торговые сообщения.

FIX на российских биржах


C помощью протокола FIX любой желающий может напрямую подключиться к «Московской бирже». Кроме того, биржа работает над унификацией доступа по FIX для всех доступных рынков (акции, срочный, валютный).

ITinvest также предоставляет своим клиентам доступ к рынкам «Московской биржи» с помощью прямого подключения по протоколу FIX. Кроме того, для высокочастотных торговцев и алготрейдеров созданы специальные ИТ-услуги от колокации серверов в дата-центре M1 до предоставления доступа к виртуальным машинам для размещения торгового робота.



Другие протоколы


Для получения рыночной информации (Market Data) используется протокол FAST (Fix Adapted for STreaming) — стандарт, разработанный создателями протокола FIX, который позволяет добиться значительных возможностей компрессии данных для передачи больших объемов рыночной информации с минимальными временными задержками. Помимо Московской биржи, используется на NYSE, Nasdaq-OMX и многих других мировых площадках.

Также для прямого подключения используются так называемые нативные протоколы, которые возникли еще до объединения бирж ММВБ и РТС в «Московскую биржу».

Так на рынках относившихся к бирже РТС (FORTS – фьючерсы и опционы, Standard), для прямого совершения операций и получения данных в режиме подключения используется протокол Plaza II. Для выполнения торговых операций и получения биржевых данных на площадках, ранее относившихся к бирже ММВБ (валютный и фондовый рынки) используется двунаправленный шлюз MICEXBridge (TEAP).

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

P.S. Если вы заметили опечатку или ошибку — напишите личным сообщением, и мы оперативно все исправим.
Tags:
Hubs:
+14
Comments 31
Comments Comments 31

Articles

Information

Website
iticapital.ru
Registered
Employees
51–100 employees
Location
Россия