Бэктест без иллюзий: почему прибыль на истории не гарантирует результат в реальной торговле
Бэктест — один из самых полезных инструментов в системном трейдинге. Он позволяет проверить торговую идею на исторических данных, увидеть количество сделок, процент прибыльных входов, максимальную просадку и итоговый финансовый результат.
Но у бэктеста есть опасная особенность: он может выглядеть значительно лучше, чем стратегия будет работать в реальности.
Красивый график капитала, высокий winrate и большая историческая прибыль ещё не означают, что система действительно имеет устойчивое преимущество.
История показывает, что могло бы произойти при определённых предположениях.
Реальная торговля показывает, что происходит с настоящими сигналами, комиссиями, задержками, ошибками и меняющимся рынком.
Почему хороший результат на истории может быть обманчивым
Когда трейдер тестирует десятки фильтров, параметров и комбинаций, он постепенно подстраивает стратегию под уже известные данные.
Например, можно подобрать:
• идеальное значение индикатора;
• наиболее выгодный таймфрейм;
• точный размер стопа;
• оптимальный период скользящей средней;
• лучшие часы для входа;
• подходящий набор монет;
• фильтр, исключающий исторически плохие сделки.
После большого количества попыток почти всегда можно получить красивый результат.
Проблема заключается в том, что стратегия может изучить не закономерность рынка, а случайные особенности конкретного исторического периода.
Так появляется переобучение.
Что такое переобучение стратегии
Переобученная стратегия идеально объясняет прошлое, но плохо адаптируется к будущему.
Она может показывать высокий результат на данных, на которых создавалась, и резко ухудшаться после запуска.
Обычно у переобученной системы слишком много точных условий:
• индикатор должен находиться выше определённого значения;
• вход разрешён только в конкретные часы;
• волатильность должна попадать в узкий диапазон;
• цена должна находиться на строго заданном расстоянии от средней;
• несколько дополнительных фильтров должны совпасть одновременно.
Каждый отдельный фильтр может выглядеть логично. Но вместе они способны создать систему, которая работает только на ограниченном участке истории.
Чем сложнее стратегия, тем важнее проверять, действительно ли каждый фильтр улучшает устойчивость, а не просто удаляет прошлые убыточные сделки.
Комиссии могут уничтожить преимущество
В тестах часто недооценивают комиссии.
Особенно сильно это влияет на стратегии с большим количеством сделок и небольшой средней прибылью на одну позицию.
Представим, что стратегия в среднем зарабатывает 0,35% на сделку. Если вход, выход и возможное проскальзывание суммарно отнимают 0,15–0,25%, большая часть преимущества исчезает.
Кроме биржевой комиссии необходимо учитывать:
• комиссию за открытие позиции;
• комиссию за закрытие позиции;
• funding на фьючерсах;
• дополнительную комиссию при частичных выходах;
• ухудшение цены исполнения;
• разницу между ожидаемой и фактической ценой входа.
Стратегия должна оставаться прибыльной после всех реальных расходов, а не только до них.
Проскальзывание: цена в тесте и цена в реальности
На историческом графике вход часто выглядит идеальным.
Сигнал появился по цене 100, и тест считает, что сделка открылась по цене 100.
В реальности между появлением сигнала и исполнением ордера проходит время. За этот период цена может измениться.
Это и есть проскальзывание.
Оно становится особенно опасным:
• во время резких движений;
• на малоликвидных активах;
• при крупном размере позиции;
• во время важных новостей;
• при использовании рыночных ордеров;
• при одновременном входе большого количества участников.
Даже небольшое систематическое ухудшение входа может значительно изменить итоговый profit factor и максимальную просадку.
Проблема качества исторических данных
Любой тест зависит от данных, на которых он построен.
Если данные неполные или неточные, результат теста тоже будет неточным.
Возможные проблемы:
• пропущенные свечи;
• неправильные значения high или low;
• несоответствие часового пояса;
• отсутствие реальных bid и ask цен;
• использование закрытия свечи вместо доступной цены исполнения;
• различия между данными TradingView и конкретной биржи;
• некорректная обработка одновременного касания TP и SL.
Особенно важно определить, что считать первым, если внутри одной свечи цена коснулась и цели, и стопа.
Без более мелкого таймфрейма невозможно точно восстановить последовательность движения.
Консервативный подход в такой ситуации обычно считает, что первым сработал стоп. Это уменьшает риск завышения результатов.
Почему winrate недостаточно
Высокий процент прибыльных сделок выглядит убедительно, но сам по себе почти ничего не гарантирует.
Стратегия может выигрывать в 80% случаев, но терять слишком много в оставшихся 20%.
Поэтому необходимо смотреть не только на winrate, но и на:
• среднюю прибыльную сделку;
• среднюю убыточную сделку;
• profit factor;
• максимальную просадку;
• максимальную серию стопов;
• результат после комиссий;
• количество сделок;
• продолжительность тестируемого периода;
• распределение прибыли между отдельными периодами.
Особенно опасна ситуация, когда большая часть прибыли была получена за несколько редких сделок.
Такая стратегия может выглядеть сильной, хотя её результат зависит от небольшого количества исторических событий.
Смена режима рынка
Рынок не остаётся одинаковым.
Периоды спокойного роста сменяются высокой волатильностью. Трендовый рынок переходит в боковик. Ликвидность увеличивается и уменьшается. Поведение участников меняется.
Стратегия, созданная на бычьем рынке, может плохо работать в медвежьем.
Система для сильного тренда может постоянно получать ложные сигналы в боковом движении.
Поэтому результаты необходимо разделять по режимам:
• бычий рынок;
• медвежий рынок;
• боковик;
• высокая волатильность;
• низкая волатильность;
• risk-on;
• risk-off.
Важно понимать не только общий результат стратегии, но и условия, в которых она зарабатывает или теряет.
In-sample и out-of-sample тестирование
Чтобы уменьшить риск переобучения, исторические данные нужно разделять.
Первая часть используется для разработки стратегии. Это in-sample период.
Вторая часть не должна участвовать в подборе параметров. На ней проводится независимая проверка — out-of-sample тест.
Если стратегия показывает хороший результат только на первом участке и резко ухудшается на втором, её преимущество может быть случайным.
Сильная система не обязана показывать одинаковую прибыль в каждом периоде. Но её логика и риск-показатели должны оставаться приемлемыми на данных, которых разработчик не использовал при настройке.
Зачем нужен forward-тест
Даже успешный out-of-sample тест не заменяет forward-тестирование.
Forward-тест проверяет стратегию на новых данных, которые появляются уже после завершения разработки.
Сигналы фиксируются в реальном времени. Их нельзя изменить задним числом или удалить после неудачного результата.
Forward-тест помогает проверить:
• действительно ли сигнал появляется вовремя;
• нет ли перерисовки;
• правильно ли передаются данные;
• совпадает ли логика Pine Script и backend;
• корректно ли рассчитываются TP и SL;
• нет ли дублирующихся сигналов;
• работают ли ограничения портфеля;
• соответствует ли реальный результат историческим ожиданиям.
Следующий этап — paper trading
После forward-теста стратегия должна пройти paper trading.
В этом режиме система работает по реальному рынку, но без риска для капитала.
Необходимо учитывать:
• реальные комиссии;
• реалистичное проскальзывание;
• размер позиции;
• ограничения ликвидности;
• одновременные сделки;
• общий лимит капитала;
• дневные, недельные и месячные лимиты потерь;
• kill switch.
Paper trading должен проверять не только стратегию, но и всю инфраструктуру исполнения.
Как понять, что стратегия готова к реальным деньгам
Стратегию нельзя считать готовой только потому, что она заработала на истории.
Более надёжная последовательность выглядит так:
- Формулировка торговой гипотезы.
- Бэктест с комиссиями и консервативным исполнением.
- Проверка на независимом историческом периоде.
- Тестирование на разных режимах рынка.
- Forward-тест новых сигналов.
- Paper trading.
- Проверка лимитов и kill switch.
- Запуск с небольшим капиталом.
- Постепенное увеличение размера позиции только после подтверждения стабильности.
Каждый следующий этап должен быть сложнее предыдущего.
Если результат резко ухудшается, необходимо искать причину, а не увеличивать риск в надежде, что стратегия восстановится.
Вывод
Бэктест необходим, но он является только первым этапом проверки.
Он не способен полностью учесть:
• переобучение;
• изменение режима рынка;
• реальные комиссии;
• проскальзывание;
• задержки;
• ошибки данных;
• проблемы исполнения;
• психологическое давление реальных потерь.
Сильная стратегия — это не та, которая показывает самый красивый график на истории.
Сильная стратегия проходит несколько независимых проверок, сохраняет преимущество после расходов и умеет ограничивать ущерб, когда рыночные условия меняются.
Настоящая цель тестирования заключается не в том, чтобы доказать, что система всегда права.
Цель — понять, где она работает, где перестаёт работать и сколько капитала можно ей доверить.
