Алгоритмические роботы на фондовом рынке. Почему алгоритмическая торговля на бирже не работает. Примеры торговых алгоритмов

Профессор математики Нью-Йоркского Университета и эксперт по финансовым рынкам Марко Авелланеда (Marco Avellaneda) составил презентацию , в которой рассказал о том, как с помощью алгоритмов крупные инвесторы «скрывают» свои масштабные сделки, а другие трейдеры занимаются предсказанием изменений цен акций.

В нашем сегодняшнем материале - основные моменты этой работы.

Зачем нужны алгоритмы

Алгоритмическая торговля с самого своего появления в начале 90-х годов прошлого века была инструментом крупных инвесторов и хедж-фондов. Децимализация (переход на Нью-Йоркской бирже к использованию в торговле акциями на десятичную систему - минимальный шаг цены стал равняться 1 центу, а не 1/16 доллара), технологии прямого доступа на рынок (Direct Market Access, DMA), 100% электронные биржи, снижение комиссий бирж и брокеров, появление различных биржевых площадок в США и в других странах - все это привело к взрывному росту числа трейдеров, использующих алгоритмы.

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

Проще говоря, обычно крупным инвесторам нужно совершать операции с большим объёмом акций. Часто объём сделки выше, чем рынок может «переварить» без изменения цены акции. Необходимость совершить покупку огромного количества акций приведет к изменению их цены и появлению так называемого «проскальзывания». Таким образом, исполнить весь приказ по одной цене не удастся - сначала сделки будут проходить по нужной цене, но постепенно она будет становиться все менее выгодной.

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

Чтобы сделать это максимально выгодно, алгоритм должен контролировать среднюю стоимость акции. Оценить ее можно сравнив с рыночным «бенчмарком» - глобальной средней ценой за день, ценой закрытия или открытия и т.п.

Но проблема определения того, как именно разбивать крупный приказ на более мелкие, является не единственной. Алгоритм также должен решить, как именно выводить ордер на рынок - в виде лимитного или рыночного приказа - и по какой цене. Необходимо добиться наилучшей цены для каждого такого дочернего приказа.

Развитие финансовых рынков и появление новых торговых инструментов сделали эту задачу куда более сложной и интересной.

Времена, когда клиенты могли передать заявки своим брокерам только по телефону или факсу, ушли в прошлое. Сейчас существуют разные способы подключения к электронным торгам. Например, существует возможность подключения торгового робота к брокерской системе с помощью API - в таком случае приказы отправляются в брокерскую систему, а оттуда попадают на биржу (у ITinvest есть свой API-интерфейс SmartCOM).

В случае алгоритмической торговли, как правило, важна скорость работы стратегии, поэтому многие трейдеры предпочитают использовать технологию прямого доступа на рынок (direct market access, DMA - ITinvest предоставляет такой доступ к российским и зарубежным биржам). В случае ее применения торговый робот взаимодействует напрямую с торговой системой биржи, минуя систему брокера, что позволяет выиграть время.

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

Таким образом, существует три уровня развития современных алгоритмов.

  • Алгоритмы макротрейдинга - определяют торговую стратегию;
  • Алгоритмы микротрейдинга - собственно, торговые «движки» выставления ордеров;
  • Алгоритмы умной маршрутизации - в случае, если работа ведется на нескольких биржах одновременно.

Примеры торговых алгоритмов

Существует несколько типов алгоритмических стратегий. Один из них - экзекьюшн-стратегии, которые направлены на решение задачи покупки или продажи большого объёма финансового инструмента (например, акций) с минимальным отклонением итоговой средневзвешенной цены сделки от текущей рыночной цены.

Примерами алгоритмов, решающих эту задачу являются алгоритмы TWAP и VWAP.

Алгоритм TWAP
Использование TWAP (Tie Weighted Average Price - взвешенная по времени средняя цена) подразумевает равномерное исполнение приказа на покупку или продажу за заданное число итераций в течение заданного промежутка времени. Для этого постоянно выставляются маркет-заявки по ценам лучшего спроса или предложения, скорректированные на заданную величину процентного отклонения.

Например, покупка 100 тысяч акций в течение дня может выглядеть так (используются пятиминутные последовательные интервалы):

Алгоритм VWAP
VWAP (Volume weighted average price - взвешенная по объёму средняя цена) работает по следующей схеме. Объём торгов, как правило выше в начале и конце торговой сессии, а в ее середине он меньше. Чтобы исполнить крупный ордер с минимальными издержками, он разбивается на более мелкие приказы с учетом времени дня.

