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



Ми продовжуємо цикл статей, присвячений тому, як влаштований високочастотний трейдинг простим і зрозумілим мовою. минулому матеріалі колишній квант Марк Стуккио розповідав про механіку процесу в цілому. цей раз поговоримо про поняття «розкриття ціни» і про ліквідності.

Як HFT-трейдери роблять гроші

Минулого разу мова йшла про те, що у високочастотному трейдингу всім «рулять» стратегії маркет-мэйкинга. Автор пояснював «кухню» HFT на прикладі декількох вигаданих персонажів – учасників ринку. Зробимо ще один уявний експеримент. У нас є два «маркет-мэйкера» (Ліла і Бендер) і два спекулянта (Фрай і Зойдберг). Припустимо, Фрай рік тому придбав акції компанії MomCorp за ціною $5 за штуку і тепер хоче їх перевести в готівку. Зойдберг вважає, що MomCorp – вдале вкладення грошей і хоче увійти на ринок, щоб їх придбати.

12:00:00.000 - MomCorp issues an earnings release

HFT-трейдер в цей момент розуміє, що ризики різко зменшилися, і можна легко брати акції по $10 і торгувати за $10,05. Гра почалася. Всі трейдери, практикуючі високочастотну торгівлю, тепер спробують вступити в неї, як можна швидше.

12:00:00.032 BUY(Leela, $10.00, 100 shares) <- Leela trades first
12:00:00.042 SELL(Leela, $10.05, 100 shares)
12:00:00.045 BUY(Bender, $10.00, 100 shares)

У нашому прикладі Лілі вдалося випередити Бендера і заробити $0,05 до акції. Просто тому, що вона розмістила свій ордер раніше. Спізнися вони обидва на 100 мс, ніхто з них не зробив би на ситуацію впливу.

Тепер Фрай впевнений, що зможе подвоїти свої початкові інвестиції і готовий до продажу.

12:01:00.000 SELL(Fry, $10.00, 100 shares)

Система обробки і зведення заявок (matching engine) виводить угоду між Фраєм і Лілою з показниками 100 акцій по 10 доларів. Варто зауважити, що для Фрая змагання між двома покупцями не має значення. Все, що знає Фрай – це те, що він продає свої 100 акцій якомусь анонімному контрагенту. Ліла отримала свої 100 акцій і знаходиться в очікуванні нового гравця на ринку. У цій ситуації можливі два варіанти:

  • У 12:05:00 проявляється Зойдберг і забирає всі 100 акцій по $10,05. Профіт Ліли становить 0,5 за акцію.
  • У 12:05:00 акції MomCorp падають до 9,50 за штуку, з-за побоювань про якість продукту компанії. Зойдберг готовий забрати 100 акцій за поточною ціною. Ліла втрачає 0,5 доларів з акції.
На практиці другий варіант зустрічається рідше. Але його вірогідність завжди існує. Тому продавець, типу Фрая, завжди готовий пожертвувати $0,5 за акцію в якості плати за ризик. Він не хоче переживати з приводу руху ціни, переклавши цей ризик на когось типу Ліли.

Розкриття ціни

В якості вихідного положення ми беремо той факт, що головна мета ринку – це поширення або розкриття інформації про ціну. Як тільки з'являються свіжі дані про майбутньої вартості MomCorp, нормально функціонуючий ринок прилаштує їх під поточне значення ціни. Наступна передумова: цей процес має соціальне значення.

Трейдери не беруть участь у процесі розкриття ціни напряму. Ніхто з гравців не має своєї думки або відомостей про цінності тієї чи іншої компанії. Що ж в такому випадку вони виробляють? В теорії ціна акції – це результат спільної домовленості або консенсусу. В реальному світі завжди присутній фактор помилки, значення якої пропорційно транзакційних витрат. Якщо вони, наприклад, становлять $1 з угоди, то коригування ціни на 0,5 або 0,99 не дасть вам можливості заробити. Тобто ринкова ціна буде відрізнятися від «справжньої ціни» приблизно на 1 долар. При цьому, якщо брати до уваги ризики, то і передбачувана націнка на акцію повинна бути вище. Якщо ви усвідомлюєте, що можете продати акції, немає сенсу починати з покупки.

