- PVSM.RU - https://www.pvsm.ru -
В нашем блоге мы уже рассказывали об использующихся на мировых биржах протоколах передачи финансовой информации. Речь шла о таких протоколах, как FIX [2] и FAST [3], которые широко применяются фондовыми площадками по всему миру, а также о проприетарных протоколах Plaza II [4] и ASTS Bridge [5], которые были созданы специалистами российских бирж РТС и ММВБ, позднее объединившихся в «Московскую биржу».
Сегодня мы продолжим цикл материалов и поговорим о проприетарных протоколах биржи Nasdaq ITCH и OUCH.
При совершении каждой транзакции на бирже в ходе электронных торгов в процессе всегда задействуются два типа данных — входящие и исходящие. Для передачи информации каждого существуют свои протоколы. Сегодня мы поговорим о двух наиболее популярных из них, которые используются, к примеру, на Nasdaq — это протоколы и ITCH и OUCH.
Протокол ITCH — это протокол передачи данных, с помощью которого передается информация, связанная с приказом, отправленным на биржу, а также служебные сообщения. С помощью этого протокола можно только обмениваться информацией, а не совершать торговые операции.
ITCH был создан в конце 90-х годов прошлого века — в то время это был один из самых продвинутых протоколов передачи финансовых данных. С тех пор он утвердился в роли стандарта в финансовой индустрии.
В свою очередь, протокол OUCH позволяет трейдерам на Nasdaq совершать операции на рынке — с его помощью возможно выставление, исполнение или отмена торговых ордеров. С момента его создания протокол неоднократно дорабатывался и стал по-настоящему мощным инструментом.
OUCH был создан в 1997 году для того, чтобы трейдеры могли быстро интегрировать свой торговый софт с Nasdaq и торговать на высоких скоростях. В угоду повышению пришлось принести в жертву некоторую гибкость протокола.
Протокол OUCH [6] передает сообщения конкретной длины между трейдером и биржей, кроме того, существует возможность повторной отправки данных в случае сбоя программного или аппаратного обеспечения. При этом сообщения от клиентов обрабатываются движком биржи в той последовательности, в котором они были получены — приоритет по времени получения жестко соблюдается.
Сообщения 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 | Символы | Опциональное поле, показывающее, что приказ предназначения для исполнения на общем рынке. |
Существуют также сообщения для:
Помимо этого есть целый ряд системных сообщений. Вот некоторые из них:
На Nasdaq есть и более гибкие протоколы, вроде FIX, однако альтернативы проигрывают OUCH в эффективности работы и быстродействии.
В свою очередь, ITCH [7] отображает котировки и информацию о приказах по всем ценовым уровням для всех ценных бумаг и финансовых инструментов, торгуемых на Nasdaq. Кроме того, в сообщениях ITCH содержатся даные о том, какие финансовые инструменты будут торговаться в текущий день, торги по каким акциям приостановлены и другая важная служебная информация.
Помимо передачи динамической информации об очереди заявок и котировках, в ITCH содержится информация о ценах открытия и закрытия рынка, и даже данные о заявках на участие в IPO — для подобных ордеров используется сообщение Net Order Imbalance Indicator.
Среди существующих типов сообщений ITCH:
Ниже представлен пример сообщения о добавлении новых обезличенных приказов в общую очередь заявок:
Кроме того, с помощью ITCH также передаются данные об отмене, изменении или замене приказов.
Существует реализация ITCH специально для торговых систем на базе FPGA — этот поток данных распространяется из выделенного дата-центра Nasdaq в Нью-Джерси. В данном случае требования к клиенстким соединениям составляет 10 или 40 гигабит, в противном случае дата-фид не предоставляется.
Как и в случае OUCH, биржа Nasdaq предлагает альтернативы ITCH — например, TotalView Aggregate, но другие протоколы не позволяют получать настолько обширный спектр данных.
Протоколы ITCH и OUCH создавались для использования на рынках Nasdaq-OMX, однако даже эта биржа предоставляет другие варианты подключения клиентов. К примеру, для получения рыночной информации (Market Data) и передачи торговых данных используется реализация протоколов FIX и FAST. При этом, протоколы ITCH и OUCH применяются и на других биржевых площадках — например, биржах в Австрии [8], Турции [9] и Швейцарии [10].
В наших следующих статьях мы продолжим рассказывать о существующих биржевых технологиях, в частности, речь пойдет о протоколе Simple Binary Encoding, который, в определенной степени, является продолжателем дела FIX.
P.S. ITinvest позволяет своим клиентам организовать подключение [11] не только к российским, но и к зарубежным биржевым площадкам (например, CME Group).
Другие материалы о биржевых технологиях:
Автор: ITinvest
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/114412
Ссылки в тексте:
[1] Image: https://habrahabr.ru/company/itinvest/blog/278811/
[2] FIX: http://habrahabr.ru/company/itinvest/blog/242789/
[3] FAST: http://habrahabr.ru/company/itinvest/blog/243657/
[4] Plaza II: https://habrahabr.ru/company/itinvest/blog/261709/
[5] ASTS Bridge: https://habrahabr.ru/company/itinvest/blog/270961/
[6] Протокол OUCH: http://www.nasdaqtrader.com/content/technicalsupport/specifications/TradingProducts/OUCH4.2.pdf
[7] ITCH: http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NQTVITCHspecification.pdf
[8] Австрии: http://www.asx.com.au/documents/trading_services/asx-ouch.pdf
[9] Турции: http://www.borsaistanbul.com/docs/default-source/%C3%BCye-%C3%B6zel-doc/bist-equity-market-itch-spec.pdf?sfvrsn=8
[10] Швейцарии: http://www.six-swiss-exchange.com/download/participants/trading/x-stream_inet_performance_measurement_details.pdf
[11] организовать подключение: http://www.itinvest.ru/services/markets/international-markets/cme/
[12] Cпособы передачи финансовых данных: протокол FIX: https://habrahabr.ru/company/itinvest/blog/242789/
[13] Способы передачи финансовых данных #2: протокол FAST: https://habrahabr.ru/company/itinvest/blog/243657/
[14] Как устроена крупнейшая мировая биржа из Чикаго: инфраструктура и технологии: https://habrahabr.ru/company/itinvest/blog/275967/
[15] Трейдинг и «железо»: Как выглядят биржевые дата-центры: https://habrahabr.ru/company/itinvest/blog/274021/
[16] Источник: https://habrahabr.ru/post/278811/
Нажмите здесь для печати.