Для этого:

  1. Алгоритм оценивает средний объём торгов на пятиминутных интервалах.
  2. В рамках каждого интервала проводятся сделки на количество инструмента, пропорциональное нормативному объёму.
К свойствам этого алгоритма относится завершенность (размеры сделок всегда известны заранее), а также использование для оценки функции объёма исторических данных.

Процент объёма (POV)
Алгоритм Percentage of Volume (POV) решает ту же проблему, что и VWAP, но с использованием в качестве бенчмарка информации об объёме торгов в конкретный текущий день. Идея заключается в том, чтобы иметь постоянный процент участия в торгах на протяжении выбранного периода.

Если нужно «проторговать» еще акции объёма Q, а «коэффициент участия» в торгах γ, то алгоритм вычисляет объём торгов V, проторгованный в период (t – ΔT, t) и исполнит ордера на количество финансового инструмента q = min(Q,V* γ).

V(t) = общий объём торгов, имевший место на рынке к моменту времени t;

Q(t) = число акций, которое еще нужно купить/продать (Q(0) = начальное количество).

Как еще используются алгоритмы

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

Предсказание цен в высокочастотной торговле

Для того, чтобы «предсказать» движение цены, алгоритм должен смоделировать скрытую ликвидность рынка при данной ликвидности заявок на покупку и продажу. «Истощение» очереди заявок на покупку или продажу может свидетельствовать о скором движении цены.

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

Вероятность того, что очередь заявок аск истощится ранее, чем очередь заявок бид, высчитывается так:

Итоговая формула вероятности повышения цены:

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

Процедура оценки выглядит следующим образом:

  • На первом этапе собранные данные разделяются по биржам, за один раз анализируется один торговый день;
  • Котировки значений бид и аск компонуются по децилям . Для каждого такого набора (i,j) вычисляется частота повышения цены u_ij.
  • Подсчитывается число появлений каждой величины d_ij.
  • Производится анализ соответствия модели с помощью метода наименьших квадратов :

Заключение

На многих фондовых площадках (например, в США и России) оборот алгоритмической торговли уже довольно давно составляет более 50%. При этом часто алгоритмы используются не только для того, чтобы «опередить» конкурентов в скорости совершения транзакций и заработать на этом.

Крупные игроки могут применять этот инструмент для того, чтобы разбивать крупные сделки на более мелкие, которые позволяют осуществить операцию с заданным количеством финансового инструмента, не сдвигая его рыночную цену в ту или иную сторону. Для этого используются алгоритмы TWAP, VWAP и PoV.

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

На сегодня все, спасибо за внимание!

С Юрием Масловым, который в ITinvest занимается развитием инфраструктуры для работы на бирже с помощью торговых роботов. В блоге на Хабре мы публикуем выдержки из этого разговора, посвященные ответам на часто встречающиеся вопросы относительно технологий, используемых на фондовом рынке в России.

Плюсы алгоритмической торговли

Увеличение числа трейдеров, использующих для торговли на бирже специальных роботов , является мировым трендом. Не все довольны этим фактом, многие считают алгоритмическую торговлю вредной спекуляцией, однако она позволяет поддерживать ликвидность на рынках. Число высокочастотных торговцев (HFT) и их влияние на рынок определяется общими рыночными законами - мы писали об этом в топике , посвященном перспективам алгоритмической торговли в России:

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

Например, давным-давно, в 2002-2003гг. люди торговали простой жесткий арбитраж Газпром против фьючерса Газпрома руками. Получали безумные проценты в годовых. Но в 2008 году эта ниша целиком уже была занята алгоритмами. После сентября 2011 года эта ниша была полностью занята высокочастотными алгоритмами.

Сколько нужно денег для торговли роботом

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

Юрий Маслов

Прежде, чем бросаться в бой на реальный рынок, необходимо протестировать стратегию и рассчитать ее доходность (в принципе, это можно сделать даже в MS Excel). Эта доходность должна, в идеале, покрывать затраты на разработку и поддержание торгового робота - оплата услуг программиста или, при самостоятельной разработке, временные затраты.