Для простоти експерименту, залишимо в стороні винагороду брокеру. Зосередимося виключно на транзакційних витратах, викликаних розподілом бідів і асков.

Все, чим займаються трейдери, звичайні або HFT, — вони намагаються знизити витрати і поліпшити ліквідність. Під ліквідністю автор розуміє можливість торгувати завжди, коли є бажання. Зазвичай ліквідність описує два поняття: обсяг активів доступний для покупки і продажу прямо зараз за заданою ціною і обмеженість розподілу бід/аск.

Поглянемо на регістр ордерів:

SELL($10.10, 100 shares)
----------- A ---------
BUY($10.00, 100 shares)

Даний регістр має меншою ліквідністю, ніж наступний:

SELL($10.08, 100 shares)
----------- B --------
BUY($10.03, 100 shares)

Просто тому, що у регістру B, на відміну від A, розподіл більш компактно, вже ($0,5 замість $0,10).

SELL($10.10, 100 shares)
SELL($10.10, 100 shares)
----------- C ---------
BUY($10.00, 100 shares)
BUY($10.00, 250 shares)

В регістрі C ліквідність вища, ніж в регістрі A, оскільки в ньому доступно більше акцій за ціною $10 і $10,10. При зіставленні B і C відповідь вже буде суб'єктивним і не таким однозначним. На думку автора статті, у випадку з ліквідністю йдеться про частковому виконанні ордерів, а не про повну. Деякі люди вважають за краще вимірювати кількісно ліквідність. Для цього є маса способів.

Чому для гравців так важлива ліквідність?

Припустимо, Фрай переконаний, що протягом року відбудуться якісь події, які позитивно позначаться на вартості компанії MomCorp. У цьому варіанті він хоче тримати довгу позицію і закрити її через рік.

Припустимо, що поточна ціна акцій MomCorp становить $9/9,05. Тобто купівля прямо зараз буде коштувати йому 9,05 доларів, а продати прямо зараз він може за 9 доларів. Якщо Фрай впевнений, що за рік MomCorp зросте до $10, він повинен виконати наступні дії:

  • Купити сьогодні 100 акцій за ціною 9,05. Це підніме акції до $9,15, перевівши інформацію Фрая на мову ціни для всього ринку.
  • Продати через рік по $10, враховуючи, що бид/аск до того моменту буде на позиції $10/10,05.
Прибуток становитиме 95 доларів.

У Фрая досить легко вийшло передати інформацію, своє переконання ринку, тому що він хотів спекулювати на ринку з високою ліквідністю. На ціновому кроці в 1 долар він заробив 0,95 з акції, заплативши $0,05 в якості транзакційних витрат.

Що було б, якби MomCorp менш ліквідної? Якщо б ніхто не побажав продати Фраю 100 акцій, він застряг на першому кроці. Ринок не отримав нову інформацію. Але навіть, якби продавець знайшовся, у нього могли виникнути сумніви, чи йому вдасться через рік знайти покупця.

Неможливість торгувати, коли ти цього хочеш, називається ризиком ліквідності. Якщо Фрай цей ризик приймає, ймовірно, він розраховує на велику різницю між поточною ціною і ціною через рік.
Тепер припустимо, що акції компанії доступні, але розподіл бід/аск у них ширше – $8,50/9,50. При такому розкладі трейдингова стратегія може виглядати наступним чином:

  • Купити сьогодні 100 акцій MomCorp по 9,50, і ми отримаємо розподіл $8,65/9,65. Ринок обміркував цю інформацію.
  • Через рік ціна змінилася до 9,50/10,50, і Фрай може продати свої 100 акцій по $9,50.
Прибуток становитиме $0. Весь можливий профіт від руху ціни пішов на оплату розподілу.

Фрай не дурний чоловік. Можливо, він міг передбачити, що так вийде. Тому він не вступив у гру і не став передавати свою інформацію ринку. Це була б для нього безглузда робота.

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

