Алгоритмы давно стали главными действующими лицами на мировых биржах. По оценкам аналитиков, на долю количественных и высокочастотных стратегий приходится до 60–75% объёма торгов на американских площадках. Но как именно машины принимают решения? Один из самых популярных подходов — торговля по паттернам, когда алгоритм ищет в ценовых графиках повторяющиеся фигуры и использует их для прогнозирования. Недавно на портале Habr появился подробный разбор этого метода с точки зрения разработчика. Источник
В этой статье мы разберём ключевые идеи из свежего материала, а также добавим контекст из классической и современной литературы по техническому анализу и машинному обучению.
Что такое торговые паттерны и почему они работают
Торговые паттерны — это повторяющиеся конфигурации на графике цены, которые, по мнению трейдеров, сигнализируют о продолжении или развороте тренда. Классические примеры: «голова и плечи», «двойное дно», «треугольник». Считается, что эти фигуры отражают психологию толпы: например, «Голова и плечи» формируется, когда покупатели сначала толкают цену вверх, потом не могут преодолеть максимум, а затем продавцы берут верх.
Алгоритмы смотрят на паттерны иначе. Для них это не визуальные фигуры, а набор математических признаков — соотношение длин свечей, расстояния между экстремумами, объёмные характеристики. При этом исследования показывают, что многие классические паттерны действительно дают небольшое статистическое преимущество, но оно слабее, чем ожидают трейдеры, и сильно зависит от временнóго периода и рынка. Этот парадокс — главная тема статьи на Хабре, которую мы разбираем.
Как алгоритмы распознают паттерны
Современные алгоритмы используют несколько подходов к поиску паттернов. Самый простой — жёсткие правила: если цена дважды отскочила от одного уровня и затем пересекла его, это «двойное дно». Это легко закодировать, но такие правила работают лишь для примитивных фигур и ломаются на зашумлённых данных.
Более продвинутый способ — машинное обучение с учителем. Алгоритм обучают на размеченной выборке, где эксперты вручную отметили паттерны на графиках. Например, можно взять 10 000 свечных графиков и попросить трейдера выделить, где именно находится «двойное дно». Затем модель (свёрточная нейронная сеть, градиентный бустинг) учится воспроизводить эту логику на новых данных. Именно этот метод описан в статье на Habr.
Наконец, существуют методы без учителя — кластеризация или поиск аномалий, когда алгоритм сам находит повторяющиеся структуры, не имея заранее заданных определений. Это интересно, но интерпретировать результаты сложно, и есть риск переобучения.
Кейс из статьи на Хабре: постановка задачи
Авторы статьи захотели выяснить, насколько классические паттерны, которые трейдеры видят глазами, действительно значимы для прогнозирования цен. Вопрос звучит так: если убрать субъективный фактор и дать алгоритму чисто математически определить, где на графике «голова и плечи», будет ли такая фигура давать статистически значимое преимущество?
Проблема, по словам разработчиков, в том, что трейдеры часто находят паттерны задним числом. На историческом графике всегда можно «увидеть» любой паттерн, но в реальном времени, когда появляется лишь часть фигуры, решение менее очевидно. Алгоритм не должен страдать от этого когнитивного искажения. Команда поставила эксперимент: обучить нейронную сеть распознавать паттерны на размеченных данных, а затем протестировать её на абсолютно новых исторических периодах, чтобы оценить, насколько модель способна предсказывать движение цены после появления фигуры.
Кейс: решение и результаты
Для обучения использовались данные свечных графиков с различными таймфреймами. Разметку делали профессиональные трейдеры, но, как выяснилось, между ними были разногласия — один эксперт видел «двойное дно», другой — просто консолидацию. Чтобы учесть это, авторы применили голосование по нескольким разметкам и рассматривали только те паттерны, которые были выделены большинством.
Затем построили свёрточную нейронную сеть, которая принимает на вход изображение графика (или массив OHLC-данных) и выдаёт вероятность наличия конкретного паттерна. После обучения модель протестировали на данных за последующие годы, учитывая транзакционные издержки и проскальзывание.
Результаты оказались неоднозначными. Некоторые паттерны, в частности «симметричный треугольник», показали небольшую прогностическую силу в сторону продолжения тренда. Другие, например «голова и плечи», практически не отличались от случайного шума. Авторы пришли к выводу, что паттерны работают, но их доходность часто не покрывает комиссии и проскальзывание, особенно на высоких таймфреймах. Более того, нейросеть иногда находила ложные паттерны, которых не было бы в классическом анализе, что приводило к убыточным сделкам.
Типичные ошибки алгоритмической торговли по паттернам
Описанный кейс демонстрирует несколько распространённых проблем, с которыми сталкиваются разработчики торговых алгоритмов. Вот главные из них.
| Ошибка | Описание | Как её избежать |
|---|---|---|
| Переобучение | Модель запоминает исторические данные, а не находит закономерности | Использовать out-of-sample тестирование и кросс-валидацию |
| Игнорирование издержек | Прибыль в теории оказывается убыточной после комиссий и проскальзывания | Включать транзакционные издержки в бэктест |
| Субъективная разметка | Эксперты могут по-разному интерпретировать один и тот же график | Привлекать нескольких специалистов и использовать консенсус |
| Нестабильность рынка | Паттерны, работавшие вчера, перестают работать в новых рыночных условиях | Регулярно пересматривать модель и адаптировать её |
Эти ошибки характерны не только для патерн-трейдинга, но и для любых алгоритмов, работающих с финансовыми рядами.
Практическая реализация: что нужно, чтобы начать
Для автоматической торговли по паттернам недостаточно построить модель — нужно ещё подключиться к брокеру или бирже через API, чтобы получать данные в реальном времени и отправлять заявки. На практике это часто делается через сервисы-агрегаторы, которые упрощают взаимодействие с торговыми площадками. Например, если вы используете российского брокера, удобно работать с Тинькофф Инвестиции. ASI Biont поддерживает подключение к Тинькофф Инвестиции через API — подробнее на asibiont.com/courses. Впрочем, выбор площадки зависит от ваших задач и региона.
Также стоит обратить внимание на библиотеки Python — pandas, NumPy, scikit-learn, TensorFlow. Они позволяют быстро прототипировать модели и проводить бэктесты. Однако не забывайте, что даже самая красивая модель без строгого риск-менеджмента может разорить счёт.
Выводы и прогнозы
Статья на Habr — это честный взгляд на ограничения паттерн-трейдинга. Главный вывод: паттерны существуют, но их «магическая сила» сильно преувеличена. Алгоритмы действительно могут находить статистические аномалии, однако они нестабильны и чаще всего исчезают после учёта издержек. Для успешной торговли по паттернам необходим комплексный подход: качественные данные, грамотная разметка, учёт рисков и регулярное обновление моделей.
В будущем, вероятно, алгоритмы станут ещё лучше распознавать не отдельные фигуры, а скрытые состояния рынка (например, через скрытые марковские модели). Но пока ни один метод не даёт гарантированного заработка. Поэтому использовать паттерны стоит как один из элементов системы, а не как единственный сигнал. Как справедливо отмечают авторы, дисциплина и контроль рисков важнее, чем поиск идеального паттерна.
Комментарии