FIX

Financial Information eXchange (FIX) protocol (протокол обмена финансовой информацией) — протокол передачи данных, являющийся международным стандартом для обмена данными между участниками биржевых торгов в режиме реального времени.


История[ | ]

Спецификация FIX-протокола была создана в 1992 году для передачи информации о торгах акциями между компаниями Fidelity Investments и Salomon Brothers. В создании принимали участие программист Крис Морсатт (Chris Morstatt) и Джим Леман (Jim Leman) (бизнес-вопросы) со стороны Salomon, и бизнесмен Жак Перольд (Jacques Perold) и программист Роберт Ламорё (Robert "Bob" Lamoureux) со стороны Fidelity. В начале протокол служил только для обмена данными между брокерами-дилерами и их институциональными клиентами. В те времена информация о заявках и их исполнении передавалась устно по телефону. В Fidelity поняли, что информация, поступающая от брокера-дилера, может попасть не к тому трейдеру или просто может потеряться, как только оба собеседника повесят трубки. Идея заключалась в том, чтобы заменить устные переговоры передачей данных между компьютерами. Эту информацию можно было бы анализировать, хранить и использовать для принятия решений. Например, процедура, когда брокер-дилер звонит другому с намерением купить или продать пакет акций, в протоколе FIX отражена в обмене IOI-сообщениями.

Согласно FIX Trading Community протокол FIX стал глобальным стандартом де-факто для обмена сообщений на рынке торговли акциями на стадии пред-торговли и исполнения. Постепенно он распространяется на стадию пост-торговли, а также на торговлю другими классами ценных бумаг: валютный, долговой рынки и рынок деривативов[1]. Протокол FIX поддерживается большинством крупнейших банков и электронными трейдинговыми системами, а также крупнейшими биржами мира.

FIX Trading Community[ | ]

FIX Trading Community - некоммерческая организация, обладающая правами и поддерживающая спецификацию протокола. По состоянию на 2009 год спецификация находилась в состоянии общественного достояния.

Формат FIX-сообщения[ | ]

Сообщения FIX состоят из набора полей "тег=значение". Поля отделяются ASCII ом SOH — Start of Header (0x01). Тег — это номер поля. Например, тег 48 обозначает securityID, а строка значения содержит идентификатор ценной бумаги (тикер).

Сообщение состоит из 3 частей: заголовок, тело и окончание. Последнее поле в сообщении — контрольная сумма (тег 10).

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

До версии 4.4 включительно заголовок включает три обязательных тега: 8 (BeginString), 9 (BodyLength), и 35 (MsgType).

Начиная с FIXT.1.1 / FIX.5.0, в заголовке определены пять обязательных и один необязательный тег: 8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) и 1128 (ApplVerID - если присутствует, должен стоять на 6-й позиции).

Содержимое "тела" сообщения зависит от типа сообщения, которое обозначено в заголовке (тег 35, MsgType).

Последним тегом всегда идет тег 10, содержащий контрольную сумму сообщения. Эта сумма всегда выражается трехзначным числом, которое вычисляется по особой формуле, описанной в спецификации (например, 10=002).

Пример FIX-сообщения "Новая заявка". Вертикальные черты заменяют SOH символ для наглядности:

8=FIX.4.2 | 9=178 | 35=D | 34=123123 | 49=BROKER11 | 56=PHLX | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 55=MSFT | 167=FUT | 54=1 | 38=15 | 40=2 | 44=15 | 59=0 | 10=128 | 

Читается сообщение так: сообщение в FIX-формате 4.2 (8=FIX.4.2), длина сообщения 178 байт (9=178), тип сообщения "новая заявка" (35=D), номер сообщения 123123 (34=123123), от брокера BROKER11 (49=BROKER11) на филаделфийскую биржу (56=PHLX), отправлена (тег 52), номер заявки ATOMNOCCC9990900 в торговой системе брокера (11=ATOMNOCCC9990900) на покупку (54=1) фьючерсов (167=FUT) на акции компании Microsoft (55=MSFT) в объеме 15 лотов (38=15) по лимитированной (40=2) цене 15 (44=15), заявка истекает в конце торгового дня (59=0).

Бинарный формат[ | ]

Для ирования FIX сообщений в бинарном виде используется FAST протокол.

Техническая спецификация[ | ]

Протокол FIX служит для обмена данными в торговых сессиях между торговыми системами. XML-представление сообщений FIX называется FIXML; подобно XML, он является самоописывающим.

FIX - протокол сессионного уровня поверх TCP. При торговле ценными бумагами FIX более популярен, т. к. сообщения FIXML обычно намного объемнее.

Сообщения делятся на 2 уровня: управления и приложения. Уровень управления определяет базовые параметры FIX-сессии: устанавливает соединение, закрывает его, восстанавливает пропавшие сообщения. Уровень приложения связан с отправкой и получением данных: заявок (requests), их исполнений (сделок) (executions and fills), отказов (rejects), рыночной информации (market data), запрос информации о текущем состоянии (status requests) и пр.

Протокол FIX имеет несколько версий, которые выходили по мере совершенствования протокола и поддержки в нём различных классов ценных бумаг. Самой последней версией протокола является версия 5.0.SP2. Разные торговые системы поддерживают разные протоколы, а иногда и несколько протоколов параллельно. Наибольшее распространение среди торговых систем получила версия протокола FIX 4.2 (март 2000 г.), до сих пор существуют биржи и брокеры, которые работают с протоколом 4.1 (апрель 1998 г.) или даже 4.0 (январь 1997 г.), например Сиднейская биржа деривативов[2].

При реализации протокола разработчики той или иной торговой системы (биржа, брокер, электронная торговая площадка) могут не строго следовать выбранной версии спецификации, а также могут добавлять свои дополнительные теги (custom tags), переопределять значение и роль некоторых второстепенных тегов, требовать наличия определенных тегов, которые в спецификации определены как необязательные. В этом случае разработчики предоставляют свою документацию, в которой описывают особенности своей реализации FIX[3][4][5][6], чтобы клиенты могли настроить свои клиентские программы под эти особенности.

Примечания[ | ]

  1. What is FIX? (недоступная ссылка). The FIX Protocol Organization (June 8, 2009). Дата обращения: 12 ноября 2016. Архивировано 9 сентября 2004 года.
  2. Спецификация FIX 4.0 Сиднейской биржи деривативов
  3. Спецификация Fix 4.2 Нью-йоркской биржи NYSE Arca Equities (недоступная ссылка). Дата обращения: 5 ноября 2016. Архивировано 21 октября 2017 года.
  4. Спецификация Fix 4.2 биржи BATS
  5. Пример спецификаций Fix 5.0 Лондонской фондовой биржи
  6. Спецификация Fix 4.2 Скандинавской биржи Nasdaq Nordic (недоступная ссылка). Дата обращения: 5 ноября 2016. Архивировано 5 ноября 2016 года.

Ссылки[ | ]