Алгоритмическая торговля
Алгоритмическая торговля (алготрейдинг) – это автоматическая система торговли на бирже, основанная на определённых алгоритмах. Алгоритмы также называют "Торговыми роботами". Существует большое количество стратегий и алгоритмов, реализуемых на базе торговых роботов.
Этапы алгоритмической торговли
Вне зависимости от выбранной стратегии выделяется несколько этапов разработки торгового робота:
-
Сбор и анализ исторических данных. На данном этапе перед разработчиком торгового робота стоит задача сбора максимального количество исторических данных с биржи, а именно котировки, свечи. Требуется это в первую очередь для анализа и подготовки гипотез, которые будут в последующем проверяться и дорабатываться.
-
Выдвижение гипотезы. Используя исторические данные разработчик должен сформировать гипотезу, т.е. некую идею, которая будет реализовываться торговым роботом. Гипотеза необязательно должна быть "человекочитаемой" — это вполне может быть результат обучения алгоритма, основанного на интеллектуальных технологиях (нейросети, машинное обучение и т.п.).
-
Проверка гипотезы на исторических данных. На данном этапе производится проверка выдвинутой на предыдущем шаге теории. Производится эмуляция торговли робота "в прошлом". Оценивается уровень доходности и прибыльность стратегии. Если результаты неудовлетворительные, то следует вернуться назад и доработать гипотезу или выдвинуть новую.
-
Проверка гипотезы в реальном времени. Не всегда историческая доходность гарантирует доходность в будущем, поэтому кроме проверки на исторических данных требуется провести тестирование алгоритма и на реальных данных. Для этой задачи отлично подходит песочница Public Invest API. Хотя песочница и имеет ряд ограничений (например, отсутствует влияние на рынок самого алгоритма), для предварительной проверки гипотезы она вполне может подойти.
-
Реальная торговля на бирже. На данном этапе запускается полноценная торговля на бирже — с последующим мониторингом доходности и корректировкой алгоритма, если того требует ситуация.
Классификация алгоритмической торговли
Виды алгоритмической торговли:
-
по степени автономности алгоритмов:
-
сигнальные – тип алгоритмов, которые, исходя из внутренней логики, формируют сигналы трейдеру о покупке или продаже инструментов. Решение же о непосредственном выставлении заявки на биржу принимает человек (разработчик алгоритма);
-
автоматические – тип торгового робота, который самостоятельно торгует на бирже, т.е. выставление/отмена торговых поручений происходит в полностью автоматическом режиме без участия человека.
-
по частоте торгов:
- высокочастотная торговля (англ. high-frequency trading, HFT) – основная форма алгоритмической торговли на финансовых рынках, в которой современное оборудование и алгоритмы используются для быстрой торговли ценными бумагами. В HFT используются специальные торговые стратегии, при которых компьютеры покупают и продают позиции в течение долей секунды, получая при этом на каждой сделке минимальную прибыль (часто измеряемую сотыми долями процента). Данный тип алгоритмов очень критичен к скорости получения биржевой информации и скорости выставления поручений на торговую площадку. Задержки на считанные миллисекунды способны свести и без того небольшую доходность каждой сделки к нулю или даже к убыткам;
-
интрадей торговля – торговля внутри одного торгового дня. При такой стратегии сделки с инструментами производятся строго в рамках одного торгового дня и никогда не переносятся на следующий. Отличие от HFT в первую очередь заключается во времени владения активом, оно может достигать минут и часов;
-
фундаментальная торговля – вид алгоритмов, при котором отсутствует привязка к торговому дню биржи. Один актив может удерживаться торговым роботом в течение нескольких дней или даже недель в ожидании выгодного предложения о продаже/покупке.
-
по цели реализации алгоритма:
-
получение непосредственно прибыли – цель таких алгоритмов генерировать прибыль на спекуляции активами;
-
уменьшение риска владения портфелем – данный тип алгоритмов предназначен для автоматической диверсификации и ребалансировки портфеля владельца. Основная цель самого алгоритма не генерация прибыли, а максимально быстрое реагирование на изменение баланса портфеля и приведение его к заранее заданным параметрам. Например, поддержание доли акций (по цене) в границах 30-40% от стоимости портфеля;
-
оптимизация крупных сделок – данный тип алгоритмов предназначен для совершения очень крупных по объёму сделок. Особенности работы торговых площадок подразумевают сильное влияние на стоимость актива крупными торговыми поручениями. Например, если появляется заявка на покупку определённых акций на сумму $1млн, это неминуемо сильно повысит цены торгов. Чтобы избежать такого влияния, крупные участники рынка используют алгоритмы, которые могут в течение длительного времени маленькими партиями покупать или продавать инструменты по заданным параметрам цены. Такое "дробление" позволяет минимизировать влияние трейдера на рынок и получить требуемые объёмы сделок по приемлемым ценам.
-
по количеству используемых пулов ликвидности:
-
арбитражные – эти алгоритмы используют разницу цен на разных торговых площадках, а также курсовую разницу различных валют. Арбитражный алгоритм очень критичный к скорости работы алгоритм, т.к. разница цен может наблюдаться считанные доли секунды.
-
монопульные – алгоритмы, использующие в своей работе только одну торговую площадку.
-
по типам алгоритмов принятие решений и/или генерации сигналов:
-
парная торговля с целью уменьшения спреда – тип алгоритмов, за основу которых берётся метод одновременного выставления поручений на покупку и продажу инструмента в границах текущего спреда стакана;
-
машинное обучение и прочие элементы AI – использование возможностей нейросетей и прочих интеллектуальных технологий для поиска корреляций и прогнозирования динамики цены того или иного инструмента;
-
индикаторная алгоритмическая торговля – тип алгоритмов, которые используют для прогнозирования высчитанные по строгому алгоритму индикаторы с заранее известными параметрами.
-
по используемым инструментам:
-
фьючерсная и индексная торговля;
- опционная торговля, включая опционный арбитраж.
Важно! Приведённая классификация является достаточно общей и нужно понимать, что реально работающий торговый робот может объединять в себе алгоритмы нескольких видов.
Риски алгоритмической торговли
При торговле на бирже необходимо учесть:
-
Требуется определённый уровень компетентности в вопросах биржевой торговли. Мы настоятельно рекомендуем изучить теорию биржевой торговли и особенностей работы Тинькофф Инвестиций перед началом разработки своего торгового робота, чтобы исключить риски, связанные с неправильным пониманием функционирования торговых площадок и вашего брокера.
-
Требуется определённый уровень компетентности в программировании. Несмотря на наличие подробной документации и ряда готовых решений, снижающих порог входа, от разработчика будет требоваться некоторый набор знаний и навыков для написания своего алгоритма.
-
Убытки от работы торгового робота. На бирже никто не застрахован от неудач, алгоритмическая же торговля накладывает дополнительный риск, связанный со скоростью принятий решений и большим количеством сделок. Неправильно работающий робот может довольно быстро опустошить счёт (даже не используя маржинальную торговлю). Мы рекомендуем внимательно относиться к этапам бэктестинга алгоритмов, проверять работу робота не только на исторических данных, но и тестировать выбранную стратегию на реальных данных (например, используя песочницу). Также следует разумно подходить к объёму средств, которые "доверяются" роботу при старте его работы, когда алгоритм ещё не проверен "в бою".
-
Различные ошибки в работе систем. Как и любая информационная система, вся инфраструктура TINKOFF INVEST API и инфраструктура пользователя подвержены рискам нештатных ситуаций, ошибок, перерывов в работе. Это же справедливо для самой биржи, там тоже порой возникают различные сбои. Поэтому рекомендуется предусмотреть в работе вашего алгоритма максимальное количество таких ситуаций и корректное реагирование на них. Это могут быть уведомления, которые робот присылает вам в случае возникновения ошибок, механизм аварийного прекращения торговли или перерыва в ней. Описание возможных ошибок TINKOFF INVEST API и рекомендации по их устранению представлены на странице.
Стратегии алгоритмической торговли
Различают следующие виды стратегий:
-
TWAP (с англ. Time Weighted Average Price — «взвешенная по времени средняя цена») — такой алгоритм открывает заявки через равные промежутки времени по ценам с лучшим спросом или предложением;
-
VWAP (с англ. Volume Weighted Average Price – «взвешенная по объёму средняя цена») — данный алгоритм нужен для равномерного открытия позиции по равным частям определенного объёма в течение конкретного времени, а также по ценам не выше, чем средневзвешенное значение с момента запуска;
-
Execution Strategy — алгоритм предназначен для покупки актива по средневзвешенной цене в большом объёме, как правило, используется крупными игроками (хедж-фондами и брокерами);
-
Спекулятивная стратегия — стандартная модель для частных трейдеров, которая стремится к достижению максимально выгодной цены для входа в сделку с целью получения последующей прибыли;
-
Data Mining — это поиск новых закономерностей для новых алгоритмов. Более 75% дата-майнинга приходится на сбор данных до запуска тестирования. Итог поиска зависит только от профессионального и глубокого подхода. Сам же поиск осуществляют различные алгоритмы по ручным настройкам. Например, найти паттерн, после которого в течение трех свечей рынок рос 2000 раз, а падал всего 200 раз. После этого найденные паттерны встраиваются в алгоритмы торговых роботов и успешно (либо не очень) торгуются.