В нашем блоге мы уже рассказывали об использующихся на мировых биржах протоколах передачи финансовой информации. Речь шла о таких протоколах, как FIX и FAST, которые широко применяются фондовыми площадками по всему миру, а также о проприетарных протоколах Plaza II и ASTS Bridge, которые были созданы специалистами российских бирж РТС и ММВБ, позднее объединившихся в «Московскую биржу».
Сегодня мы продолжим цикл материалов и поговорим о проприетарных протоколах биржи Nasdaq ITCH и OUCH.
Введение: две стороны транзакции
При совершении каждой транзакции на бирже в ходе электронных торгов в процессе всегда задействуются два типа данных — входящие и исходящие. Для передачи информации каждого существуют свои протоколы. Сегодня мы поговорим о двух наиболее популярных из них, которые используются, к примеру, на Nasdaq — это протоколы и ITCH и OUCH.
Протокол ITCH — это протокол передачи данных, с помощью которого передается информация, связанная с приказом, отправленным на биржу, а также служебные сообщения. С помощью этого протокола можно только обмениваться информацией, а не совершать торговые операции.
ITCH был создан в конце 90-х годов прошлого века — в то время это был один из самых продвинутых протоколов передачи финансовых данных. С тех пор он утвердился в роли стандарта в финансовой индустрии.
В свою очередь, протокол OUCH позволяет трейдерам на Nasdaq совершать операции на рынке — с его помощью возможно выставление, исполнение или отмена торговых ордеров. С момента его создания протокол неоднократно дорабатывался и стал по-настоящему мощным инструментом.
OUCH был создан в 1997 году для того, чтобы трейдеры могли быстро интегрировать свой торговый софт с Nasdaq и торговать на высоких скоростях. В угоду повышению пришлось принести в жертву некоторую гибкость протокола.
Как работает OUCH
Протокол OUCH передает сообщения конкретной длины между трейдером и биржей, кроме того, существует возможность повторной отправки данных в случае сбоя программного или аппаратного обеспечения. При этом сообщения от клиентов обрабатываются движком биржи в той последовательности, в котором они были получены — приоритет по времени получения жестко соблюдается.
Сообщения OUCH не обладают гарантией доставки — как раз поэтому и была введена функциональность повторной отправки, однао для получения такой гарантии можно использовать более низкоуровневые протоколы вроде SoupBinTCP и UFO. Существует несколько типов данных, передаваемых с помощью протокола, для которых используются цифровые или алфавитно-цифровые представления.
Для создания торгового приказа используется сообщение Enter Order Message — у каждого приказа должен быть токен, уникальный для каждого дня. Ниже представлен пример формата сообщения — в данном случае для ввода торгового приказа:
Enter Order Message | ||||
---|---|---|---|---|
Name | Offset | Len | Value | Notes |
Тип | 0 | 1 | «O» | Идентификатор типа сообщения Enter Order Message |
Токен приказа | 1 | 14 | Токен | В качестве токена может выступать любая информация, однако каждый день для каждого аккаунта OUCH она должна быть уникальной. |
Индикатор покупки/продажи | 15 | 1 | Символы | “B” — приказ на покупку “S” — приказ на продажу “T” — короткая продажа, клиент подтверждает возможность заимствования акций для их продажи последующего откупа в течение трех рабочих дней |
Число акций | 16 | 4 | Целое число | Общее число акций, которые нужно продать или купить, должно быть больше 1 и меньше 1000000 |
Акция | 20 | 8 | Символы | Тикер финансового инструмента |
Цена | 28 | 4 | Целое число | Цена, по которой нужно провести сделки. |
Время жизни | 32 | 4 | Целое число | Число секунд, которые приказ должен «жить» до автоматической отмены. |
Идентификатор трейдера | 36 | 4 | Символы | Поле должно содержать только заглавные буквы. Идентификатор тредера, под аккаунтом которого отправлен приказ. Один логический OUCH-аккаунт может использоваться для ввода приказов от множества трейдеров |
Отображение (Display) | 40 | 1 | Символы | В этом поле отображаются настройки отображения приказа (Attributalbe-Price to Display, Anonymous-Price to Comply и т.д.) |
Емкость (Capacity) | 41 | 1 | Символы | Возможны 4 варианта значения поля: “A” = agency “P” = principal “R” = riskless “O” = other |
Возможность перенесения заявки между рынками Nasdaq (intermarket sweep eligibility) | 42 | 1 | Символы | “Y” — да “N” — нет |
Минимальное количество | 43 | 4 | Целое число | Минимальное приемлемое количество акций, которое нужно купить или продать |
Тип кросс-заявки | 47 | 1 | Символы | Описываются типы кросс-заявок (Opening cross, Closing cross, Supplemental Order и т.п.) |
Тип клиента | 48 | 1 | Символы | Опциональное поле, показывающее, что приказ предназначения для исполнения на общем рынке. |
Существуют также сообщения для:
- Замены приказов (Replace Order Message);
- Отмены приказов (Cancel Order Message);
- Изменения параметров приказа (Modify Order Message);
Помимо этого есть целый ряд системных сообщений. Вот некоторые из них:
- Сообщение о событиях в системе Nasdaq (System Event Message) — в частности в них передается информация о старте торгов и закрытии торгового дня;
- Оповещение о принятии сообщения — с его помощью подтверждается тот факт, что приказ был принят торговой системой биржи;
- Оповещение о замене приказа — реакция на соответствующее сообщение трейдера;
- Оповещение об отмене приказа — аналогично, реакция на команду трейдера;
- Оповещение об исполнении приказа — информация об исполнении приказа;
- Оповещение об ошибке исполнения — указывается причина, по которой сделку не удалось совершить;
- Оповещение об отказе в исполнении приказа — здесь указываются причины отказа от исполнения.
На Nasdaq есть и более гибкие протоколы, вроде FIX, однако альтернативы проигрывают OUCH в эффективности работы и быстродействии.
Как работает ITCH
В свою очередь, ITCH отображает котировки и информацию о приказах по всем ценовым уровням для всех ценных бумаг и финансовых инструментов, торгуемых на Nasdaq. Кроме того, в сообщениях ITCH содержатся даные о том, какие финансовые инструменты будут торговаться в текущий день, торги по каким акциям приостановлены и другая важная служебная информация.
Помимо передачи динамической информации об очереди заявок и котировках, в ITCH содержится информация о ценах открытия и закрытия рынка, и даже данные о заявках на участие в IPO — для подобных ордеров используется сообщение Net Order Imbalance Indicator.
Среди существующих типов сообщений ITCH:
- Системные события — начало торгов, закрытие рынка, начало и конец работы дата-фида и т.п.;
- Информация об акциях — торговый статус финансовых инструментов и т.п.
- Данные маркетмейкерах;
- Информация об акциях ценных бумаг на IPO;
- и т.п.
Ниже представлен пример сообщения о добавлении новых обезличенных приказов в общую очередь заявок:
Кроме того, с помощью ITCH также передаются данные об отмене, изменении или замене приказов.
Существует реализация ITCH специально для торговых систем на базе FPGA — этот поток данных распространяется из выделенного дата-центра Nasdaq в Нью-Джерси. В данном случае требования к клиенстким соединениям составляет 10 или 40 гигабит, в противном случае дата-фид не предоставляется.
Как и в случае OUCH, биржа Nasdaq предлагает альтернативы ITCH — например, TotalView Aggregate, но другие протоколы не позволяют получать настолько обширный спектр данных.
Заключение
Протоколы ITCH и OUCH создавались для использования на рынках Nasdaq-OMX, однако даже эта биржа предоставляет другие варианты подключения клиентов. К примеру, для получения рыночной информации (Market Data) и передачи торговых данных используется реализация протоколов FIX и FAST. При этом, протоколы ITCH и OUCH применяются и на других биржевых площадках — например, биржах в Австрии, Турции и Швейцарии.
В наших следующих статьях мы продолжим рассказывать о существующих биржевых технологиях, в частности, речь пойдет о протоколе Simple Binary Encoding, который, в определенной степени, является продолжателем дела FIX.
P.S. ITinvest позволяет своим клиентам организовать подключение не только к российским, но и к зарубежным биржевым площадкам (например, CME Group).
Другие материалы о биржевых технологиях:
- Cпособы передачи финансовых данных: протокол FIX
- Способы передачи финансовых данных #2: протокол FAST
- Способы передачи финансовых данных #3: протокол Plaza II
- Способы передачи финансовых данных #4: Протокол ASTS Bridge
- Как устроена крупнейшая мировая биржа из Чикаго: инфраструктура и технологии
- Трейдинг и «железо»: Как выглядят биржевые дата-центры