Algotrading — это…
- Способ выполнения крупного ордера методом дробления его на мелкие части с помощью алгоритмов
- Подход в трейдинге, суть в использовании механических или автоматических торговых систем с целью получить прибыль.
Разные источники, между тем, путают понятия. Так что, будьте готовы к небольшим «заменам» в этом тексте. Однако давайте сосредоточимся на алгоритмической торговле — это, в конечном итоге, автоматизация или хотя бы частичная автоматизация всего процесса торговли.
Когда мы говорим об обычной торговле, все понятно: трейдер сидит перед компьютером и пытается предугадать движение активов, опираясь на кучу разных индикаторов. Давайте представим, что наш действительно силен в этом.
Но, иногда бывают промахи. Трейдер, встал не с той ноги, настроение так себе, но решает все равно приступить к торгам. Результат? Постоянные убытки, и чтобы как-то их компенсировать, он решает увеличить риск. В итоге часть своего депозита сливает в унитаз.

Двоякая ситуация: торговая система рабочая и зарабатывать выходит, но человеческий фактор может легко обнулить месяцы работы. На помощь приходит всё тот же компьютер: теперь он торгует, а наш будущий миллионер отдыхает.
Стратегии
С «рабочим» разобрались. Рассмотрим варианты стратегий, а именно на чём наш новый MacBook будет зарабатывать:
Арбитраж
Хоть это и не совсем классический трейдинг, арбитраж стоит упомянуть.
Допустим, на одной бирже цена на ETH составляет 1550 долларов, а на другой — 1600 долларов. Покупаем на первой бирже и продаем на второй, и вот у вас 50$ прибыли после вычета комиссий. Сделать это вручную и следить за десятками торговых пар практически невозможно. А наш MacBook может почти не напрягаясь.
Но вот загвоздка, биржи уже этим занимаются. На каждой более или менее крупной бирже есть свои арбитражники. Даже если нет, то их место занимают люди с огромными деньгами и доступом к самым топовым серверам.
Впрочем, будет ошибкой сказать, что арбитраж мёртв. Сейчас существуют связки для P2P арбитража с использованием разных валют (в т.ч. фиатных), и регулярно появляются возможности арбитража между централизованными биржами (CEX) и децентрализованными аналогами (DEX).
Из примеров это ситуации с токенами LUNA/UST и GALA. В обоих случаях заработать можно было руками.
Marketmaking
Следует упомянуть о деятельности главных «врагов» всех трейдеров (по методичкам некоторых авторов). Маркетмейкеры дают возможность купить/продать здесь и сейчас по наилучшей цене.
За такие действия получают оплату от биржи. Это в идеальном мире, разумеется на деле многие компании не брезгуют манипулированием цен на токены с целью заработка.
Все эти действия сопровождаются весьма сложными алгоритмами, которые обеспечивают своевременную покупку/продажу монет с целым перечнем гибких условий и проверок.
Безусловно данная стратегия для нас неактуальна ввиду огромных требований к капиталу и технологиям, идём дальше.
Front Running
Данное понятие включает в себя два смысла:
- Торговля от крупных лимитных ордеров на покупку/продажу Суть стратегии в том, что крупные участники рынка размещают значительные лимитные ордера (которые выполняются только по определенной цене), и нашей задачей является совершение сделки практически одновременно с этими крупными игроками. В случае, если на рынке появляется большой лимитный ордер на покупку, цена может резко вырасти, как бы отскочить от этого ордера, а при ордере на продажу — упасть. Таким образом, в сценарии №1, мы можем открывать «длинные» позиции (Long) на 0.1-0.2% выше цены лимитного ордера и получать прибыль от роста, а в сценарии №2 — «короткие» позиции (Short) и получать прибыль от снижения цены. Что здесь делают алгоритмы? Их роль заключается в том, что ваш компьютер, в отличие от вас, способен одновременно отслеживать книгу ордеров для десятков активов и входить в позицию в нужное время, непосредственно перед появлением крупного ордера.
- Недобросовестная практика крупных игроков Допустим, брокер видит, что большое количество клиентов желают приобрести акции Apple по цене 150 долларов. Брокер покупает их по цене 151 доллара, а затем, когда цена растет (так как покупатели нарушили баланс), продает их с прибылью.
Однако давайте более подробно рассмотрим наиболее популярную — автоматизацию систем, основанных на техническом анализе и статистических закономерностях.
Алгоритмизация торговой системы
Возьмём простой индикатор — RSI (англ. Relative Strength Index). В книгах пишут, что значения RSI выше 70 указывают на перекупленность (overbought). А значения RSI ниже 30 интерпретируются как перепроданность (oversold).
Добавим сюда щепотку risk-management:
- на 1 сделку не более 10% капитала
- открываем только Long-позиции, чтобы не идти против общего тренда на рост
- торгуем спот, без stoploss
Далее, мы можем реализовать эту стратегию на практике на любом языке программирования или с использованием специальных конструкторов и создать торгового бота. Этот бот будет автоматически открывать и закрывать сделки в соответствии с четкими правилами, не поддаваясь эмоциям и прочим человеческим недостаткам.
Усложнять стратегию можно до бесконечности — добавить средние скользящие, рассчитывать уровни поддержки/сопротивление из последних N баров/свечей.
Метод работает на простой статистике. Мы собираем данные (чем больше, тем лучше) и проверяем их на наличие определённых закономерностей: отработка RSI, MACD, ADX, ATR…
Торговому боту «думать» не нужно. За него это сделали Вы, когда создавали стратегию и отбирали закономерности. Результативность бота напрямую зависит от качества Вашего анализа (это актуально и для всех остальных методов).
Использование Machine Learning
Возможность придать нашему торговому боту некоторую степень «разумности» стала доступной благодаря современным моделям на основе машинного обучения (Machine Learning, ML).
Это существенный шаг вперёд в сравнении с предыдущим методом. Мы все равно оперируем статистикой, но сейчас не требуется детальное описание работы алгоритма с позиции логики действий.
Пример
Путём эмпирического анализа (самостоятельного наблюдения) Вы нашли некую закономерность на 1m (минутный) графике BTC-USDT. В данной закономерности всегда есть предиктор (обстоятельство/условие) и результат (повышение/снижение цены). Торговать стратегию можно и руками, но очень сложно.
ML-модель может выявить конкретную связь между предиктором и результатом, например, с использованием методов линейной регрессии. И, что более важно, она способна предсказать результат в будущем на основе текущих предикторов. В отличие от предыдущего метода, бот становится менее зависимым от абсолютных чисел.
Ранее нам приходилось задавать определенный порог прибыли или убытка, по которому закрывать сделку, но учет всех рыночных условий был сложной задачей. ML-модель, основываясь на предикторах, может оценить силу ожидаемого движения и закрыть сделку максимально эффективным образом.
Есть большое множество подходов в ML и делят их по разным критериям, один из таких — наличие учителя:
- Supervised (есть)
- Unsupervised (отсутствует)
- Reinforcement learning (модель учится самостоятельно, но мы подкрепляем результат)