На рынке есть люди, которые начинали со 100 тыс. руб. Может, они просто начинали в более удачное время. Сегодня сумма от 500 тыс. рублей до 1 млн. рублей - это входной порог, на котором уже можно начинать работу с алгоритмическими стратегиями. При этом, есть удобные инструменты, которыми можно алгоритмизировать стратегию и за 20 тыс. рублей. Их на рынке становится все больше. Они позволяют делать алгоритмы без значительных затрат на разработку.

В число таких решений входят системы TS Lab или продукты компании Cofite . Таких решений становится все больше - суть их заключается в использовании скриптовых языков, которые упрощают разработку по времени. Они «заточены» под быструю реализацию алгоритмов. Пример подобного скриптового языка - TradeScript, созданный американцами из Modulus Financial Engineering. Эта технология была лицензирована (OEM) для создания терминала SmartX . Этот язык очень прост и позволяет описать торговую стратегию за короткое время, просто ознакомившись с мануалом (или публикациями на Хабре - раз , два)

Раундтрип заявок

Скорость работы торгового робота зависит от различных факторов. Одним из важнейших является используемый протокол передачи данных.
Возьмем протоколы, которые используются для работы с Московской биржей по спот рынку. Там есть разные способы подключения: «родной» биржевой протокол, его еще называют нативным , FIX-подключение и работа через брокерскую торговую систему. Люди, которые стараются быть первыми в «стаканах», используют FIX-подключение, реже - нативный протокол.

При подключении через брокерскую систему скорость, как правило, ниже. Если говорить о FIX на фондовом рынке ММВБ, то раундтрип, в биржевой части составляет около 300-350 микросекунд, полный путь заявки, учитывая задержку каналов связи и на клиентском оборудовании, может выражаться в заметно больших значениях.

Эти цифры одинаковы для всех брокеров, они зависят в большей степени от качества канала до биржи, установленного оборудования и скорости обработки заявки в ядре. В случае использования «родного» биржевого протокола TEAP типичная задержка выше и составляет от 420 мкс.

Время для выставления заявок, проходящих через торговую систему ITinvest (от момента, когда она получена от клиента на шлюз (gateway), до момента, когда клиенту отдается ответ на неё – необходимо понимать, что при работе через интернет могут быть непредсказуемые задержки на участке от шлюза брокера до оборудования клиента) составляет от 1,5 до 2,5мс. При этом для высокочастотных трейдеров существует решение, которое подразумевает работу по FIX-протоколу и подключение к серверам риск-менеджмента ITinvest. На контроль рисков уходит считанное количество микросекунд и в общем количестве биржевого раундтрипа они незаметны.

Технологии разработки

Опыт показывает, что наилучшим технологическим решением для создания торговых роботов на российском рынке являются универсальные процессоры. Диапазон применения различных решений ограничен - на FPGA можно построить быструю стратегию, но для сложными вычислений лучше использовать универсальный процессор. В графических процессорах есть свои недостатки, например, медленная работа с памятью и большое энергопотребление. Оптимизация робота под универсальный процессор на локальном рынке в настоящий момент является лидирующим решением.
Что касается операционных систем, то чем больше человек хочет производительности, тем более он заинтересован использовать Linux. Если есть какая-то работающая бизнес-идея, то повышение скорости может позволить заработать больше. Но стоимость разработки и использования высококлассного программиста может не окупить эти расходы. В принципе, достаточно быстрые решения можно создать и на Windows. Linux хорош тем, что он кастомизируется под возникающие нужды пользователя-трейдера - выходят новые ядра с новыми фишками. Windows более консервативен в этих вопросах.

Популярным в последнее время является С#. Он очень прост в разработке, и человек, даже не имеющий профильного образования и обладающий лишь базовыми навыками разработки, может освоить С# и написать алгоритм робота. Для более серьезных разработок на финансовом рынке используются C и C++, которые позволяют получить приемлемую скорость при оптимальных затратах (в тяжелых случаях дело доходит и до Ассемблера). Начинающие разработчики биржевого софта обычно используют C#.

Нужно ли использовать коробочные продукты для создания роботов

С одной стороны, плюс подобных решений в том, что они экономят время разработки. С другой - это «черный ящик» со своей логикой, и разобраться в некоторых продуктах без консультации с их создателями, действительно, сложно. Но тот факт, что они облегчают разработку торговых роботов несомненен. У большинства брокеров есть удобный интерфейс, который позволяет быстро и удобно написать приложение. Например, у ITinvest есть API SmartCom .

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

