Термин «алгоритмическая торговля» (algorithmic trading) используется для обозначения специфического процесса в электронной биржевой торговле, в котором не принимаются инвестиционные решения (investment decision).
В алгоритмической торговле алгоритмы используются для исполнения больших ордеров с минимальными потерями. Решение о том, каким образом лучше всего исполнить ордер, называется «торговым решением» (trading decision).
Цель алгоритмической торговли – эффективно уменьшить затраты на исполнение ордера (execution costs), уменьшить влияние ордера на рынок (reduce market impact) и избежать утечки информации о том, что на рынке присутствует крупный ордер (information leak). Слово «торговля» (trading) в этом термине не совсем удачное. Оно имеет слишком широкое значение и у большинства ассоциируется с деятельностью по купле-продаже, поэтому корректно называть этот процесс «алгоритмическим исполнением ордера» (algorithmic order execution).
Как работает алгоритмический движок
Алгоритмическое исполнение ордера — т.е. выставление его на электронную торговую площадку — управляется определенной моделью. Модель выбирается владельцем ордера из нескольких вариантов, исходя из своих собственных желаний, представлений, сроков и намерений. Каждая модель старается исполнить ордер — т.е. получить Fills по нему — минимизируя издержки исполнения в сравнении с каким-то определенным заданным критерием/параметром (algo parameter, algo benchmark).
Чаще всего исполнение ордера осуществляется путем деления его на мелкие ордера и выставлении ордера на рынок по частям.
Подробности
1) Большой родительский ордер (parent order) поступает в алгоритмический движок, например, по FIX-протоколу.
2) Внутри движка ордер делится, используя специальный алгоритм с заданными параметрами, на маленькие ордера (child orders), и каждый маленький ордер отправляется на рынок:
- в определенное время (утренняя сессия, вечерняя сессия)
- с определенной ценой (ниже, вровень с BBO, с уплатой спреда и проч.)
- определенным типом (лимитный или рыночный)
- определенным Time-in-Force (Day, FOK, IOC и проч.)
3) В течение торгового дня алгоритмический движок следит за судьбой каждого child-ордера, отслеживая его исполнение, в случае необходимости меняет child-ордер (переопределяет его, повышает-понижает цену, меняет объем ордера) или отменяет его, выставляя новый.
Компьютеры очень легко могут обрабатывать тысячи клиентских ордеров одновременно и делить их на «сотни маленьких медвежат», оставляя трейдеру время и возможность работать над другими более сложными ордерами вручную.
Откуда именно попадает родительский ордер (parent order) в алгоритмический движок – не суть важно, главное — родительский ордер не создает сам алгоритмический движок. Чаще всего алго-движок брокера работает над крупным ордером, поступившим от клиента. Иногда от отдела — проприетарной торговли, внутреннего фонда управления активами или маркет-мейкера.
Какие бывают алгоритмы исполнения ордеров
Алгоритмы исполнения ордеров никакого секрета не представляют, они общеизвестны, хорошо изучены и отличаются у каждой компании, которая их предлагает, лишь нюансами реализации и экзотикой названий.
Самыми популярными являются:
- VWAP
- TWAP
- Arrival Price
- Implementation shortfall
- POV
- ADV
- EOD / Beat Close
- Iceberg
Каждый из этих алгоритмов предназначен для исполнения ордера определенным образом/способом. Самым популярным является алгоритм «VWAP», который старается исполнить ордер по цене как можно близкой к VWAP.
За каждым из этих алгоритмов стоит своя особая модель и критерий успешного исполнения. Например, алгоритм «Arrival price» стремится исполнить ордер по той цене, по которой инструмент торговался в момент прихода первого child-ордера на рынок. Например, если цена покупки акций IBM в 11:00 была 100 долларов, то выбирая алгоритм Arrival price, клиент хочет исполнить весь свой ордер именно по этой цене с определенным отклонением.
[ См. также: Подробности о самых популярных алгоритмах алгоритмической торговли ]
Transaction Cost Analysis
После того, как весь (или не весь) ордер исполнен, все child-ордера собираются в кучку и производится анализ того, как parent-ордер был исполнен алгоритмом, т.е. на сколько результат исполнения ордера отошел от критериев, которые были заданы до запуска алгоритма.
Этот анализ называется «анализом издержек» (Transaction Cost Analysis — TCA) и является дополнительным сервисом, который брокер предоставляет клиенту.
Ссылки по теме
- Вопреки утверждениям алгоритмическая торговля на бирже работает
- Почему не следует путать алгоритмическую торговлю с автоматизированной