Стоп-лосс и тейк-профит в одной свече: как проверить бэктест

У свечи минимум ниже стопа, а максимум выше тейк-профита. Бэктест закрыл сделку с прибылью. Можно ли считать такой выход подтверждённым? По одной свече OHLC — нет: она сообщает цены открытия, максимума, минимума и закрытия, но не весь порядок движения между ними.
Для криптовалютной стратегии с короткими стопами это важная проверка. Нужно выяснить, какие заявки уже действовали, по какой последовательности цен тестер моделировал исполнение и меняется ли вывод при другом допустимом порядке. Это проверка модели, а не поиск настройки, которая улучшит отчёт.
Почему одной свечи недостаточно
Возьмём условную длинную позицию, открытую до начала свечи. Стоп находится на 95, тейк-профит — на 105. У следующей свечи Open = 100, High = 106, Low = 94, Close = 101. Числа учебные: это не реальные котировки и не доходность стратегии.
С такими OHLC совместимы оба движения:
| Допустимая последовательность | Какой уровень достигнут первым |
|---|---|
| 100 → 106 → 94 → 101 | Тейк-профит 105 |
| 100 → 94 → 106 → 101 | Стоп 95 |
Таблица предполагает, что обе заявки уже действуют, позиция закрывается полностью при первом выходе, а второй выход больше не применяется. Это намеренно упрощённая модель без гэпов, очереди заявок и частичных исполнений. Она показывает только одно: одинаковая свеча совместима с разными исходами.
Сначала проверьте момент появления заявки
Даже известная последовательность цен не помогает, если тест использует заявку раньше её создания. Если сигнал рассчитан по закрытию свечи, нельзя автоматически исполнять его по минимуму этой же свечи: в тот момент закрытие ещё не было известно.
Для спорной сделки выпишите четыре времени: появление сигнала, отправку заявки, её активацию в модели и исполнение. Затем проверьте, когда появились защитные выходы. Стоп мог быть создан только после входа, а не существовать в течение всей свечи.
Для фьючерсов добавьте источник цены срабатывания. Если выход настроен на mark price, свечи last price сами по себе не доказывают наступление триггера. Вопросы ликвидации и стопа рассмотрены в отдельном материале XTester; здесь мы разбираем именно порядок событий внутри бара.
Узнайте, какое допущение использует тестер
У разных движков разные правила. Например, документация TradingView прямо описывает, как брокерский эмулятор предполагает путь цены между OHLC. Более подробные данные могут изменить результат выхода в том же баре. Это описание TradingView, а не утверждение о таком же алгоритме в XTester.
Для своего запуска сохраните версию тестера, тип данных, настройки исполнения и правило обработки одновременного касания уровней. Если последнее не описано, отметьте его как неизвестное и воспроизведите отдельный случай. Нельзя выводить правило из одной красивой сделки: похожий результат может получиться по другой причине.
Три способа проверить спорный выход
Разобрать более мелкие данные. Найдите тот же интервал на меньшем таймфрейме у того же источника и для того же инструмента. Если стоп и цель попали в разные младшие свечи, порядок станет понятнее. Если оба уровня остались внутри одной младшей свечи, неоднозначность сохраняется. Более мелкий OHLC не равен полной истории сделок или очереди в стакане.
Сравнить два допустимых сценария. Для проверки чувствительности рассмотрите сначала стоп и сначала цель. Сохраняйте одинаковыми остальные условия. Такие расчёты — сценарии модели, не точный нижний и верхний предел будущего результата. Гэпы, издержки и неполное исполнение могут дать другой исход.
Отметить неразрешённые сделки. Не удаляйте их тихо из статистики. Покажите число таких случаев и отдельно оцените, зависит ли общий вывод от выбранного порядка. Если зависит, оснований доверять единственному итоговому P&L недостаточно.
Как организовать проверку в XTester
Выберите одну спорную сделку, а не весь отчёт. В XTester доступны историческое тестирование и просмотр результатов; начните с раздела справки о результатах и сопоставьте запись сделки с исходными данными. Проверьте период, источник, рынок и инструмент в условиях запуска.
Сохраните исходный расчёт до изменения настроек. Для повторной проверки подготовьте короткий интервал вокруг спорного события и запишите, что именно изменили. Не меняйте одновременно код, комиссию и детализацию истории: тогда причину расхождения будет трудно установить.
Не считайте описанные выше два сценария готовой переключаемой функцией XTester. Это метод проверки; доступный способ его реализации зависит от версии и модели исполнения. Если правило нельзя подтвердить по документации и результату контрольного случая, оставьте вывод открытым.
Что написать в заключении теста
Полезное заключение звучит конкретно: «Выход зависит от порядка цен внутри свечи; младшие данные не разрешили спор; результат требует дополнительной проверки». Если порядок подтверждён, укажите источник и детализацию, а также оставшиеся ограничения исполнения.
Задача не в том, чтобы всегда выбирать стоп первым. Задача — не выдавать предположение тестера за наблюдавшееся событие. Даже устранённая неоднозначность одного бара не доказывает устойчивость стратегии и не гарантирует будущую прибыль.
Материал носит информационный характер и не является инвестиционной рекомендацией. Результаты бэктеста не гарантируют будущую доходность.