На сегодня все, всем спасибо за внимание. Также мы хотели бы поинтересоваться у пользователей Хабра тем, о каких темах, связанных с фондовым рынком, им было бы интересно почитать. Заявки и вопросы принимаются в комментариях!

P.S. Если вы заметили опечатку или ошибку - напишите личным сообщением, и мы оперативно все исправим.

Алгоритм - это определенный набор четко определенных инструкций, направленных на выполнение задачи или процесса.

Алгоритмическая торговля (автоматическая торговля, торговля черным ящиком или просто торговля алго) - это процесс использования компьютеров, запрограммированных на выполнение определенного набора инструкций для размещения торговли с целью получения прибыли со скоростью и частотой, которая невозможно для торговца людьми. Определенные наборы правил основаны на сроках, цене, количестве или любой математической модели. Помимо возможностей для торговли трейдерами, торговля алговыми делает рынки более ликвидными и делает торговлю более систематической, исключая эмоциональные воздействия человека на торговую деятельность. (Подробнее см. Выбор правильного алгоритмического торгового программного обеспечения .)

Предположим, что трейдер следует этим простым торговым критериям:

  • Покупайте 50 акций акции, когда ее 50-дневная скользящая средняя превышает 200-дневную скользящую среднюю
  • Продать акции акции когда его 50-дневная скользящая средняя идет ниже 200-дневной скользящей средней

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

[Если вы хотите узнать больше о проверенных и точных стратегиях, которые в конечном итоге могут быть обработаны в алорифмической торговой системе, ознакомьтесь с курсом «Академия онлайн-трейдеров Академии Investopedia».]

Преимущества Алгоритмическая торговля

Algo-trading предоставляет следующие преимущества:

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

Наибольшая часть сегодняшней алго-трейдинга - высокочастотная торговля (HFT), которая пытается извлечь выгоду из размещения большого количества заказов на очень быстрых скоростях на нескольких рынках и нескольких параметров решения, основанных на по предварительно запрограммированным инструкциям.(Более подробно о высокочастотной торговле см. Стратегии и секреты фирм с высокой частотой торговли (HFT) .)

Algo-trading используется во многих формах торговой и инвестиционной деятельности, в том числе:

  • Средние и долгосрочные инвесторы или покупают сторонние фирмы (пенсионные фонды, паевые инвестиционные фонды, страховые компании), которые покупают акции в больших количествах, но не хотят влиять на цены акций с помощью дискретных крупных инвестиций.
  • Участники краткосрочных торговцев и продавцов (маркет-мейкеры, спекулянты и арбитражники) выигрывают от автоматизированного осуществления торговли; Кроме того, алго-торговля помогает создать достаточную ликвидность для продавцов на рынке.
  • Систематические трейдеры (трейдеры тренда, пар трейдеры, хедж-фонды и т. Д.) Находят гораздо более эффективными для программирования своих торговых правил и позволяют программе торговать автоматически.

Алгоритмическая торговля обеспечивает более систематический подход к активной торговле, чем методы, основанные на интуиции или инстинкте трейдера.

Алгоритмические торговые стратегии

Любая стратегия алгоритмической торговли требует определенной возможности, которая выгодна с точки зрения повышения прибыли или снижения затрат. Ниже перечислены общие торговые стратегии, используемые в торговле алгомистами:

  • Стратегии после следующих стратегий:

Наиболее распространенные алгоритмические торговые стратегии следуют тенденциям в скользящих средних, прорывах каналов, изменениях уровня цен и соответствующих технических индикаторах. Это самые простые и простые стратегии для реализации с помощью алгоритмической торговли, поскольку эти стратегии не включают в себя прогнозы или прогнозы цен. Торги инициируются на основе появления желательных тенденций, которые легко и просто реализовать с помощью алгоритмов, не вникая в сложность интеллектуального анализа. Вышеупомянутый пример 50 и 200 дневных скользящих средних является популярной тенденцией после стратегии. (Подробнее о стратегиях трейдинга см. Ниже: Простые стратегии капитализации на тренды .)

  • Арбитражные возможности:

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

  • Рефинансирование фондового индекса :

