Перейти к содержанию

Алгоритмическая торговля

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

Этапы

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

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

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

    Гипотеза необязательно должна быть «человекочитаемой» — это вполне может быть результат обучения алгоритма, основанного на интеллектуальных технологиях: нейросети, машинное обучение и так далее.

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

    Если результаты неудовлетворительные, нужно вернуться назад и доработать гипотезу или выдвинуть новую.

  4. Проверка гипотезы в реальном времени. Не всегда историческая доходность гарантирует доходность в будущем. Поэтому кроме проверки на исторических данных нужно провести тестирование алгоритма на реальных данных.

    Для этой задачи можно воспользоваться песочницей Public Invest API. Несмотря на то, что песочница имеет ряд ограничений — например, отсутствует влияние на рынок самого алгоритма, — для предварительной проверки гипотезы её может быть достаточно.

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

Классификация

Виды алгоритмической торговли:

  • По степени автономности алгоритмов.

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

    • Автоматические – тип торгового робота, который самостоятельно торгует на бирже — торговые поручения выставляются и отменяются автоматически без участия человека.

  • По частоте торгов.

    • Высокочастотная торговля (high-frequency trading, HFT) – основная форма алгоритмической торговли на финансовых рынках, в которой современное оборудование и алгоритмы используются для быстрой торговли ценными бумагами.

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

      • Интрадей-торговля – торговля внутри одного торгового дня. При такой стратегии сделки с инструментами производятся строго в рамках одного торгового дня и никогда не переносятся на следующий. Отличие от HFT в первую очередь заключается во времени владения активом — оно может достигать минут и часов.

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

  • По цели реализации алгоритма.

    • Получение непосредственно прибыли – цель таких алгоритмов генерировать прибыль на спекуляции активами.

    • Уменьшение риска владения портфелем – этот тип алгоритмов предназначен для автоматической диверсификации и ребалансировки портфеля владельца. Основная цель самого алгоритма — не генерация прибыли, а максимально быстрое реагирование на изменение баланса портфеля и приведение его к заранее заданным параметрам. Например, поддержание доли акций (по цене) в границах 30-40% от стоимости портфеля.

    • Оптимизация крупных сделок – этот тип алгоритмов предназначен для совершения очень крупных по объёму сделок. Особенности работы торговых площадок подразумевают сильное влияние на стоимость актива крупными торговыми поручениями. Например, если появляется заявка на покупку определённых акций на сумму $1млн, это неминуемо сильно повысит цены торгов.

      Чтобы избежать такого влияния, крупные участники рынка используют алгоритмы, которые могут в течение длительного времени маленькими партиями покупать или продавать инструменты по заданным параметрам цены. Такое «дробление» позволяет минимизировать влияние трейдера на рынок и получить требуемые объёмы сделок по приемлемым ценам.

  • По количеству используемых пулов ликвидности.

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

    • Монопульные – алгоритмы, которые используют в своей работе только одну торговую площадку.

  • По типам алгоритмов принятие решений и/или генерации сигналов.

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

    • Машинное обучение и прочие элементы AI – использование возможностей нейросетей и прочих интеллектуальных технологий для поиска корреляций и прогнозирования динамики цены того или иного инструмента.

    • Индикаторная алгоритмическая торговля – тип алгоритмов, которые используют для прогнозирования высчитанные по строгому алгоритму индикаторы с заранее известными параметрами.

  • По используемым инструментам.

    • Фьючерсная и индексная торговля.
    • Опционная торговля, включая опционный арбитраж.

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

Риски

При торговле на бирже нужно учитывать:

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

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

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

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

  4. Различные ошибки в работе систем. Как и любая информационная система, вся инфраструктура Tinkoff Invest API и инфраструктура пользователя подвержены рискам нештатных ситуаций, ошибок, перерывов в работе.

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

    Описание возможных ошибок Tinkoff Invest API и рекомендации по их устранению

Стратегии

Различают следующие виды стратегий:

  • TWAP (Time Weighted Average Price — «взвешенная по времени средняя цена») — алгоритм открывает заявки через равные промежутки времени по ценам с лучшим спросом или предложением.

  • VWAP (Volume Weighted Average Price – «взвешенная по объёму средняя цена») — алгоритм для равномерного открытия позиции по равным частям определенного объёма в течение конкретного времени, а также по ценам не выше, чем средневзвешенное значение с момента запуска.

  • Execution Strategy — алгоритм для покупки актива по средневзвешенной цене в большом объёме. Как правило, используется крупными игроками — хедж-фондами и брокерами.

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

  • Data Mining — это поиск новых закономерностей для новых алгоритмов. Более 75% дата-майнинга приходится на сбор данных до запуска тестирования.

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