Перейти к содержимому

Что такое бэктестинг? Как честно тестировать криптостратегию на исторических данных

Бэктестинг: проверка торговых правил на прошлых ценах, комиссии и проскальзывание, которые часто не учитывают, как читать результаты и каких ошибок избегать.

Краткий ответ

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

Что означает бэктестирование

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

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

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

Как работает бэктест

  1. Выберите рынок и период, например BTC/USDT на Binance за последние 2 года.
  2. Точно сформулируйте правила. "Покупать, когда BTC падает на 5% за 24 часа, продавать на 4% выше цены покупки, ставить стоп на 6% ниже, не более 2 открытых покупок."
  3. Воспроизведите движение цен. На каждом шаге тест проверяет, срабатывает ли правило, и моделирует исполнение ордера по этой цене.
  4. Учтите расходы. За каждый смоделированный ордер учитывается комиссия биржи и допуск на проскальзывание - разницу между ожидаемой и фактической ценой исполнения.
  5. Подведите итоги. Тест показывает результат за период, количество сделок, долю прибыльных сделок и самое сильное падение от локального максимума за это время.

Как правильно оценивать результаты бэктеста

Эти четыре показателя важнее итоговой цифры:

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

Ошибки, из-за которых бэктесты вводят в заблуждение

  • Не учитывать комиссии и проскальзывание. Самая распространённая ошибка, которая приукрашивает результат. Правило, которое торгует каждый день с комиссией 0.1% за ордер, платит около 0.2% за полный цикл сделки, и за год это может полностью свести на нет небольшое преимущество.
  • Тестировать только один период. Проверьте те же правила на разных отрезках, например на годе роста, годе падения и периоде без выраженного тренда. Если правило работает только на одном отрезке, это ставка на возвращение такого рынка.
  • Переоптимизация. Если вы меняете числа, пока результат не станет идеальным (4.7% вместо 5%, 3.9% вместо 4%), вероятно, вы подогнали правила под прошлое, а не нашли закономерность. Предпочитайте простые округлённые правила, работающие в диапазоне значений.
  • Смещение заглядывания в будущее. Тест, использующий информацию, которой правило не могло располагать в тот момент, например цену закрытия дня в полдень, всегда покажет результат лучше реального.
  • Игнорирование максимальной просадки. Стратегия, которая в итоге показывает более высокий результат, но по пути падает на 40%, - это стратегия, от которой многие отказываются на самом дне.

Практический пример

Возьмём стратегию BTC Dip Buyer и протестируем её на исторических данных за 90 days на Binance, с комиссией 0.1% за каждую покупку и продажу и проскальзыванием 0.05% на ордер:

  • По этим правилам совершается 9 сделок: 6 прибыльных, а в 3 срабатывает стоп-лосс.
  • За эти 90 дней баланс счёта после вычета комиссий становится на 6.8% выше начального.
  • Если просто держать BTC те же 90 дней, баланс окажется на 3.1% выше начального.
  • Максимальное падение от пикового значения за этот период составляет 4.9%, тогда как при удержании оно составляет 10.7%.

Оценим результат объективно: за этот один 90-дневный период правила показали результат лучше, чем простое удержание актива, а максимальное падение было меньше. Но 9 сделок за один период - слишком мало для убедительных выводов. Следующий шаг - более длительный бэктест, а затем бумажная торговля. Это иллюстративный пример, а не реальный результат.

Бэктестинг на TradeCorgi

Когда вы описываете стратегию, TradeCorgi автоматически проводит её бэктест после того, как вы подтвердите правила:

  • Комиссии учитываются всегда: применяются комиссии биржи для вашего уровня, а также учитываются проскальзывание и минимальный размер ордера на бирже.
  • Удержание монеты показано на том же графике, чтобы вы могли оценить, дают ли правила какой-либо дополнительный результат.
  • Максимальная просадка, сопоставимая с результатом.
  • История по планам: 90 дней на Sandbox, 2 года на Copilot, 4 года на Autopilot и полная история биржи на Pro.

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

Чек-лист для бэктестинга

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

Вопросы

Хороший бэктест доказывает, что стратегия работает?

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

За какой период стоит проводить бэктест криптовалютной стратегии?

Данных должно хватать на растущий, падающий и боковой рынки. Для криптовалют это обычно означает как минимум год, а в идеале - несколько лет. TradeCorgi предлагает 90 дней на Sandbox, 2 года на Copilot, 4 года на Autopilot и всю историю биржи на Pro.

Зачем учитывать комиссии и проскальзывание?

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

Что такое переобучение?

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

Могу ли я бесплатно провести бэктест?

Да. Бесплатный план Sandbox проводит бэктест на исторических данных за 90 дней с учётом комиссий и позволяет запустить одного бумажного агента.

С чем сравнивать результаты бэктеста?

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

Попробовать в качестве агента

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

Покупатель просадок BTC

BTC/USDT на Binance

Демо-торговля
Вход
Покупать, когда BTC падает на 5% за 24 часа
Объём
$50 на одну покупку, максимум 2 открытые покупки
Выход
Продажа при +4% к цене покупки
Стоп-лосс
Продажа при -6% от цены покупки
Дневной лимит убытка
$25, затем агент приостанавливается до завтра
v1, подтверждено Oct 27