/ фото 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. Он с радостью заключит сделку с Инарой, Кайли и Ривером. Все они запросили меньше его цены. Система использует два базовых правила, определяющих, кто кому сколько продаст:
- Цена: лучшее ценовое предложение всегда побеждает.
- Время: если цены равны, побеждает тот, кто разместил заявку раньше.
Итак, на момент появления последнего покупателя регистр ордеров выглядел так:
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:
- Аналитические материалы от экспертов ITinvest (для постепенного погружения в тему финансов можно начать с еженедельных обзоров финансовых рынков)
- FAQ начинающего инвестора: Как на самом деле защищены деньги на бирже
- Суровая реальность: Как антиквары, пенсионеры и сисадмины создают стратегии торговли на бирже (и что из этого выходит)
- Могут ли все финансовые модели быть ошибочными: 7 источников риска возникновения убытков
- Эксперимент: Что гипотеза случайного блуждания говорит о прогнозировании финансовых рынков
- Эксперимент: Использование Google Trends для прогнозирования обвалов фондового рынка
Комментарии (15)
nethask
26.07.2016 15:44Интересно, а влияет ли объем в заявке на порядок ее исполнения в «регистре ордеров»? Также интересно как разрешается случай, когда две заявки пришли в одно и тоже время?
degs
26.07.2016 22:59Разные биржи предлагают разные политики приоритетов, порядок лучшая цена/время получения ордера является общепринятой, но возможно что какие-то мелкие площадки предлагают также приоритет по обьему. Лично я не встречал, но не исключено.
Две заявки в одно и то же время прийти не могут, поскольку matching engine получает ордера последовательно (для одного и того же инструмента), все равно один из них будет первым. Могут только совпадать зафиксированные времена прихода, но это скорее вопрос точности представления.
windrider
26.07.2016 16:45>> Если пойдет атака на ордер, Ривер будет вынужден поднять цену лишь до $20,15, чтобы рисковать только 0,05 за акцию.
Здесь возможно неточность перевода. В оригинале видимо имелось в виду, что Ривер вынужден будет изначально устанавливать цену $20.15 (а не более конкурентную $20.10), для уменьшения риска. Ведь после того как «пойдет атака на ордер», Ривер уже ничего изменить не сможет (ордер исполнится).
A_J
26.07.2016 19:53Забавно было бы посмотреть, как изменилась бы биржа, если убрать фактор [реального] времени. Например, делать matching случайным образом, базируясь лишь на цене. Или давать фиксированное время (1000 ms) на обработку вновь приходящей заявки.
dominator69_1
27.07.2016 09:43Случайный матчинг сделал бы биржу провальной, тк никто не любит когда прыгают вперед очереди — может обернуться непредвиденными потрерями для трейдеров. С другой стороны есть биржа вроде IEX на которой мин задержка 350мс чтобы избежать фронтраннинга заказов (то что сделал Mal) и она имеет большую популярность среи трейдеров.
A_J
27.07.2016 12:19Спасибо за пример. Интересно как отреагировали 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.
rPman
27.07.2016 22:55Какие механизмы на текущий момент существуют, чтобы предотвратить участие биржи в торговле? Как минимум от случаев, когда биржа подсовывает свои ордера перед ордерами 'некоторых' клиентов.
degs
28.07.2016 19:02Суровые проверки надзирающими органами. Плюс понимание что это будет работать очень недолгое время и полученная прибыль будет не очень велика, а для биржи это конец. Кроме того, полученные таким образом деньги трудно выводить, слишком много людей будет задействовано. В общем, игра не стоит свеч.
rPman
30.07.2016 17:14Успешных трейдеров от силы 1%, достаточно откусывать долю от сделок, т.е. меньше процента, это очень сложно заметить и еще сложнее доказать.
Zolg
Т.е. по факту трейдер, мейкающий маркет, торгует не акциями, а воздухом (обещанием их купить/продать по такой-то цене). А что случится, если покупателю в итоге нужен не воздух, а реальные акции (которых у трейдера нет)?
solutus
Вы, по моему, торговлю акциями с торговлей фьючерсами путаете.
По факту если трейдер продал больше акций эмитента чем у него было, то он просто остается должен эти акции трейдерской конторе или бирже (смотря какой договор он заключил для допуска к торгам), а тот кто акции купил становится полноправным владельцем акций (получает дивиденды и все дела).
Но, по факту, большинство высокочастотных трейдеров закрывают все позиции к концу рабочего дня биржи.
RazorRunner
Ни разу не специалист, но, кмк, за реальными акциями нужно идти не в HFT.
Zolg
А разве HFT на отдельных биржах торгуют?
Ndochp
А разве для HFT есть спец отстойник? Покупатели то могут быть какие угодно. Пришел дядя, готовый платить до 3 рыночных цен, чтобы добить до 50%+1 акции, и начал выкупать все предложение, что есть на рынке. И усе, HFT ему продал, а купить для поставки не смог.
RazorRunner
Виноват, упустил из виду, что на бирже нельзя сказать «Хочу купить вот этих акций, но не у тех троих редисок, а у Коли и Васи»