Фонды индексов определили периоды перебалансировки, чтобы довести свои запасы до их соответствующих контрольных показателей. Это создает выгодные возможности для алгоритмических трейдеров, которые извлекают выгоду из ожидаемых сделок, которые предлагают прибыль в размере 20-80 базисных пунктов в зависимости от количества акций в индексном фонде, до перебалансирования фондового индекса. Такие торги инициируются с помощью алгоритмических торговых систем для своевременного исполнения и лучших цен.

  • Стратегии, основанные на математических моделях:

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

  • Торговый диапазон (средняя реверсия):

Средняя стратегия реверсии основана на идее, что высокие и низкие цены актива являются временным явлением, которое периодически возвращается к их среднему значению. Определение и определение ценового диапазона и алгоритма реализации, основанного на том, что позволяет автоматически размещать сделки, когда цена актива разрывается и выходит за пределы его определенного диапазона.

  • Средневзвешенная по объему цена (VWAP):

Стратегия взвешенной средней цены по току разбивает крупный заказ и выпускает на рынок динамически определенные мелкие куски заказа на рынке с использованием исторических профилей объема запаса. Цель состоит в том, чтобы выполнить заказ, близкий к средневзвешенной цене (VWAP), тем самым выиграв среднюю цену.

  • Средневзвешенная средняя по времени (TWAP):

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

  • Процент объема (POV):

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

  • Нехватка реализации:

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

  • Помимо обычных торговых алгоритмов:

Существует несколько специальных классов алгоритмов, которые пытаются идентифицировать «события» с другой стороны. Эти «алгоритмы обнюхивания», используемые, например, маркет-мейкером на стороне продажи, имеют встроенный интеллект, чтобы идентифицировать существование любых алгоритмов на стороне покупки большого заказа. Такое обнаружение с помощью алгоритмов поможет маркет-мейкеру определить возможности большого заказа и дать ему возможность выиграть, заполнив заказы по более высокой цене. Это иногда называют высокотехнологичным фронтом. (Более подробно о высокочастотной торговле и мошеннических методах см.: Если вы покупаете акции онлайн, вы участвуете в HFT .)

Технические требования к алгоритмической торговле

Реализация алгоритма с использованием компьютера программа - последняя часть, забитая бэктестированием. Задача состоит в том, чтобы преобразовать идентифицированную стратегию в интегрированный компьютеризированный процесс, который имеет доступ к торговому счету для размещения заказов. Требуется следующее:

  • Знания в области компьютерного программирования для программирования требуемой торговой стратегии, нанятых программистов или готового торгового программного обеспечения
  • Сетевое подключение и доступ к торговым платформам для размещения заказов
  • Доступ к каналам рыночных данных, которые будут контролируется алгоритмом для возможности размещения заказов
  • Способность и инфраструктура для проверки системы после ее сборки, прежде чем она выйдет на реальные рынки
  • Доступные исторические данные для проверки бэк-тестинга в зависимости от сложности правил, реализованных в алгоритме

AEX торгуется в евро, тогда как LSE торгуется в фунтах стерлингов

  • Из-за разницы в часах AEX открывается на час раньше, чем LSE, после чего оба биржи торгуют одновременно в течение следующих нескольких часов и затем торгуется только в LSE в течение последнего часа, когда AEX закрывается
  • Можем ли мы изучить возможность арбитражной торговли на фондовых рынках Royal Dutch Shell, перечисленных на этих двух рынках в двух разных валютах?

Требования:

  • Корреспонденты с LSE и AEX
  • Курс курса форекс для курса GBP-EUR
  • Возможность размещения заказов, которая может маршрутизировать порядок для правильного обмена
  • Возможность повторного тестирования по историческим ценовым каналам
  • Компьютерная программа должна выполнить следующее:
  • Использование доступных обменных курсов, конвертировать цену одной валюты в другую
  • Если существует достаточно большое расхождение в цене (дисконтирование брокерских расходов), что приводит к выгодной возможности, затем размещайте заказ на покупку по более низкому тарифу на продажу и продажу по более выгодному обмену > Если заказы выполняются по желанию, арбитражная прибыль будет следовать
  • Простой и простой! Однако практика алгоритмической торговли не так проста в обслуживании и исполнении. Помните, что если вы можете разместить торговлю, генерируемую алго, то и другие участники рынка. Следовательно, цены колеблются в милли- и даже микросекундах. В приведенном выше примере, что произойдет, если ваша покупка торговли будет выполнена, но продавать торговлю не так, как цены на продажу меняются к моменту поступления вашего заказа на рынок? Вы закончите сидеть с открытой позицией, делая свою арбитражную стратегию бесполезной.
  • Существуют дополнительные риски и проблемы: например, риски сбоя системы, ошибки сетевого подключения, временные задержки между торговыми ордерами и исполнением и, самое главное, несовершенные алгоритмы. Чем сложнее алгоритм, тем более строгий бэктестинг необходим, прежде чем он будет введен в действие.

