Як насправді влаштована торгівля на біржі: Простий алгоритм (частина 1)



/ фото yuan2003 CC

Високочастотні трейдери – особлива каста біржових гравців. Мало, хто з них, спускається до опису сенсу своєї професії простою людською мовою. Ми знайшли блог Марко Стуккио, колишнього кванта, який вирішив написати коротку апологію HFT.

Мова йде не про виправдання професії в соціальному контексті, каже Марко. Мова про якихось інтелектуальних підставах сфери людської діяльності, яку часто неправильно розуміють. У своєму пості автор намагається розповісти про базис, на якому побудована біржова торгівля і високочастотний трейдинг, і на прикладах пояснює, чому трейдери так стурбовані скороченням затримок при здійсненні транзакцій.

Механіка HFT

Будь-яку серйозну дискусію з приводу високочастотного трейдингу доводиться починати з азів. Пояснювати механізми і практики, що лежать в основі HFT. Головний об'єкт у ньому, як і у випадку з будь-якими операціями щодо цінних паперів — реєстр ордерів (order book). Припустимо, якийсь трейдер Мел виходить на біржу з бажанням придбати певну кількість акцій компанії Blue Sun. Він приблизно уявляє, скільки він готовий купити і за якою максимальною ціною. Далі він освоює процес зведення заявок та обробки операцій (matching engine). Це може бути майданчики BATS, ARCA або будь-яка інша, де він розміщує ордер:
BUY(owner=Mal, max_price=20.00, quantity=100)

На цьому етапі Мел ще нічого не продав і не купив. Він просто сповістив весь світ про свій намір. Система бере цю заявку і відображає інформацію (анонімно) всім іншим трейдерам. Тепер уявімо, що з'являється дівчина-трейдер Інара, яка хоче продати 200 акцій компанії за, скажімо, $20,10. Вона теж розміщує свою заявку, яка відображається в регістрі ордерів. Тепер він виглядає так:

SELL(owner=Inara, min_price=20.10, quantity=200)
------
BUY(owner=Mal, max_price=20.00, quantity=100)

В цій точці ще ніякої угоди не сталося. Мел хоче купити за 20 доларів або менше, Інара хоче продати за 20,10 або більше. Ринок сформував різницю між аском і бидом в $0,10.

Ускладнимо завдання. Поки перші двоє чухають потилицю, на ринок заходять Кайлі і Рівер. Припустимо, з'явилася нова позиція на продаж 200 акцій по $20,21 і ще одна на 100 акцій за 20,10.

Нарешті, на біржі з'являється Саймон, який розміщує ордер на покупку 250 акцій за ціною $20,21. Він з радістю укладе угоду з Инарой, Кайлі і Рівером. Всі вони запросили менше його ціни. Система використовує два базові правила, які визначають, хто кому скільки продасть:

  1. Ціна: краща цінова пропозиція завжди перемагає.
  2. Час: якщо ціни дорівнюють, перемагає той, хто розмістив заявку раніше.
Отже, на момент появи останнього покупця реєстр ордерів виглядав так:

SELL(owner=Kaylee, min_price=20.21, quantity=200) <- Trades third
SELL(owner=River, min_price=20.10, quantity=100) <- Trades second
SELL(owner=Inara, min_price=20.10, quantity=200) <- Trades first
------
BUY(owner=Mal, max_price=20.00, quantity=100)

Після того, як Саймон розмістив свій ордер на покупку 250 акцій, механізм розподілить його наступним чином:

  • 200 акцій йому продасть Інара за ціною $20,10. Просто тому, що вона була першою з такою ціною.
  • 50 акцій йому скине Рівер, тому що його цінову пропозицію було краще, ніж у Кайлі.
Все, покупець отримав той обсяг акцій, який і хотів. Регістр тепер буде виглядати так:

SELL(owner=Kaylee, min_price=20.21, quantity=200)
SELL(owner=River, min_price=20.10, quantity=50)
------
BUY(owner=Mal, max_price=20.00, quantity=100)

