Бэктест — проверка торговой идеи на исторических данных. Это обязательный шаг между «мне кажется, это работает» и реальными деньгами, но именно здесь трейдеры чаще всего обманывают сами себя. Бэктест легко подогнать так, чтобы он показал прекрасную кривую, которая в реальной торговле немедленно рассыпется. Причина не в злом умысле, а в тонких методологических ошибках: заглядывание в будущее, игнорирование издержек, подгонка параметров. Объясним, как структурно устроен честный бэктест, какие метрики смотреть и — главное — какие ловушки превращают тестирование в самообман.
Правильный бэктест воспроизводит торговлю максимально близко к реальности. Нужны качественные исторические данные, точные правила входа и выхода, честный учёт издержек и корректная логика исполнения — сделка совершается по цене, доступной в тот момент, а не по будущей. Схематично на Python это выглядит так:
Ключевые наблюдения
- Бэктест проверяет идею на истории, но его ценность полностью зависит от честности методологии, а не от красоты кривой.
- Три главных источника ложной прибыли — заглядывание в будущее (look-ahead), игнорирование издержек и подгонка под прошлые данные.
- Издержки (спред, комиссия, проскальзывание) нужно закладывать честно: без них прибыльной выглядит даже случайная стратегия.
- Бэктест — необходимое, но недостаточное условие: хороший результат на истории не гарантирует будущей прибыли, плохой — почти всегда приговор.
Бэктест не отвечает на вопрос «сколько я заработаю». Он отвечает на вопрос «не является ли идея заведомо нерабочей». Всё остальное — это проверка методологии, а не подтверждение прибыли.
— Noob_X
Три ошибки, рисующие ложную прибыль
Первая и самая частая — look-ahead bias, заглядывание в будущее: сигнал случайно использует данные, которых в тот момент ещё не было (например, вход по цене закрытия свечи, которая на момент решения не закрылась). Такой бэктест показывает фантастику. Вторая — игнорирование издержек: без спреда, комиссии и проскальзывания даже подбрасывание монеты «выглядит» прибыльным на активной торговле. Третья — подгонка параметров под конкретный отрезок истории (переоптимизация): вы находите числа, идеальные для прошлого, которые в будущем не работают. Все три ошибки объединяет одно — они делают прошлое красивее, чем будет будущее.
Какие метрики смотреть
Одной «итоговой прибыли» категорически недостаточно. Минимальный набор: максимальная просадка (насколько глубоко проседал счёт — переживёте ли вы это психологически), соотношение риск/прибыль и профит-фактор (сколько прибыли на единицу убытка), число сделок (на пяти сделках статистики нет, нужны десятки-сотни), распределение результатов (не держится ли вся прибыль на одной аномальной сделке). Кривую эквити смотрят не на «сколько выросла», а на «насколько ровно и за счёт чего». Стратегия с меньшей прибылью, но малой просадкой и большим числом сделок обычно надёжнее, чем взлетевшая кривая на десятке сделок.
Как применить к своей торговле
Честный бэктест обязательно фиксирует риск, а не только доход. В коде выше на каждую сделку закладывается фиксированный процент счёта в риск и стоп-лосс, а издержки (`spread`) вычитаются при входе и выходе. Метрики считаются по итоговому массиву `equity`: сумма, максимальная просадка, доля прибыльных сделок. Никакие конкретные цифры доходности здесь не приводятся намеренно — они зависят от данных, инструмента и издержек конкретного брокера и должны получаться на ваших данных, а не браться из чужих обещаний. Бэктест — это инструмент проверки, а не витрина результатов.
Типичные промахи
Первая — заглядывание в будущее из-за неаккуратной работы с данными. Вторая — бэктест без честных издержек. Третья — подгонка параметров под прошлый отрезок. Четвёртая — выводы по слишком малому числу сделок. Пятая — смотреть только на итоговую прибыль, игнорируя просадку и распределение результатов.
Читайте также
Частые вопросы
Достаточно ли хорошего бэктеста, чтобы торговать вживую?
Нет. Хороший бэктест — необходимое, но не достаточное условие. Дальше нужны проверка на новых данных (out-of-sample) и форвард-тест. Плохой же бэктест почти всегда закрывает вопрос сразу.
Сколько истории нужно?
Достаточно, чтобы захватить разные режимы рынка (тренды и боковики, спокойствие и волатильность) и набрать много сделок. Короткий удачный период ничего не доказывает.
Можно ли бэктестить вручную, без кода?
Можно на небольшом объёме для интуиции, но ручной бэктест почти неизбежно тянет заглядывание в будущее и субъективность. Для серьёзной проверки нужен воспроизводимый код.
Что запомнить
- Бэктест проверяет жизнеспособность идеи, а не предсказывает будущую прибыль.
- Сигнал считается только по прошлым данным, сделка исполняется на следующем баре — иначе это заглядывание в будущее.
- Издержки (спред, комиссия, проскальзывание) закладываются честно, иначе прибыльной выглядит и случайность.
- Смотрите просадку, число сделок и распределение результатов, а не только итоговую прибыль.