Нижняя линия

Количественный анализ производительности алгоритма играет важную роль и должен быть рассмотрен критически. Увлекательно заниматься автоматизацией с помощью компьютеров с идеей легко зарабатывать деньги. Но необходимо убедиться в том, что система тщательно протестирована и требуются ограничения. Аналитическим трейдерам следует рассмотреть возможность самостоятельного изучения программ и систем построения, чтобы быть уверенными в правильном осуществлении правильных стратегий. Осторожное использование и тщательное тестирование алго-трейдинга могут создать выгодные возможности. (Подробнее см. В разделе «Как закодировать свой собственный торговый робот Algo».)

Алгоритмическая торговля , или Алгоритмический трейдинг (англ. Algorithmic trading ) - это метод исполнения большой заявки (слишком большой, чтобы быть исполненной за раз), когда с помощью особых алгоритмических инструкций большая заявка (parent order ) делится на несколько под-заявок (child orders ) со своими характеристиками цены и объёма и каждая из под-заявок отправляется в определённое время на рынок для исполнения. Такие алгоритмы были придуманы для того, чтобы трейдерам не приходилось постоянно следить за котировками и делить большую заявку на маленькие вручную. Популярные алгоритмы носят названия "Percentage of Volume", "Pegged", "VWAP", "TWAP ", "Implementation Shortfall", "Target Close".

Алгоритмическая торговля не ставит целью получить прибыль. Её цель - уменьшить стоимость исполнения крупной заявки (transaction cost ), минимизировать её влияние на рынок (market impact ) и уменьшить риск её неисполнения .

Термин "алгоритмическая торговля" часто ошибочно используется в тех случаях, когда речь идёт об автоматизированных торговых системах . Перед такими системами действительно ставится цель получить прибыль. Они также известны под названием "торговых роботов " ("black box trading"), в которых торговые стратегии строятся на базе сложных математических формул и быстрой обработки данных .

Применение и реализация

Алгоритмическая торговля широко используется инвестиционными банками , пенсионными , хедж- и паевыми фондами, т.к. эти институциональные инвесторы в своей деятельности оперируют заявками большого объёма и следовательно не могут выставить такие большие заявки на рынок целиком без риска потерь.

До появления программных комплексов алгоритмической торговли трейдеры институциональных инвесторов или трейдеры брокеров, получавших заявки от таких инвесторов, должны были делить крупные заявки вручную . Существовала даже целая индустрия исполнения заявок (execution services ), когда сторонние execution -компании принимали заявки от крупных инвесторов и исполняли их, опираясь на свой собственный опыт .

В середине 2000-х годов эту рутинную работу удалось автоматизировать с помощью создания алгоритмических "движков" (algorithmic engines ), которые исполняли все те же действия, что делал трейдер, самостоятельно. Трейдеру достаточно было перенаправить заявку в такой "движок", выбрать алгоритм исполнения и дальше только отслеживать его работу, сконцентрировавшись на ручном исполнении только сложных заявок.

С середины 2000-ых годов ведущие брокеры стали предоставлять доступ к своим алгоритмическим движкам своим крупным клиентам, так что клиентам не надо было создавать такие движки самостоятельно. Комиссия за пользование алгоритмическим движком брокера выше, чем за пользование услугой прямого доступа к рынку (direct market access (DMA)), но меньше, чем high touch -услуга.

Передача заявки между клиентом и брокером осуществляется, как правило, с помощью сообщения по протоколу FIX . Для передачи заявок, предназначенных для алгоритмических движков, в 2004 году был предложен стандарт FIXatdl - расширение протокола FIX, но до сих пор этот стандарт так и не получил широкого распространения. Сообщение регистрируется в системе управления заявками брокера и перенаправляется автоматически в алгоритмический движок брокера. Сообщение FIX содержит в особых тегах (custom tags) параметры исполнения алгоритма, например: время начала и конца исполнения, целевая цена исполнения, агрессивность/пассивность исполнения, участие/неучастие в аукционах открытия и закрытия торговых сессий. По мере исполнения заявки на рынке инвестор получает FIX-сообщения от брокера об исполнении (Partial Fills ) и в конце дня сообщение о полном исполнении заявки (Fill ) или отмене её оставшейся неисполненной части (Cancellation ).

