Знакомьтесь, ваш первый торговый робот

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

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

Следовательно, если самое важное для вас – скорость, то код софта нужно писать низкоуровневым эффективным языком, здесь справится C++ или язык C. К примеру, торговый терминал SmartX основан на данном коде. Иногда в разработке скоростных роботов не обходятся без ассемблера, допустим, механизмов чтения-записи данных напрямую в память сетевой карты, без привлечения драйверов, практикуется и использование FPGA, так называемого «сверхбыстрого программируемого железа».
 

 

 

Важная деталь: скорость бота нацелена на выполнение взаимосвязанных, но разноплановых задач. 1) Скорость получения/отправки информации на биржу (то есть быстрота взаимодействия с ней). 2) Оптимизация логики непосредственно торгового приложения. Чтобы достичь поставленных целей, хорошего «железа» и оптимизации кода недостаточно, нужно еще разбираться в нюансах биржевой архитектуры (иногда многое зависит даже от стойки, где располагаются сервера).
Следующий этап – «начинка» робота. Не забывайте, что повысить производительность могут опять же компромиссы, оптимизирующие функционал устройства. Бот «затачивается» под биржевой шлюз, условия конкретного рынка, он может быть системой, работающей по единственному алгоритму, его набор инструментов порой весьма ограничен – вариантов здесь множество. Универсальный же продукт упрощает использование софта и ускоряет разработку, с другой стороны, здесь вероятна низкая производительность машины и т. п.

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

Еще один компромисс быстроты разработки и скорости работы – задействование платформы .Net (сюда относят использование VisualBasic, С# и т. д.).
Экзотические языки – R, Python, скриптовый TradeScript, – уместны в разработке, когда боту предстоят значительные вычисления для оптимизации параметров торговли не в реальном времени, а в фоновом режиме. Некоторые из этих инструментов сочетаются с вышеназванной технологией .Net.
 
Успех в создании торгового бота фундируется на учете ряда факторов – от основ технологии, шлюзов, «начинки железа» до времени торгов и новостных выпусков, словом, от математики до политики, и, конечно, невозможно игнорировать экономику. И факторы эти по-разному влияют на разработку конкретных робототипов. Так, высокочастотная торговля основана на быстром исполнении, виды арбитража непременным условием имеют хорошие статистические методы, направленный бот базируется на четком понимании фундаментальных либо технических процессов (или их микса).

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

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

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

Проверенный софт для трейдеров: сравнительные характеристики торговых роботов, советников