Як організована передача фінансових даних на американській біржі Nasdaq: Протоколи ITCH і OUCH



У нашому блозі ми вже розповідали про які використовуються на світових біржах протоколах передачі фінансової інформації. Мова йшла про таких протоколах, як 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).

Інші матеріали про біржових технологіях:



Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.