Торговые роботы — создание и использование в торговле

Николай Солабуто, Финам Менеджмент: «Инвестиции и трейдинг с использованием торговых роботов более чем оправданы»

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

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

Разработка торговых роботов: этапы

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

Интересный факт! Еще в 2009 году, когда автоторговлей на биржах могли заниматься только крупные участники, количество сделок, совершаемых торговыми роботами, составляло 52%. С увеличением числа розничных участников оно сократилось до менее чем 40%. Когда же и частные инвесторы получили возможность создавать и использовать системы алготрейдинга, эта доля снова начала расти и сегодня превышает 68%.

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

При создании программ автоматической торговли выделяют несколько этапов:

  • разработка и оптимизация алгоритма (торговой системы);
  • бэктестинг — прогон полученной системы на исторических данных, поиск ошибок и их устранение;
  • написание кода торгового робота;
  • повторная оптимизация автоматической торговой системы, минимизация рисков.

На каждом из этапов решаются определенные задачи.

Разработка алгоритма

Это, пожалуй, самый сложный этап, на котором происходит конструирование торговой системы. Важнейшими действиями являются:

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

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

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

Бэктестинг

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

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

Результатом этого этапа становится полное техническое задание (ТЗ) на программирование робота.

Написание кода

Для тех, кто не владеет языками программирования, этот этап может стать камнем преткновения в создании собственного торгового робота. Хотя в большинстве случаев для освоения основ программирования даже с нуля потребуется около 1–2 недель. Как правило, разработчики подробно документируют возможности программного обеспечения для создания автоматических торговых систем. Есть несколько вариантов:

  • Использование API торговых площадок, как, например, при создании роботов для биржи Binance и большинства других криптобирж.
  • Создание модулей для торговых терминалов на встроенных языках программирования. Так можно создавать роботов для MetaTrader 4и 5, популярных у форекс-дилеров и для наиболее распространенного в российской торговле на фондовой бирже торговой системы QUIK.
  • Другие варианты, например, конструкторы стратегий в терминалах собственной разработки брокеров.

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

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

Торговые роботы собственной разработки имеют неоспоримые достоинства:

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

Те, кто не знает, как написать торгового робота, могут пойти двумя путями:

  • Приобрести готовую стороннюю разработку.
  • Заказать робота по собственному техническому заданию.

В первом случае придется довольствоваться чужой реализованной в программе торговой идеей, которая может оказаться мало совместимой с взглядами покупателя на трейдинг. Во втором — отдать за конечный продукт действительно солидную сумму: разработки на заказ стоят очень дорого. Например, если купить и скачать торгового робота с реальной хорошей статистикой для Форекс можно за 10-20 тыс. долларов, то аналогичный заказной продукт обойдется в 40–70 тыс. долларов. При этом ни о какой возможности вносить изменения речь не идет.

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

Читайте больше на нашем Telegram-канале!

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.