Бизнесу место

Бизнесу место

» » Алготрейдинг на Форекс: подробно об автоматизованном стиле торговли. Как работает Алготрейдинг на биржах — суть, виды и примеры Примеры системы алгоритмы на бирже

Алготрейдинг на Форекс: подробно об автоматизованном стиле торговли. Как работает Алготрейдинг на биржах — суть, виды и примеры Примеры системы алгоритмы на бирже

Алгоритмическая торговля , или Алгоритмический трейдинг (англ. 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:


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

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

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

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

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

Как торговать криптовалютой?

Как правило, трейдеры склоняются к одному из трех подходов:

Фундаментальный анализ

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

Анализ настроений

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

Технический анализ

Трейдеры анализируют динамику котировок и поведение специальных индикаторов (коих насчитывается великое множество), пытаясь предсказать дальнейшее движение цен. Технический анализ очень популярен на криптовалютном рынке.


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


Технические индикаторы MACD и RSI помогают оценить направление и оценку криптоактива

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

Правильный подход к успешной торговле

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

Давайте рассмотрим пример алгоритмической торговой стратегии. На разработку ее концепции, анализ и настройку ушло более семи месяцев.

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

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


Обратите внимание, как отскакивает цена после прокола зеленой линии

Сигнальная линия на графике выше обозначена как «2 стандартных отклонения от скользящей средней». Давайте разберемся, что это значит.

Основы статистики: Среднеквадратическое (стандартное) отклонение

Любая нормальная случайная величина удовлетворяет распределению вероятностей Гаусса. Пик распределения соответствует среднему значению, а стандартное отклонение определяет возможный разброс значений.

Из статистики мы знаем, что 96% значений нормального распределения находятся в пределах двух стандартных отклонений (σ) от среднего. Другими словами, вероятность, что некая цена выйдет за пределы 2σ-интервала с той или иной стороны, составляет менее 2%.

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

Подход

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

Например, можно проверить работу алгоритма на разных временных интервалах (5 мин, 15 мин, 30 мин, 1 час) и для различных пороговых значений (2σ, 2,5σ, 3σ) на множестве разнообразных криптоактивов. Это позволит определить, какая комбинация значений дает наибольший процент надежных сигналов без ущерба для прибыльности каждой сделки.


Процесс разработки алгоритмической торговой стратегии

Как только параметры оптимизированы, можно приступать к реальной торговле, попутно следя за ее показателями (прибыльностью, проскальзыванием, коэффициентом Шарпа и т. д.). Убедившись в надежности алгоритма, можно увеличить объем капитала, предназначенного для торговли.

Выводы

За последние семь месяцев эта стратегия не только принесла прибыль, но и позволила сделать массу интересных наблюдений о торговле на турбулентном рынке:

  • Со временем прибыльность алгоритма снижается.
  • Алгоритмы, отлично работающие с небольшим капиталом (скажем, $10 000), перестают приносить прибыль, если его сильно увеличить (например, до $100 000).
  • Чем труднее концептуализировать и программировать алгоритм, тем дольше он сохраняет свое преимущество.
  • Большинство алгоритмов коррелируют с ценами - некоторые лучше работают на растущем рынке, другие хорошо справляются с падающим. Необходимо разумно скомпоновать портфель, состоящий из различных алгоритмов, чтобы они компенсировали возможные слабости друг друга.

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

Будь в курсе! Подписывайся на Криптовалюта.Tech в
Обсудить актуальные новости и события на

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

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

История развития алгоритмической торговли

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

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


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

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

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

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

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

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

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

Если говорить о стратегиях, то их условно делят на:

1) Арбитражные

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

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

2) Стратегии на основе опережения

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

3) Тактики маркет – мейкеров

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

Последствия развития алгоритмической торговли

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

Также из-за конкуренции данных компаний довольно сильно сузилось значение спреда что не может не радовать.

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

С Юрием Масловым, который в 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. Если вы заметили опечатку или ошибку - напишите личным сообщением, и мы оперативно все исправим.

Профессор математики Нью-Йоркского Университета и эксперт по финансовым рынкам Марко Авелланеда (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.

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

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