Reinforcement Learning представляет собой подход, при котором агент (например, торговый бот) обучается взаимодействуя с окружающей средой. Он принимает решения на основе опыта и получает обратную связь в виде награды или штрафа за свои действия. Цель агента — выбирать действия, которые максимизируют награду в долгосрочной перспективе.
Supervised на сегодня является наиболее развитой и применимой разновидностью машинного обучения. Чтобы реализовать ее на практике, вам необходима задача, которая может быть сформулирована в виде проблемы классификационного или регрессионного анализа, а также достаточный набор маркированных данных.
Большую популярность в прогнозировании цен на акции, валюты и другие инструменты обрели supervised модели, которые решают задачу регрессионного анализа.
Разбирать эту тему детальнее не станем иначе статья превратиться в академический учебник по Data Science. Все заинтересовавшиеся в теме детальнее — пишите в чат, Куратор предоставит ссылки на более продвинутые материалы.
Написание таких моделей это целый мир, который сейчас развивается невероятно быстрыми темпами. Хотите зайти в algorithmic trading и оставаться конкурентноспособным — ML вам необходим.
Практика
Чтобы материал не был выжимкой «википедии» (шутка), предлагаю написать ту самую стратегию RSI на практике, но несколько в другом виде и без использования программирования.
Для реализации этой цели нам нужны:
- исторические данные
- стратегия
- инструментарий для тестирования стратегии
Шаг 1: Получение исторических данных
Можно воспользоваться Yahoo Finance и скачать исторические данные в формате .csv. Например, данные о ценах на BTC с 2014 года.
Шаг 2: Стратегия
Наша стратегия будет следующей:
- Если RSI меньше 70 (нет перекупленности) и цена закрытия дневной свечи меньше значения SMA с периодом 20 (это говорит, что цена не находится на пиках), тогда открываем позицию на покупку.
- Если ваш доход превысит 10%, то закрываем позицию на продажу.
Шаг 3: Backtesting
Инструментов backtesting-а достаточно много. Для простоты и минимальных заморочек воспользуемся популярным TSLab. Его преимущество в простоте создания собственных стратегий и самое главное — софт бесплатный.

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


Дополнительно есть окно всех сделок, где можно найти ту самую 1 убыточную сделку.

Хорошо видно, что я не настраивал такие важные вещи как комиссия, не дробил депозит (каждая сделка ровно на 1 BTC). Для вводной статьи это можно опустить, в реальной разработке и тестировании — даже их добавления будет мало. Необходимо дополнительное тестирование на реальных данных вживую.























