Меню Рубрики

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

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

Популярные алгоритмы биржевой торговли носят названия:

  • Percentage of Volume;
  • Pegged;
  • VWAP»;
  • TWAP;
  • Implementation Shortfall;
  • Target Close.

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

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

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

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

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

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

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

Реализация механизма алгоритмической торговли

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

  • время начала и конца исполнения;
  • целевая цена исполнения;
  • агрессивность/пассивность исполнения;
  • участие/неучастие в аукционах открытия и закрытия торговых сессий.

По мере исполнения своей заявки на рынке получает FIX-сообщения от брокера об исполнении и в конце дня сообщение о полном исполнении заявки или отмене ее оставшейся неисполненной части.

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

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

Как разработать хорошую торговую стратегию для алгоритмизации

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

Личные достижения, наработки и знания в торговле

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

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

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

Еще один момент, имеющий большое значение — время.

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

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

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

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

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

Для чего это нужно?

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

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

Стратегия выбрана, что дальше?

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

Если вы умеете программировать на C++, Java, C#, Python или R, это даст вам возможность лично заниматься созданием хранилищ данных, бэктестирования и исполняющей системы, что предоставит вам ряд преимуществ, основным из которых можно считать возможность иметь представление обо всех аспектах инфраструктуры. Благодаря этому, также у вас будет возможность производить анализ высокочастотных стратегий. В результате вы сможете не только тестировать собственноручно произведенное ПО, но и заниматься устранением ошибок. Кроме того, появится возможность больше времени уделять кодированию инфраструктур и непосредственно реализации стратегий. Вполне вероятно, что для некоторых процессов ведения расчётов, прогнозирования или отслеживания результатов тестирований гораздо удобнее будет работать с использованием Excel или MATLAB, а разработку остающихся компонентов передать на аутсорсинг. Но последнее не сильно рекомендуется, поскольку опять же вы не сможете должным образом откалибровать систему, поскольку не поймёте чужой код.

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

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

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

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

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

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

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

Основные алгоритмы

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

  • TWAP . Этот алгоритм подразумевает деление всей заявки на множество частей и исполнение каждой части через равные промежутки времени по лучшим на те моменты котировкам.
  • VWAP . Подразумевает равномерное исполнение всей заявки поделенной на n-ое количество частей в течение определённого промежутка времени по ценам, не превышающим более чем на заданное процентное отклонение, средневзвешенную цену, рассчитанную в момент запуска алгоритма.
  • ICEBERG . Суть данного алгоритма сводится к тому, чтобы выставлять заявку такими частями, чтобы их «видимое значение» не превышало некоторого заданного уровня. По аналогии с айсбергом, когда видна только его вершина, а основная часть скрыта под водой.

Риски, связанные с алгоритмической торговлей

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

Примером такой ошибки может служить случай произошедший в 2012 году с компанией Knight Capital. Из-за неправильной настройки и установки программного обеспечения произошел сбой, в результате которого, в короткий промежуток времени были выставлены заявки на несколько миллиардов долларов. Это был настолько мощный выброс, что некоторые акции сдвинулись в цене до 10%. Результатом этой ошибки стал убыток в полмиллиарда долларов и как следствие банкротство компании.

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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


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

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

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

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

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

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

Подход

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

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


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

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

Выводы

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

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

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

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