Как на самом деле устроена торговля на бирже: Простой алгоритм (часть 1)

Original author: Chris Stucchio
  • Translation


/ фото 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, а также рассказать, что же сегодня не так с высокочастотным трейдингом и как это исправить.

Другие материалы по теме финансов и фондового рынка от ITI Capital:


ITI Capital
163.81
Лучший онлайн-брокер для работы на бирже
Share post

Comments 30

    +1
    Т.е. по факту трейдер, мейкающий маркет, торгует не акциями, а воздухом (обещанием их купить/продать по такой-то цене). А что случится, если покупателю в итоге нужен не воздух, а реальные акции (которых у трейдера нет)?
      0
      Вы, по моему, торговлю акциями с торговлей фьючерсами путаете.
      По факту если трейдер продал больше акций эмитента чем у него было, то он просто остается должен эти акции трейдерской конторе или бирже (смотря какой договор он заключил для допуска к торгам), а тот кто акции купил становится полноправным владельцем акций (получает дивиденды и все дела).
      Но, по факту, большинство высокочастотных трейдеров закрывают все позиции к концу рабочего дня биржи.
        0
        Ни разу не специалист, но, кмк, за реальными акциями нужно идти не в HFT.
          +1
          А разве HFT на отдельных биржах торгуют?
            +1
            А разве для HFT есть спец отстойник? Покупатели то могут быть какие угодно. Пришел дядя, готовый платить до 3 рыночных цен, чтобы добить до 50%+1 акции, и начал выкупать все предложение, что есть на рынке. И усе, HFT ему продал, а купить для поставки не смог.
              0
              Виноват, упустил из виду, что на бирже нельзя сказать «Хочу купить вот этих акций, но не у тех троих редисок, а у Коли и Васи»
                0
                для таких сделок есть ОТС маркет.
          0
          Интересно, а влияет ли объем в заявке на порядок ее исполнения в «регистре ордеров»? Также интересно как разрешается случай, когда две заявки пришли в одно и тоже время?
            0

            Разные биржи предлагают разные политики приоритетов, порядок лучшая цена/время получения ордера является общепринятой, но возможно что какие-то мелкие площадки предлагают также приоритет по обьему. Лично я не встречал, но не исключено.
            Две заявки в одно и то же время прийти не могут, поскольку matching engine получает ордера последовательно (для одного и того же инструмента), все равно один из них будет первым. Могут только совпадать зафиксированные времена прихода, но это скорее вопрос точности представления.

            0
            >> Если пойдет атака на ордер, Ривер будет вынужден поднять цену лишь до $20,15, чтобы рисковать только 0,05 за акцию.

            Здесь возможно неточность перевода. В оригинале видимо имелось в виду, что Ривер вынужден будет изначально устанавливать цену $20.15 (а не более конкурентную $20.10), для уменьшения риска. Ведь после того как «пойдет атака на ордер», Ривер уже ничего изменить не сможет (ордер исполнится).
              0
              Забавно было бы посмотреть, как изменилась бы биржа, если убрать фактор [реального] времени. Например, делать matching случайным образом, базируясь лишь на цене. Или давать фиксированное время (1000 ms) на обработку вновь приходящей заявки.
                0
                Случайный матчинг сделал бы биржу провальной, тк никто не любит когда прыгают вперед очереди — может обернуться непредвиденными потрерями для трейдеров. С другой стороны есть биржа вроде IEX на которой мин задержка 350мс чтобы избежать фронтраннинга заказов (то что сделал Mal) и она имеет большую популярность среи трейдеров.
                  0
                  Спасибо за пример. Интересно как отреагировали HFT-трейдеры на барьер в 350мкс:

                  Citadel and high-frequency trading firms deluged the SEC with letters that argued IEX’s speed bump would violate rules that require orders be “immediately accessible” to traders. Intercontinental Exchange Chief Executive Jeff Sprecher, whose firm owns the New York Stock Exchange, told analysts in February that granting IEX permission would be “un-American” because it would create a new “monopoly,” with IEX as the only exchange with a speed bump.

                  Citadel’s founder, billionaire Kenneth Griffin, got personally involved in the fight against IEX, meeting with the SEC as recently as June 3 to lobby against its exchange bid, according to a regulatory notice.


                  Можно, в принципе, даже поступать еще тоньше — дать пользователю при размещении заявки возможность указать какое минимальное время он хочет подождать, пока произойдет matching.
                0
                Какие механизмы на текущий момент существуют, чтобы предотвратить участие биржи в торговле? Как минимум от случаев, когда биржа подсовывает свои ордера перед ордерами 'некоторых' клиентов.
                  0

                  Суровые проверки надзирающими органами. Плюс понимание что это будет работать очень недолгое время и полученная прибыль будет не очень велика, а для биржи это конец. Кроме того, полученные таким образом деньги трудно выводить, слишком много людей будет задействовано. В общем, игра не стоит свеч.

                    0
                    Успешных трейдеров от силы 1%, достаточно откусывать долю от сделок, т.е. меньше процента, это очень сложно заметить и еще сложнее доказать.
                      0

                      Надзирающим организациям доступна вся история транзакций ежедневно. Кто, какой символ, во-сколько, за сколько и т.д. SLA на обработку обычно сутки. Фрод, вроде того, что вы описали легко отслеживается алгоритмически. Машина находит подозрительные операции, дальше это передается аудиторам на рассмотрение и они могут все-все найти.

                        0
                        легко отслеживается алгоритмически

                        как как?
                        Представьте, вы полностью контролируете момент, когда именно использовать подобные манипуляции, т.е. вы можете подбирать момент времени и жертву, предвещая даже статистический анализ. Не забывайте, у вас полный объем информации на бирже, ее клиентах, депозитах, истории сделок и ордеров… даже простая статистическая информация может дать очень много злоумышленнику.

                        Единственное что может дать защиту от описанного мной выше — это полный ревью кода (в т.ч. аппаратных прошивок), что поверьте, практически нереально. Речь идет об контролируемых утечках информации от биржи к одному/нескольким торговцам на бирже, снимающих оборудование в этом же датацентре (это кстати отдельная услуга на биржах).
                          0

                          Контролируемые утечки: это выделенные каналы связи, спец. изменениями в прошивках, с открытые дырки в файерволле, с кастомный софтом потребляющим такие фиды данных и способный все это обработать вовремя — инфраструктура.


                          Вы себе представляете количество лиц, которые должны быть вовлечены в такую схему? Каждому надо будет отстегивать кусочек пирога по расценкам выше рыночных. Ну и если любой из них стукнет в ФБР — сядут все.

                            0
                            Инфраструктура подобного вредительства — элементарная. Информация о сделках и так передается клиентам — это еще одна услуга, кстати не дешевая. Достаточно сделать эту информацию для особых клиентов немного другой, например чуть быстрее или чуть чуть подробнее.

                            Повторяю, отследить это можно ТОЛЬКО с помощью полного ревью кода… а про отслеживание информации на фаерволах, советую почитать о стенографии.
                              0

                              1) Тот кто будет менять биржевой софт должен быть в доле, а иначе зачем им покрывать фрод? Для того, чтобы изменения сделать нужные и в правильном месте софт нужно неплохо знать, а значит это будет та же самая комманда что и делает его для всех. Отдача должна быть существенной, чтобы была мотивация рисковать работой и возможностью работать в будующем в отрасли. Платят там и так хорошо.


                              2) Если какой-то трейдер внезапно начинает торговать лучше других — то аудит будет от А до Я. Штрафовать и сажать за такие преступления любят.


                              Вы проигнорировали вопрос о количестве лиц вовлеченных в схему. Ну собственно о чем тогда говорить?


                              Повторяю, отследить это можно ТОЛЬКО с помощью полного ревью кода… а про отслеживание
                              информации на фаерволах, советую почитать о стенографии.

                              Сначала вы сделали предположение, теперь повторили его как будто это аксиома. Ваше утверждение не верно. Отследить можно не только с помощью полного ревью кода.


                              Про стенографию — отличный уход в сторону, которы показывает, что вы слабо себе представляете проблему.


                              Фрод, который вы описываете, безусловно возможен, но риски такие же как и при любом другом фроде на торговле, а вот отдача будет не высокой — подумайте почему. Есть схемы проще и доходней. А если уж дошло до рекоммендаций почитать — почитайте отчеты регуляторов на тему кого и за что штрафовали. Публикуются каждый квартал.

                                0
                                Наверное лучший ваш довод — 'вопрос про количество участников', чем их больше тем больше риски идти против 'закона' (был тут недавно пост про какую то финансовую компанию, где на простую, казалось, операцию, заведено 9 посредников с дорогущей сертификацией).

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

                                И еще, мы точно говорим про одну и ту же биржу? Потому как биржи уровня форекс-кухонь, являющимися простыми посредниками, не интересны, где, я не удивлюсь, владелец получает софт вместе с оборудованием, опломбированным и 'сертифицированным' а деньги делаются больше не на комиссиях а на игре против 'своего клиента'. Где клиенты как минимум не имеют никакой информации о рынке, кроме свечек в терминале mt4. В таких условиях владелец фактически выполняет ряд простых, давно известных, хоть и очень дорогих, действий (подключение и оплата доступа к данным на нормальных биржах, оплата софта, сертификация, реклама,… — получение прибыли).

                                Я же имею в виду классические биржи (к сожалению у меня туго с терминологией, кажется они называются level2, биржи, предоставляющие клиентам realtime данные по стакану и потоку ордеров).

                                p.s. если биржа успешно и незаметно играет против своих клиентов, никто не сможет доказать что это так :)
                                  0
                                  Вы можете привести примеры штрафов регуляторов, если они не вида, 'вот тут в лицензии заголовок с маленькой буквы', а
                                  именно по делу.

                                  Ну вот один http://money.cnn.com/2016/05/19/news/companies/phil-mickelson-sec-insider-trading/. SEC публикует ежемесячные и квартальные отчеты по штрафам, но увы они идут вперемешку используя вашу классификацию "серьезное" и "несерьезное" я не знаю тех, кто-бы производил фильтрацию по вашим критериям (т.к. для продавцов и бирж последствия одинаковые). Пожалуй если вам хочется отделять зерна от плевел — вам придется этим заняться самому.


                                  И еще, мы точно говорим про одну и ту же биржу? Потому как биржи уровня форекс-кухонь, являющимися простыми
                                  посредниками, не интересны, где, я не удивлюсь, владелец получает софт вместе с оборудованием, опломбированным и
                                  'сертифицированным' а деньги делаются больше не на комиссиях а на игре против 'своего клиента'.

                                  Согласен. Форекс кухни как раз и зарабатывают на таких схемах, там с регулированием все хуже. Но мы говорили о чем-то вроде BSE NYSE и тд


                                  если биржа успешно и незаметно играет против своих клиентов, никто не сможет доказать что это так

                                  Даже с форекс кухнями люди умудряются все это отследить. Даже с казино умудряются находить фрод, а тут биржа — задача упрощается законодательством.

                                0
                                а про отслеживание информации на фаерволах, советую почитать о стенографии.
                                Усиленно пытаюсь понять связь между додиктофонной скорописью и межсетевым экраном.
                                  0
                                  дико извиняюсь, конечно я имел в виду стеганографию
                              0

                              Думаете они тяжело работают стараясь отследить фрод? Они перекладывают всю работу на сами торговые площадки. Я сам в частности отвечаю за сервер, который собирает и посылает всю информацию регуляторам, а они только претензии периодически предьявляют если им что-то не нравится.

                                0

                                Работа регулятора — это получить от вас файл с транзакциями, получить от вас отчет с вашим собственным анализом на тему соответствия транзакций установленым правилам.


                                Затем произвести независимый анализ транзакций и получить отчет такой же как отправили вы. Затем они сверяют результаты. Если результаты расходятся — они начинают аудит (зачастую это то самое предъяляют если не нравится), но иногда это может вылиться в полноценное расследование с поднятием истории по какому-то символу или трейдеру.


                                Тяжело они работают или нет как судить? Вот вы считаете свою работу тяжелой? У них типичный SLA — 24 часа, за которые надо получить от вас и других бирж данные (которые зачастую криво выгружены), трансформировать их, обработать, сверить и сделать отчеты.


                                Если вы — не NYSE, то объем данных с которыми вы работаете — мизерный и проводить аудит по нему в общем довольно просто, а вот с NYSE все печально объемы торгов как примерно у всех остальных вместе взятых.

                                  0
                                  Я не понимаю что вы подразумеваете 'анализ на тему соответствия', само собой, глупости вида 'не исполненная транзакция при наличии подходящих ордеров в стакане' это к 'кухням', я не их имею в виду.
                        0
                        Биржевая торговля достаточно сильно зарегулирована, и потом биржа получает основную прибыль от брокеров, клиринга etc., смысла что-то подсовывать нет.
                        0
                        А почему вы его называете Марко? Автора же Крисом зовут. Это чтобы запутать читателей? Или просто небрежность и непрофессионализм переводчика?

                        Only users with full accounts can post comments. Log in, please.