Алготрейдинг: как устроены торговые алгоритмы и где они ломаются

Бесплатный курс по криптовалюте
Уровень 7: Продвинутые стратегииУрок 7.3 · 45 из 698 мин чтения

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

Коротко о главном
  • Алгоритм — это стратегия, переведённая в однозначные правила: когда входить, сколько покупать, когда выходить.
  • Хороший бэктест учитывает комиссии, проскальзывание и проверяется на данных, которые не использовались при настройке.
  • Между бэктестом и реальными деньгами нужен этап тестовой торговли и запуск с минимальным объёмом.
  • Ошибки в коде, сбои связи и утечка API-ключей опасны не меньше, чем рыночные риски.

Что такое торговый алгоритм

Правило «покупаю, когда цена кажется дешёвой» алгоритму не годится: компьютер не знает, что значит «кажется». Нужны правила без двусмысленности, например: если дневная свеча закрылась выше 50-дневной скользящей средней, а RSI ниже заданного уровня, купить на такую сумму, чтобы риск до стопа не превышал выбранной доли депозита.

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

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

Термин · Бэктест

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

Основные типы стратегий

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

Есть и другие классы. Арбитражные алгоритмы ищут разницу цен одного актива на разных площадках — подробно об этом в уроке про арбитраж криптовалют. Маркет-мейкинг зарабатывает на спреде между покупкой и продажей и требует очень быстрой инфраструктуры. Алгоритмы исполнения не гонятся за прибылью: их задача — купить крупный объём частями, не сдвинув цену.

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

Большинство сигналов в таких стратегиях строится на индикаторах вроде скользящих средних, RSI и MACD, а также на уровнях и объёме. Если вы ещё неуверенно читаете эти инструменты вручную, автоматизировать их рано: сначала нужно понимать, почему индикатор подаёт сигнал и в каких условиях он врёт.

Из чего состоит алгоритм

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

Для связи с биржами разработчики часто берут открытую библиотеку CCXT, которая даёт единый интерфейс к API десятков площадок. Цены в реальном времени удобнее получать по WebSocket, а не опрашивать биржу каждую секунду: у API есть лимиты на число запросов, и при их превышении биржа временно блокирует доступ.

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

  • Данные: свечи, стакан, сделки, фандинг. Их нужно проверять на пропуски и аномалии.
  • Сигнал: правила входа и выхода, построенные, например, на индикаторах или уровнях.
  • Риск-модуль: размер позиции, стоп-лосс, лимит на суммарный риск и на дневной убыток.
  • Исполнение: отправка ордеров, обработка частичного исполнения, отказов и ошибок API.
  • Мониторинг: журнал действий, уведомления и аварийный выключатель, который закрывает всё одной командой.

Важно · Ключ без права вывода

Алгоритму нужен доступ к торговле, но ни в коем случае не к выводу средств. Привяжите API-ключ к IP-адресу сервера и храните секрет вне кода. Подробнее — в уроке про безопасность на криптобирже.

Ловушки бэктеста

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

Самая коварная — переобучение. Переберите сотни комбинаций параметров, и какая-то из них случайно покажет отличный результат на истории. Признак проблемы: стоит чуть поменять параметр, например период средней с 20 на 22, и результат резко ухудшается. Устойчивая стратегия работает приемлемо в широком диапазоне настроек.

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

Ловушка Как проявляется Как защититься
Заглядывание в будущее Сигнал использует данные, которых в тот момент ещё не было, например цену закрытия незакрытой свечи Принимать решение только по закрытым свечам и проверять сдвиг данных
Ошибка выжившего В тест попадают только монеты, которые торгуются сегодня, а исчезнувшие выпадают Использовать исторические списки активов с делистингами
Переобучение Параметры идеально подогнаны под прошлое и не работают дальше Отложенная выборка и проверка на других периодах и монетах
Нулевые издержки Тест без комиссий, спреда, проскальзывания и фандинга Закладывать издержки с запасом, особенно для частых сделок

От идеи до запуска: порядок действий

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

Сверяйте результаты живой торговли с бэктестом за тот же период. Заметное расхождение говорит о том, что модель чего-то не учитывает: задержки, проскальзывание или поведение ордеров в реальном стакане.

  1. Сформулируйте идею одной фразой и объясните, почему она должна работать, то есть чью ошибку или потребность она использует.
  2. Переведите идею в однозначные правила входа, выхода и размера позиции.
  3. Проведите бэктест с реалистичными издержками на одной части истории.
  4. Проверьте стратегию на отложенном периоде, который не использовался при настройке.
  5. Запустите тестовую торговлю без реальных денег на несколько недель.
  6. Перейдите на реальный счёт с минимальным объёмом и жёстким дневным лимитом убытка.
  7. Увеличивайте объём, только если живые результаты похожи на тестовые.

Пример · Как издержки меняют картину

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

Реалистичные ожидания

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

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

Полезно заранее записать условия, при которых вы остановите стратегию: например, просадка глубже той, что была на истории, или серия убыточных сделок длиннее обычной. Записанное правило убережёт от соблазна «подождать ещё немного», когда алгоритм уже явно не работает.

Задание к уроку

Возьмите одну свою торговую идею и запишите её как правила для программы: точное условие входа, условие выхода, где стоп и как считается объём — без слов «кажется» и «примерно». Затем отмотайте дневной график BTC/USDT, например в приложении BuyCrypt, на несколько месяцев назад и пройдите по свечам вручную, глядя только на уже закрытые свечи и отмечая каждую сделку, которую дали бы правила. Если хоть раз пришлось решать «по ощущению», правила ещё не готовы к автоматизации.

Учитесь и зарабатывайтеБесплатные турниры каждый день — путь к призам в USDT

Вход бесплатный, торговля на демо-счёте — свои деньги не нужны. В бесплатных турнирах выигрывают Tour Pass, а с ними заходят в турниры с призами в USDT. Лучшие идут дальше — к funded-счёту на $5 000.

Частые вопросы

Нужно ли уметь программировать для алготрейдинга?

Для собственных алгоритмов — да, чаще всего пишут на Python. Без программирования можно пользоваться готовыми ботами и конструкторами стратегий, но тогда вы ограничены их возможностями и особенно внимательно должны проверять настройки.

Почему стратегия прибыльна в бэктесте и убыточна в реальности?

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

Сколько денег нужно для запуска торгового алгоритма?

Для первого запуска на реальном счёте хватит минимального объёма, который разрешает биржа: на этом этапе цель — убедиться, что программа работает, а не заработать. Увеличивать сумму имеет смысл только тогда, когда живые результаты совпадут с тестовыми.

Обсуждение

Комментарии из BuyCrypt Live. Войдите через Google или Apple — аккаунт BuyCrypt создадим сразу, тот же, что в приложении.