Оскільки Кайлі не бажає дати хорошу ціну, її ордер залишається незаповненим. Це базовий механізм торгівлі на біржі. На практиці все, звичайно, складніше. З'являються деталі, з'являються інші типи ордерів, крім просто лімітних. Але для цілей цієї статті цього буде достатньо. Більш детально про механізм трейдингу можна почитати здесь і здесь. Але, пам'ятайте, жодна книга не дасть повної картини. Як варіант, можна поритися в документації самих біржових майданчиків, тоді можна скласти більш повне враження про те, як все влаштовано на певній майданчику.

Маркет-мейкинг

В високочастотної алгоритмічної торгівлі, в основному використовується стратегія маркет-мейкинг. У самому простому розумінні, це означає, що трейдер грає з того і з іншого боку столу одночасно. Він не відкриває і не закриває позиції, орієнтуючись на тренд ринку. Замість цього він виставляє активи і на купівлю і на продаж в один і той же час. Якщо ви хочете купити акції, він продасть вам їх за ціною $20,10. Якщо ви хочете продати, він купить їх у вас за ціною $20 за штуку. Поки він купує і продає, цінова різниця коливається незначно. Його мета та профіт – це ті самі $0,10.

Зрозуміло, навіть в цьому випадку трейдер несе певні ризики. Ніхто не гарантує, що після покупки акцій за 20 доларів, ринок не зафіксується на цьому рівні. Якщо він купив за 20, а активи впали до 15 до того, як він встиг їх скинути, він втратить $5 з акції. Тому такий трейдер повинен збалансувати ризики з урахуванням прибутку. Якщо він буде тримати різницю аск/бид занадто низько, він втратить гроші, якщо високо – ніхто не стане торгувати з ним.

Потрібно розуміти, що в стратегії маркет-мейкинг немає нічого нового або революційного. Згадайте, фільми про фондову біржу, де трейдери відкривали і закривали позиції вигуками та жестами. Це називалося «торгувати в ямі». Така практика була поширена з давніх часів по початок 2000-х років, коли крок був 1/8 і 1/16 долара.



/ фото yuan2003 CC

Автоматизовані трейдерські системи прийшли на зміну таким маркет-мейкерів з дуже простої причини: зниження витрат. По-перше, така стратегія працює тільки з декількома активами, жодна людина не зможе утримати в голові позиції по сотням акцій. По-друге, ви економите час. Система здатна генерувати від десятки і сотні тисяч доларів прибутку щорічно. Тобто, якщо поставити на її місце людини, він, будучи досить розумним, щоб правильно оцінювати ринок, буде працювати як мінімум за пару десятків тисяч доларів річного доходу. Середній сервера в дата-центрі здатний управлятися з сотнями стратегій з вигодою до $50 тисяч на рік. Робити це набагато швидше і акуратніше, ніж людина.

Іншими словами, ми маємо справу з приватним випадком загального процесу по заміні людей роботами.

Час і потік ордерів

Для маркет-мэйкера суть гри полягає в русі ордерів (order flow). Поки ваші покупки і продажу скоординовані, ваш прибуток буде пропорційна ось цього:

(# of shares traded) x (ASK PRICE - BID PRICE)

Сталість цього співвідношення залежить, за великим рахунком, лише від уміння трейдера оцінювати ризики. Теоретично, чим більше ви продаєте, тим вище прибуток. Так як же продавати більше?

Відповідь банальна: потрібно триматися в топі регістра ордерів. Самий прямий шлях до цього – пропонувати кращу ціну. Повернемося до нашого прикладу з трейдерами. Припустимо, є ще і Джейн, яка бажає стати на чолі черги покупців. Їй потрібно запропонувати кращу ціну, ніж у Мела.

SELL(owner=Kaylee, min_price=20.21, quantity=200)
SELL(owner=River, min_price=20.10, quantity=50)
------
BUY(owner=Jayne, max_price=20.05, quantity=100) <- Джейн пропонує ціну краще
BUY(owner=Mal, max_price=20.00, quantity=100) ніж Мел, отже, вона торгує першої.

Тепер настає час задуматися про баланс. Оскільки Джейн має лише $0,05 з проданої акції, їй потрібно бути впевненою в тому, що прибуток переважить ризики. Припустимо, що межа між очікуваним прибутком і втратою встановлена на рівні $20,05. Іншими словами, на ринку не знайдеться жодного учасника, хто вірить в те, що отримає прибуток, запропонувавши більше цієї суми. При такому розкладі Джейн завжди буде першою, просто тому що першою зайшла.

Цей приклад показує, чому так важлива швидкість реакції. Припустимо, рівно в 10:31 годин і 30 секунд ранку приходить нова інформація, яка дозволяє підняти ціну до 20,07, щоб отримати прибуток. Можливо, вийшов прес-реліз, де є натяк на те, що акції компанії підуть вгору. У цьому випадку і Мел і Джейн захочуть підняти ціну до 20,07. У кого вийде це зробити швидше, той і очолить список покупців.

SELL(owner=Kaylee, min_price=20.21, quantity=200)
SELL(owner=River, min_price=20.10, quantity=50)
------
BUY(owner=Mal, max_price=20.07, quantity=100) <- отримано у 10:31:30:427
BUY(owner=Jayne, max_price=20.07, quantity=100) <- отримано у 10:31:30:639, на 212 мс пізніше.

У цьому прикладі Джейн запізнилася на 212 мілісекунд. У загальних рисах це і є високочастотний трейдинг. Він пояснює, чому стільки зусиль пущено на те, щоб скоротити час реакції автоматизованої системи. Той, хто відкриває позицію першим, той з більшою вірогідністю і буде укладати угоди.

Друга причина полягає в тому, що є рух ринку. Нерідко трейдери хочуть скасувати свої ордера. В 10:31 сталася подія, яка свідчить про рух ціни вгору. Ріверу потрібно скасувати свій ордер на продаж за $20.10, щоб підняти ціну до $20,20. Припустимо, є ще хтось, кому, навпаки, вигідно після цієї події атакувати ордер Рівера на ціні 20,10. Рівер залишиться в грі, якщо зможе оперативно прибрати цей ордер. Якщо піде атака на ордер, Рівер буде змушений підняти ціну до $20,15, щоб ризикувати лише 0,05 за акцію.

Чому всі звалюються на одну ціну?

Проникливий читач вже, напевно, задався питанням: чому Мел і Джейн згодні, що краща ціна пропозиції 20,07? Може бути, розрахунки Джейн показують, що це буде 20,075, а розрахунки Мела – 20,071? Так, скоріш за все, обидва гравці розходяться в думці, що ж буде кращою ціною. Немає жодної причини, чому програми або трейдингові стратегії Мела і Джейн видадуть їм ідентичну ціну до тисячних часток.

Незалежно від того, що їм підказує стратегія, вони не можуть розміщувати ордера на свої кращі ціни. Правило мінімального цінового приросту SEC Rule 612 недвозначно забороняє їм виставляти ціну продажу або купівлі в частках цента. Тобто покупка 100 акцій за 20,07 годиться, а покупка 100 акцій за 20,075 – вже нелегально. До речі, до 2001 року ліміт був 1/16 долара або $0,0625 (аналогічний крок ціни для різних фінансових інструментів є і над інших біржових майданчиках, наприклад на Московській біржі).

На реальному ринку, з більш ніж п'ятьма учасниками, можна очікувати велику кількість ордерів нижче топових позицій регістра (вищої ціни біда) на 20,06, 20,05 і так далі. Але більшість трейдерів і в реальному житті буде кучкуватися близько до топу.

У наступних постах автор обіцяє підняти тему соціальної користі та шкоди від HFT, а також розповісти, що ж сьогодні не так з високочастотним трейдингом і як це виправити.

Інші матеріали по темі ITinvest:

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

0 коментарів

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