Каждый брокер называет свои алгоритмы по-разному, что приводит к трудностям сравнения услуг алгоритмической торговли для выбора лучшей. Впрочем, у всех брокеров реализованы самые распространённые и хорошо известные алгоритмы, например TWAP, VWAP, POV и проч., и отличия между их реализациями минимальны.

С некоторых пор на некоторых биржах алгоритмическая торговля реализована на уровне торговых систем. Это существенно повышает эффективность алгоритма, поскольку для его реализации достаточно выставить лишь одну заявку, которая будет исполнена гораздо быстрее, чем несколько последовательно выставленных заявок или пользоваться для этого услугами брокера.

Алгоритмические стратегии

Во избежание таких случаев регулирующие органы и биржи требуют от владельцев алгоритмических торговых систем оборудовать их системами быстрого отключения kill switch , которые позволяют моментально отключить систему от канала связи и автоматически отменить выставленные на бирже заявки с помощью механизма cancel-on-disconnect . Это требование относится не только к системам алгоритмического исполнения заявок, но и к системам автоматизированной торговли и системам прямого доступа к рынку .

Алгоритмическая и высокочастотная торговля стали предметом многочисленных разбирательств, инициированных американскими регуляторами SEC (U.S. Securities and Exchange Commission) и CFTC в связи с обвинением в их причастности к событиям 6 мая 2010 года (2010 Flash Crash ), когда ведущие фондовые индексы США кратковременно испытали крупнейшее за всю свою историю внутридневное падение .

Влияние алгоритмических систем на ликвидность финансовых рынков

Ликвидность финансовых инструментов обычно оценивают по объёму и количеству совершаемых сделок (объём торгов), величине спреда между лучшими ценами спроса и предложения (максимальными ценами заявок на покупку и минимальными ценами заявок на продажу) и суммарного объёма заявок вблизи лучших цен спроса и предложения (цены и объём текущих заявок можно увидеть в стакане торгового терминала). Чем больше объём и количество сделок по инструменту, тем больше его торговая ликвидность , в свою очередь, чем меньше разница между лучшими ценами спроса и предложения и чем больше объём заявок вблизи этих цен, тем больше моментальная ликвидность .

Существует два основных принципа выставления заявок:

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

Заявки, выставленные по котировочному принципу формируют моментальную ликвидность рынка, позволяя другим участникам торгов в любой момент времени купить или продать определённое количество актива.

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

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

Влияние алгоритмических систем на биржевую инфраструктуру

С точки зрения нагрузки на биржевую торговую инфраструктуру алгоритмические системы, использующие рыночный принцип работы с заявками, практически не несут рисков, так как редко выставляют больше одной заявки в секунду из расчета на один инструмент, к тому же, почти каждая заявка, выставленная этими системами, приводит к сделке. [ ] В случае же с алгоритмическими системами, использующими котировочный принцип работы, картина совершенно иная. Во-первых, при перестановке заявок эти системы могут выставлять по несколько заявок в секунду по одному инструменту, а во-вторых, лишь малая часть этих заявок приводит к сделкам (по информации предоставленной ММВБ, более 95 % заявок от высокочастотных роботов снимаются без исполнения ). Таким образом, при высокочастотном котировании, биржевая инфраструктура нагружается в максимальной степени, причем большую часть времени вхолостую. Поскольку чрезмерная нагрузка биржевой инфраструктуры может повлиять на стабильность её работы, биржи используют такие защитные механизмы, как задержка в трансляции рыночной информации, ограничение числа допустимых транзакций, введение минимального времени «жизни» заявки, а также сдерживание активности роботов через тарифную политику .

Спекулятивные стратегии

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

