[Перевод] Разработка торговых роботов: поиск рыночных неэффективностей. Часть 2
Примечание переводчика: Ранее в нашем блоге на Хабре мы рассматривали различные этапы разработки торговых систем (есть и онлайн-курсы по теме), и даже описывали разработку событийно-ориентированного бэктест-модуля на Python. Сегодня мы представляем вашему вниманию продолжение рассказа о том, как HFT-трейдеры в процессе разработки моделируют поведение людей, которые будут противостоять их торговым роботам на бирже.
На примере предыдущего материала мы видели, как одно из свойств HFT-ордеров, их высокий уровень отказов, можно использовать для оценки различных типов ордеров при формировании основы торговой стратегии. В этом посте мы рассмотрим еще одну их особенность и простую, основанную на ней стратегию. Характерной чертой этого и предыдущего материала является то, что в них описываются очевидные особенности высокочастотных ордеров.
Если говорить о стереотипах об HFT-трейдинге, то первое, что приходит на ум (после частых отказов) — это небольшая средняя величина сделки [1]. Считается, что трейдеры любого типа, использующие в своей работе алгоритмы, размещают небольшие «выжидающие» ордера. HFT маркет-мейкеры поступают так, потому что хотят выборочно торговать с некрупными агрессивными игроками во избежание потери ликвидности на всем ценовом уровне. Алгоритмы, повышающие ликвидность, размещают малые ордера, так как им нужно скрыть свое намерение торговать более крупными объемами, чтобы максимально долго удерживать цену на нужном уровне.
Естественно, при агрессивной торговле все может быть несколько иначе — алгоритмы, которые стремятся «скрыть свои намерения», подвергаются риску со стороны других роботов: те могут воспользоваться оставшейся в выбранном ценовом диапазоне ликвидностью. Для агрессивных HFT-алгоритмов это стремление не выдать себя не имеет никакого значения, поэтому предполагается, что они устраняют всю ликвидность, которая может принести прибыль. Однако в предыдущем материале мы отмечали, что для агрессивных трейдеров с биржи EdgeX такое поведение, как ни странно, нехарактерно.
С учетом вышесказанного выясним, можно ли по данным рынка выявить эту тенденцию размещения роботами малых ордеров. Мы могли бы просто проследить за поведением ордеров разного размера после совершения сделки, но было бы лучше учесть все ордера на текущем ценовом уровне. А раз такое возможно, то мы будем учитывать их на всех биржах. Для этого можно измерить самые разные показатели, но я буду сравнивать ситуации, когда ни на одной из бирж в момент совершения сделки не имеется ордеров, размер которых намного меньше 2 целых лотов (200 акций).
Верхний график: Зависимость результатов торгов от рыночной стоимости на бирже Nasdaq с учетом «возраста» ордера и наличия ордеров размером не более 201 акции при данной цене. Под размером ордера понимается первоначальный размер в момент появления ордера в сводках данных по рынку, исключая любые изменения его размера вследствие исполнения, обработки или обновления системы. Ордера, размещенные с целью проведения доверительной торговли, включены в выборку. Комиссия и компенсационные выплаты не учитываются; в выборке отсутствуют данные по некоторым биржам. Нижний график: объем акций на Nasdaq с учетом доверительной торговли.
Те же графики для EdgeX. Нижний график также показывает объем акций на Nasdaq
Заметно сильное влияние присутствия малых ордеров на долгосрочные результаты сделки. В случае, если на бирже Nasdaq не имеется малых ордеров и обрабатываемый ордер был размещен недавно (менее 1 секунды назад), пассивная сторона в торгах оказывает на их исход негативное влияние. Стоит заметить, что самоокупаемость на Nasdaq при пассивной торговле, в принципе, может принести немалый доход из-за размера компенсационных выплат примерно в 0,30 цента.
Данный факт противоречит выдвинутой ранее гипотезе о том, что отсутствие малых ордеров может свидетельствовать о меньшем числе участвующих в торгах алгоритмов и сниженном риске. Я не проверял, правда ли это на самом деле, но такое поведение может соответствовать размещению роботами крупных ордеров при резких колебаниях в стакане в попытке получить компенсацию.
Если всему рынку известно, что цена близка к приблизительному значению тика, можно предположить, что любой, кто быстрее других разместит ордера на покупку/продажу, сможет получить компенсацию. В такой ситуации было бы логично размещать крупные ордера. Такие действия являются обычной спекуляцией, однако они, по большому счету, указывали бы на неблагоприятную ситуацию на рынке в наших примерах.
Ситуация полностью изменится, если мы взглянем на ордера, размещенные на Nasdaq более секунды назад, что соответствует первоначальной гипотезе. Отсутствие малых ордеров на Nasdaq соответствует достаточно низкой ликвидности, при этом после торгов мы теряем почти целый цент. То же происходит и с ордерами, размещенными как давно, так и недавно на EdgeX: «возраст» ордеров и их размер только усиливают эффект. Ситуация повторяется на всех рассмотренных мною биржах. Не могу сказать, почему Nasdaq выделяется в условиях присутствия в торгах недавно размещенных ордеров, но отмечу, что это самая быстрая инвестиционная биржа с интенсивным потоком сообщений, а биржи могут вести себя достаточно своеобразно при отсутствии доступа к системе лучшей котировки (NBBO).
Если бы рынок функционировал по-настоящему эффективно, мы бы, скорее всего, столкнулись с намного менее сильным эффектом подобного рода. Можно представить, к примеру, насколько менее активными стали бы агрессивные трейдеры, если бы на рынке имелась некоторая доля малых ордеров. Это бы побудило маркет-мейкеров и пассивные алгоритмы размещать более крупные ордера для того, чтобы торговать с этими игроками. В конце концов мы бы заметили, как эффект снижается или пропадает. Отмечу, что механизмы для реализации такого подхода не совсем соответствуют механизмам сокращения эффекта разницы между давно и недавно размещенными ордерами; как правило, алгоритм с легкостью может изменить размер ордера, но ему будет сложно изменить длительность его экспозиции.
Теперь мы можем отобрать «выжидающие» ордера с низким уровнем риска, используя данный метод; мы может смоделировать стратегию подобно тому, как мы это делали в предыдущем посте. А именно:
- Следим за всеми ордерами на всех доступных биржах, размер которых не превышал 201 акцию в момент их размещения.
- Если ордер, размещенный более 5 секунд назад, начал исполняться, при этом на рынке нет малых ордеров или недавно (менее 100 мс назад) размещенных ордеров, тогда
- Отправляем ордера на другие биржи по той же цене. В предыдущем примере мы торговали в один тик агрессивнее, но здесь мы не можем смоделировать ту же ситуацию, потому что эта стратегия не ограничена дорогостоящими акциями.
Учтите, что стратегия не проверена. Если в качестве сигнальных данных использовать данные Nasdaq, получим следующий результат:
Верхний график: Зависимость результатов смоделированных торгов от рыночной цены на разных биржах. Моделирование велось в течение недели в августе 2014 года. Размер каждого смоделированного ордера составляет 100 акций. Нижний график: Объем акций Nasdaq без учета смоделированных торгов.
Объем небольшой, но, тем не менее, даже при вычете комиссии получаем приличную чистую прибыль, особенно на EdgeX. EdgeX же, как мы уже убедились, может принять и более крупные ордера. Если отправлять ордера объемом в 1000 акций на EdgeX, то эта стратегия будет приносить около 5 тысяч долларов в день только на этом направлении. Это лишь пример, но отмечу, что биржевая пара Nasdaq→EdgeX — не единственная из тех, что подходят для этой стратегии, особенно если у нас есть ограничение на торговлю дешевыми акциями. Кроме того, если мы собираемся торговать дорогими акциями на 1 цент агрессивнее [рынка], объем может быть намного больше.
В очередной раз мы отметили важность отслеживания характеристик ордеров контрагента. Довольно забавно, что мы можем использовать такие глупые стереотипы HFT для того, чтобы получить достаточно предсказуемые результаты. Как будто все сообщество алгоритмических трейдеров не осознает своего влияния на рынок.
[1] Во введении к обзору литературы, составленному Комиссией по ценным бумагам и биржам, сказано:
Основными характеристиками высокочастотного трейдинга являются высокая скорость передачи сообщений, резкий рост количества отказов и изменений ордеров, высокий показатель объема совершенных сделок, малые размеры сделок и увеличение скорости торговли. Данные характеристики обычно связывают с более общим явлением алгоритмической и автоматизированной торговли в той или иной форме.