При цьому потрібно розуміти, що в стратегіях високочастотного трейдингу ліквідність може бути швидкоплинна. Тут ви пропонуєте ліквідність на кілька секунд на значенні $10/10,05, проводите ордер (піднімаючи розподіл до 9,99/10,05) на кілька секунд у відповідь на якусь подію на ринку, повертаєте його на кілька секунд і так далі. Для Фрая все це не має значення. Він взагалі не в курсі, хто відповість на його ордер в момент розміщення. Для нього, швидше за все, розподіл бід/аск буде швидко коливатися між 9,98/10,07 та 10/10,05, потім буде сповільнюватися і зафіксується на значенні 9,90/10,10.

HFT як мережева інфраструктура ринку

Якщо витрати транзакції складають, принаймні, $X, повідомлення зі значенням <$X не будуть відправлятися. Автор відправляє тисячі листів щорічно, ціна кожного email тут дорівнює кліку миші. Двічі на рік йому доводиться відправляти рівно два звичайних паперових листи. Обидва стосуються штрафів за прострочену декларацію про доходи. Обидва обходяться досить дорого: похід в поштове відділення і спілкування з не дуже привітними поштовими службовцями.

Розробники Gmail радикально знизили витрати на відправлення одного повідомлення. Вартість комунікацій істотно нижче, менше проблем, більше листів. За великим рахунком, гравці на біржі (в особливості трейдери HFT) здійснюють ті ж функції на фінансових ринках. Коли хтось наважується торгувати, він передає свою інформацію ринку. «Маркет-мейкери» знижують трансакційні витрати для спекулянтів, дозволяючи останнім робити більш точні коригування ціни.
Автор переконаний, що автоматизовані «маркет-мейкери» просто швидше і розумніші своїх людських прототипів. У цьому, власне, і є апологія або слово на захист високочастотного трейдингу.

Є дві причини, по якій роботи роблять свою роботу краще. Вони більш акуратні, швидше виробляють точні розрахунки. Вдалий розподіл може бути $10/10,10. Але людина готовий вибрати 9,98/10,12, щоб уникнути можливих арифметичних помилок. Машина готова запропонувати більш вузьке розподіл, не боячись промахнутися.

Автомати дешевше. На світі не так багато людей, здатних завжди дотримуватися виграшної стратегії на ринку. Ймовірно, такий працівник буде «коштувати» фінансової компанії не менше 50-200 тисяч доларів в рік. Але, яким би геніальним не був чоловік, він одночасно може управлятися з обмеженим числом активів. Стратегія, керована людиною, в ідеалі здатна давати по 200-300 тисяч доларів прибутку в рік. Машина може керувати сотнею активів. Якщо сервер в добротному дата-центрі обійдеться, припустимо, в 50-200 тисяч в рік (цифра взята, щоб прив'язати машину до людини), достатньо отримувати з кожного з 100 активів дохід у 2-3 тисячі доларів, щоб перекрити можливості людини.

Всі ці висновки були перевірені емпіричним шляхом. Машина не робить нічого кардинально відрізняється від того, що робить будь-який трейдер. Але робить це швидше і акуратніше, пропонуючи більш щільні розподілу і великі обсяги ліквідності. Кілька програмістів і пара серверів здатні з успіхом замінити десятки тисяч звичайних трейдерів і вивільнити величезна кількість людського капіталу для вирішення безліч інших корисних завдань.

Швидкість реакції

Проникливий читач може задати питання: обов'язково, щоб операції на ринку вкладалися в 4 мілісекунди? Відповідь: ні. Поглянемо ще раз на приклад зі статті. Фраю неважливо, скільки Ліла розмістила свій ордер. З його позиції, він торгує з анонімним контрагентом. Для спекулянта фактично без різниці, в який проміжок вкладеться HFT-операція: 12, 24 мс або навіть в 24 секунди. Для нього значення має лише факт, що хтось готовий продати або купити акції у вузькому розподілі бід/аск.

Для Ліли швидкість має значення, тому що це дозволяє їй торгувати перед Бендером. Якби вона повільніше, перевага переходить до другого гравцеві. Для Фрая важливо те, що вони вступили в змагання за ціною. Тобто для кінцевого споживача момент швидкості не принципове. Тим не менш, всі трейдери HFT змушені грати в цю гру. Інакше більш швидкий трейдер витіснити їх з ринку.

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

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

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

0 коментарів

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