Стратегии маркет-мейкинга (англ. Market making ) - предполагают одновременное выставление и поддержание котировочных заявок на покупку и на продажу финансового инструмента. Данные стратегии используют принцип случайного блуждания цены в пределах текущего тренда, иными словами, несмотря на рост цены инструмента на определённом временном интервале часть сделок будет приводить к уменьшению его цены относительно ряда предыдущих значений, и наоборот, в случае общего падения цены инструмента часть сделок будет приводить к увеличению его цены относительно ряда предыдущих значений. Таким образом, в случае удачно подобранных цен котировочных заявок можно покупать дёшево и продавать дорого независимо от текущего направления тренда. Существуют различные модели определения оптимальной цены котировочных заявок, выбор которых осуществляется исходя из ликвидности инструмента, объёма размещаемых в стратегию средств, допустимого времени удержания позиции и ряда других факторов. Ключевым фактором успеха стратегий маркет-мейкинга является максимальное соответствие котировок текущей рыночной конъюнктуре по инструменту, чему способствует высокая скорость получения рыночных данных и возможность быстро изменить цену своих заявок, в противном случае данные стратегии становятся убыточными. Маркет-мейкеры являются одними из основных «поставщиков» моментальной ликвидности, а за счёт конкуренции способствуют улучшению её профиля, поэтому биржи часто привлекают маркет-мейкеров в неликвидные инструменты, предоставляя льготные условия по комиссиям, а в некоторых случаях выплачивая вознаграждение за поддержание котировок.

Трендследящие стратегии (англ. Trend following ) - основаны на принципе выявления тренда на временных рядах значений цены инструмента посредством различных индикаторов технического анализа, и покупке или продаже инструмента при появлении соответствующих сигналов. Характерной особенностью трендследящих стратегий является возможность их применения практически на любых таймфреймах - от тиковых до месячных, но поскольку доходность этих стратегий зависит от соотношения количества верных и ошибочных «прогнозов» относительно дальнейшего направления движения цены, использовать слишком большие таймфреймы довольно рискованно, поскольку ошибка на них выявляется достаточно долго и может привести к серьёзным убыткам. Эффективность трендследящих стратегий, особенно при внутридневной торговле, в существенной степени зависит от моментальной ликвидности инструмента, поскольку большинство сделок совершаются рыночными заявками по текущим ценам спроса и предложения. Следовательно, если в инструменте будет широкий спред и горизонтальная кривая моментальной ликвидности, то даже в случае большого количества верных прогнозов стратегия может принести убытки.

Способы подключения к торгам

Для большинства алгоритмических систем скорость получения рыночных данных и скорость выставления заявок являются важнейшими факторами, влияющими на эффективность работы системы. На российском рынке исторически сложилось шесть различных вариантов подключения роботов к биржевым торговым системам. В качестве примера рассмотрим варианты доступа к торговой площадке FORTS:


Сформулированный трейдером порядок открытия и закрытия сделок, в основу которого закладывается четкий алгоритм работы автоматических либо механических торговых систем - АТС И МТС соответственно.

Специфика и применение алготрейдинга

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

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

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

Типы и потенциал

Алгоритм — это набор точных инструкций, обеспечивающих достижение конкретных целей. В зависимости от последних на фондовом рынке выделяют 5 типов торговли:

  • статистическая;
  • алготрейдинг исполнения;
  • автоматическое хеджирование;
  • прямой доступ;
  • высокочастотный алготрейдинг.

Рост популярности МТС и АТС среди спекулянтов обуславливается увеличением автоматизации процессов, быстротечностью валютных операций, снижением операционных затрат. Банки также стали использовать алгоритмы с целью предоставления актуальных котировок на торговых площадках, повышения скорости обновления данных, уменьшения роли ручного труда в расчете цен, минимизации транзакционных издержек.

Сущность высокочастотного алготрейдинга

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

  • использование инновационных систем, способных исполнять позиции за миллисекунды;
  • осуществление скоростных сделок, характеризующихся крупными объемами и минимально возможной прибылью;
  • исключительно внутридневная торговля;
  • получение прибыли из маржи и микроколебаний цен;
  • использование всех категорий арбитражных сделок.

Самыми распространенными HFT-стратегиями являются маркетмейкинг, арбитраж задержек и статистический его вид, фронтраннинг. Последняя заключается в поиске объемных заявок на покупку и выставлении собственной мелкой, характеризующейся большей ценой. По мере исполнения алгоритм автоматически выставляет заявки немного выше, рассчитывая на проявление сопутствующих колебаний. Роботизированные операции, выполняемые в рамках алготрейдинга, создают около 55% ликвидности мировых фондовых бирж. С течением технологического развития инструментов процесс извлечения прибыли усложняется и дорожает. С профильного рынка постепенно вытесняются компании среднего звена, так как возрастают расходы на модернизацию технической базы, актуализацию программного обеспечения.