Отчего идеальный бэктест не даёт прибыли на реале
Красивая кривая бэктеста — самый частый повод переоценить стратегию. Между идеальным прошлым и прибыльным будущим лежит несколько причин расхождения.
Красивая кривая бэктеста — самый частый повод переоценить стратегию. Между идеальным прошлым и прибыльным будущим лежит несколько причин расхождения. Разбираем, почему одно не равно другому.
Почему бэктест обманывает
Переоптимизация подгоняет параметры под случайности прошлого. Плохие данные искажают спред и тики. Идеализированное исполнение не учитывает проскальзывание, реквоты и расширение спреда на новостях. Выбор удачного периода и инструмента задним числом приукрашивает картину. В сумме бэктест систематически оптимистичнее реальности — и чем красивее кривая, тем сильнее стоит насторожиться.
Что меняется на реале
Появляются переменные, отсутствовавшие в идеальном тесте: плавающий спред, задержки, комиссии, реакция брокера, проскальзывание. Стратегия, жившая «на грани» в тесте, на реале уходит в минус. Вдобавок рынок нестационарен: закономерность прошлого может исчезнуть. И есть человеческий фактор — в бэктесте вы не переживаете просадку, а на реале можете закрыть сделку раньше времени или пропустить вход из-за страха.
Как уменьшить разрыв
Закладывайте реалистичные издержки в тест. Проверяйте на out-of-sample и walk-forward. Избегайте переоптимизации, предпочитая устойчивые параметры. Обязательно проводите форвард-тест на демо и запускайте на минимальном объёме, прежде чем масштабировать.
Как это выглядит на практике
Стратегия в тесте показывала гладкий рост. Вы включаете её на демо — и первые же недели идут иначе: пара входов с проскальзыванием, один пропущенный из-за расширения спреда на новости сигнал, пара дней бокового рынка, которого в удачном периоде почти не было. Числа условны, проверяйте на демо, но картина типична: реальность добавляет трение, которого в идеальном прошлом не было. Демо-этап нужен именно чтобы встретить это трение без потерь. Отдельно стоит сравнить, где именно расходятся тест и демо: если разрыв рождается на новостях и в волатильности, дело в исполнении и издержках; если стратегия ровно перестала работать — возможно, сменился режим рынка, и идею пора пересматривать, а не просто «докручивать» под неё параметры.
Частые ошибки
- Переносить стратегию с бэктеста сразу на реальный счёт, минуя демо
- Тестировать с нулевыми издержками
- Верить одному удачному периоду
- Масштабировать объём после первых удачных сделок, не набрав статистики
Итог
Красивый бэктест — это гипотеза, а не результат: издержки, переоптимизация и смена режима отделяют его от реальной прибыли. Проверяйте на новых данных и форвардом. Инструменты честной проверки — в нашем каталоге.
Что именно теряется между тестом и счётом
Первая потеря — спред в моменты активности. Тестер берёт усреднённое значение, а сделки чаще всего совершаются как раз тогда, когда спред расширен: на пробоях, на выходе данных, на открытии сессий. Разница в один пункт при цели двадцать съедает пять процентов результата на каждой сделке, и на серии это заметно.
Вторая — проскальзывание. В тесте заявка исполняется по запрошенной цене, в реальности по доступной. Для стопов это работает против вас систематически: они срабатывают при быстром движении, когда цена проходит уровень с разрывом. Смоделировать это точно нельзя, оценить можно только по своей истории сделок.
Третья — свопы на удержании. Тестер учитывает их, если они заданы, а по умолчанию часто нет. На стратегии с позициями в несколько суток своп способен превысить спред и перевести результат в минус, причём тройное начисление раз в неделю обычно вообще не попадает в модель.
Четвёртая — качество исторических данных. Пропуски, ошибочные тики, отсутствие реального расширения спреда — всё это делает тест оптимистичнее реальности. Особенно заметно на минутных таймфреймах, где одна ошибка в данных создаёт сделку, которой не существовало.
Пятая — исполнение на стороне брокера: реквоты, отказы, задержка подтверждения. В тесте их нет вообще, и стратегия, зависящая от быстрого входа, теряет преимущество целиком. Проверяется это только на живом счёте, пусть и минимальным объёмом.
Практический порядок, который снимает большинство сюрпризов: задать издержки по своей спецификации, проверить вне выборки, месяц форвард-теста на демо, затем реальный счёт минимальным объёмом с сверкой числа сделок и просадки против теста. Расхождение больше чем в полтора раза означает, что модель была слишком оптимистичной.
Что задать в тесте, чтобы он был честнее
- Спред по спецификации своего счёта, а не значение по умолчанию.
- Комиссия за оборот и своп, включая тройное начисление.
- Режим моделирования «все тики» для внутрибарной логики.
- Проскальзывание, оценённое по своей истории сделок.
- Проверку вне выборки после оптимизации.
- Форвард-тест на демо у своего брокера как обязательный этап.
И про ожидание, с которым стоит подходить к любому тесту: реальный результат будет хуже. Не потому, что тест неправильный, а потому что модель всегда оптимистичнее реальности. Планировать нужно исходя из ухудшения, а не надеяться на повторение показанного.
И практический вывод для планирования: закладывайте в ожидания результат на треть хуже показанного тестом. Это не пессимизм, а поправка на издержки и исполнение, которые модель систематически недооценивает.
И про то, что делать с уже написанной стратегией, которая не подтвердилась на реальном счёте. Сначала проверить издержки и проскальзывание — в большинстве случаев причина там. Если они совпадают с тестом, а результат нет, значит параметры были подогнаны, и правильный шаг — упростить логику, а не искать новые фильтры.
Что проверить перед выводом стратегии на реальный счёт
Короткий список, который отсеивает большинство неработающих идей. Первое — тест на данных, которые не использовались при настройке. Второе — учёт реальных издержек своего брокера, а не значений по умолчанию. Третье — устойчивость к небольшому изменению параметров: если результат рушится при сдвиге на десять процентов, найдена особенность истории, а не закономерность.
Четвёртое — количество сделок: на выборке из тридцати результат случаен независимо от того, как выглядит кривая. Пятое — сравнение с простейшим правилом на тех же данных: если сложная система не превосходит элементарное, сложность не оплачивается. Шестое — период тестирования, включающий разные режимы рынка, а не только тот, под который система настроена. И последнее: запуск с уменьшенным объёмом на несколько недель с ежедневным сравнением фактических сделок с тестовыми. Расхождения проявляются именно здесь, а не в отчёте тестера.
Частые вопросы
Почему демо идёт хуже бэктеста?
Появляются издержки, задержки и участки рынка, которых не было в удачном периоде.
Значит, бэктест бесполезен?
Нет, он отсеивает плохое; просто он не доказательство прибыли.
Сколько держать на демо?
Пока не наберёте достаточную выборку сделок в разных условиях.
Можно ли совсем убрать разрыв?
Уменьшить — да, убрать полностью — нет: будущее всегда неизвестно.
Насколько уменьшать объём на старте?
Настолько, чтобы неизбежная просадка на этапе притирки не била по вам болезненно; наращивать — только после подтверждения на реальных сделках.
Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией (не ИИР).
Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Редакционная политика