Как протестировать торговую стратегию и не обмануть себя
Система дала +184% на истории 2024–2025 — а на живом счёте с января по июль 2026-го забрала минус 34%. Внутри теста нашлись три находки: в выборке было 27 сделок, комиссия с проскальзыванием не учтены совсем, а периоды скользящих 20 и 50 нашлись перебором из 1200 комбинаций. Ни один из этих дефектов не виден в красивом отчёте — и все три ловятся простым чеком до того, как поставлены деньги. Ниже — подгонка на пальцах с числами, арифметика издержек, минимальная выборка, форвард-тест и метрики, которые не врают.
Вскрытие: где в отчёте о +184% прячется минус#
История реальная, имя опустим. В феврале 2026-го знакомый принёс бэктест: вход на пробое 20-дневного максимума, скользящая 50 сверху как фильтр, стоп два процента, выход по обратному сигналу. Период — два года, 2024–2025. Доходность +184%, кривая капитала почти без ям, винрейт 63%. Звучит убедительно — и именно поэтому опасно: убеждение включается раньше проверки, деньги идут следом за красотой кривой.
Теперь то, что нашлось при проверке. Двадцать семь сделок за два года — на такой выборке винрейт 63% неотличим от подбрасывания монеты, арифметику покажу ниже. Периоды 20 и 50: автор прогнал оптимизатор по 60 вариантам быстрой скользящей и 20 вариантам стопа — 1200 комбинаций — и взял лучшую. Издержек в тесте нет вовсе: ни комиссии, ни проскальзывания. Каждый пункт по отдельности способен превратить +184% в минус; здесь они были все сразу, просто отчёт этого не показывал.
Подгонка: оптимизатор находит грааль в чистом шуме#
Механика подгонки простая и оттого неприятная. Перебор параметров не проверяет стратегию — он ищет совпадение с историей. Прогоните 1200 комбинаций правил по случайному блужданию цены, где закономерности нет в принципе, — и часть комбинаций всё равно окажется в плюсе: за два года таких наборов набирается десятая-пятая часть. Лучший из них покажет уверенные +150–200% и ровную кривую капитала. Это арифметика, а не аналитика: чем шире перебрали, тем «идеальнее» мусор найдёте.
Противоядие — проверка соседних параметров, тест на плато. У живой системы результат меняется плавно: рядом с 20/50 значения 19/50 и 21/50 дают плюс той же величины с точностью до десятков процентов. У подгонки пик одинокий: 20/50 дают +184%, а 18/50 — минус 40%, 22/50 — минус 25%. Такой профиль означает, что заработали не правила, а конкретные даты, на которые легли именно эти цифры. Проверка занимает десять минут: сдвиньте каждый параметр на плюс-минус 10–20% и посмотрите, остался ли знак результата.
- Пик доходности одинокий: соседние параметры уходят в минус.
- Комбинаций в оптимизации больше нескольких сотен, а период истории один.
- Правил больше трёх-четырёх, и каждое появилось «после того, как увидели график».
- Результат сделан одним отрезком: уберите три лучшие сделки — и система в минусе.
Комиссия, которая съедает +180%#
Издержки в тесте равны нулю только на бумаге. Круг — покупка и продажа — стоит комиссию биржи и брокера, спред и проскальзывание. По ликвидным фьючерсам и голубым фишкам консервативная оценка — 0,15% на круг: 0,08% комиссии плюс 0,05–0,1% того, что вход и стоп исполнятся чуть хуже цен на экране. Дальше это число умножается на количество сделок, и начинается неприятное.
В примере с начала статьи сделок было 27: 27 × 0,15% — около четырёх процентов, счёт убила не комиссия, а подгонка. Но возьмите систему на пятиминутках: средняя прибыльная сделка 0,35%, издержки те же 0,15% на круг — и это уже 43% преимущества, съеденные до убытков и налогов. А на новостях стоп уезжает не на 0,05%, а на полпроцента, и «прибыльная» минутная система превращается в генератор комиссий для брокера. Скальпинг первым умирает при честном учёте именно поэтому: его преимущество сопоставимо с ценой исполнения. Рабочее правило — умножить оценённые издержки на полтора и вычесть до всех остальных расчётов: система, выживающая после такой стрижки, имеет шанс.
Тридцать сделок: почему меньше — не статистика#
У выборки есть своя арифметика, и она жестока к коротким тестам. Стандартная ошибка доли — корень из p(1−p)/n. Для тридцати сделок при честных пятидесяти процентах это девять процентных пунктов на одну сигму и восемнадцать на две. Переводя на человеческий: винрейт 60% на тридцати сделках неотличим от винрейта 42%. Обе цифры «правдивы», обе бессмысленны.
Рабочие пороги такие. Тридцать сделок — минимум, чтобы грубо понять, жив ли сценарий вообще. Сто и больше — чтобы сравнивать системы между собой и верить винрейту с точностью до пяти пунктов. И выборка обязана накрывать разные режимы рынка: сто сделок за один трендовый квартал 2024 года — это одна ставка на одно состояние рынка, а не тест. Хороший тест содержит и тренд, и флэт, и хотя бы один месяц, о котором хочется забыть.
Есть и практическое следствие: число сделок диктует срок теста. Дневной сценарий вроде пробоя двадцатидневного максимума даёт одну-две сделки в месяц — тридцать сделок наберутся за полтора-два года, а сто — года за четыре. Отсюда частая подмена: трейдер торопится, переезжает на пятиминутки, набирает сотню сделок за неделю и не замечает, что издержки из предыдущего раздела уже съели его преимущество. Быстрая выборка и честный учёт почти никогда не живут в одном тесте — заранее решите, что именно проверяете.
Форвард-тест: один вслепую прогон дороже тысячи бэктестов#
Протокол честного теста двухчастный. Оптимизация — на данных до фиксированной даты, скажем до 31 декабря 2024-го: здесь перебор допустим. Проверка — параметры заморожены, один прогон на 2025-м, вслепую. Out-of-sample читается иначе, чем бэктест: +20% на проверке честнее +200% на оптимизации, потому что эти двадцать процентов история ещё не показывала.
Главное правило — прогон один. Провалили форвард, подкрутили параметры, прогнали снова — проверка обесценилась: 2025-й уже участвует в подгонке, хотя в отчёте по-прежнему называется проверкой. Захотелось править — делите период заново: оптимизация на 2023–2024, свежий форвард на 2025–2026.
Тем, кто гоняет тесты регулярно, — walk-forward: двенадцать месяцев оптимизации, затем три месяца торговли на замороженных параметрах, сдвиг окна на три месяца — и так восемь отрезков на трёх годах истории. Рабочая — та система, что в плюсе на большинстве отрезков; результат, собранный двумя удачными кусками из восьми, — та же подгонка в другом костюме. Финальный этаж — два-три месяца демо на живых ценах: оно ловит гэпы, ночные новости и проскальзывание, которых в исторических котировках просто нет.
Данные: тест ломается до первого прогона#
Даже безупречный протокол ломается о плохую историю. Первый подводный камень — выжившие. Если берёте список акций из сегодняшнего индекса, в выборку не попали те, кто обанкротился или вылетел из него пять лет назад: стратегия «покупай пробой» на выживших всегда выглядит лучше, потому что бумаги, на которых она обнулилась бы, в данных просто отсутствуют. Второй — дивидендные гэпы: на дневном графике акция падает на размер выплаты, и стоп «под уровень» срабатывает на гэпе, которого тест без поправки не видит. Третий — пропуски и склеенные свечи у бесплатных источников: один битый месяц превращает минус в плюс.
Минимальная гигиена: котировки с поправкой на выплаты, взгляд глазами на пару известных дат — февраль 2022-го, март 2020-го — и здоровый скепсис, когда результат выходит слишком гладким. Кривая без единой ямы за три года — это чаще дефект данных, чем свойство системы.
Винрейт 90%, который теряет деньги: метрики по-честному#
Винрейт — самая раскрученная и самая обманчивая цифра отчёта. Пример: девять сделок из десяти закрываются в плюс по 0,2R, одна — в минус на восемь R, потому что стоп «подвигали», а потом долили объём. Матожидание: 0,9 × 0,2 − 0,1 × 8 = +0,18 − 0,8 = −0,62R за сделку. Девяносто процентов попаданий, счёт тает. Красивый винрейт нередко оказывается маской для перенесённых стопов.
Считать нужно три вещи. Матожидание в R — средний результат сделки, делённый на риск; после издержек планка +0,15R, ниже — система не переживёт реальное исполнение. Profit factor — валовая прибыль к валовому убытку: меньше 1,3 тонко, рабочий диапазон 1,5–2, а «выше трёх» — повод искать подгонку, а не радоваться. Максимальная просадка: минус 20% требует плюс 25% на возврат, минус 34%, как в примере с начала статьи, — плюс 51%. И вопрос не только глубины: сколько месяцев система сидела без нового максимума. Восемь месяцев просадки выключают почти всех раньше, чем ломается математика.
| Что проверяем | Число-ориентир | Что означает провал |
|---|---|---|
| Размер выборки | 30 сделок минимум, 100+ для сравнения систем | Винрейт на 20 сделках неотличим от монеты |
| Комиссия и проскальзывание | Вычесть 0,15% на круг; при частой торговле — с запасом ×1,5 | «Прибыльная» минутная система первой умирает на живом счёте |
| Подгонка параметров | Сдвиг каждого на ±10–20% — знак результата не меняется | Одинокий пик: заработали конкретные даты, а не правила |
| Форвард (out-of-sample) | От 30% периода, прогон один, параметры заморожены | «Ещё разок прогнать» — проверка стала частью подгонки |
| Матожидание | От +0,15R на сделку после издержек | Винрейт 90% бывает у систем с минусовым матожиданием |
| Максимальная просадка | До −20% и не дольше полугода без новых максимумов | Минус 50% чинится только плюс 100% |
Числа оживают в связке. Система А: +40% за год при максимальной просадке минус 30% — соотношение доходность/просадка 1,3. Система Б: +18% при просадке минус 8% — соотношение 2,25. В рекламе ярче первая, в жизни лучше вторая: Б переживёт увеличение объёма и тяжёлый квартал, а владелец А на третьей глубокой просадке почти наверняка полезет руками в автоматику — и ручное вмешательство в системную торговлю стоит дороже любой просадки из таблицы.
Порядок теста: вечер на проверку, деньги — потом#
Весь протокол собирается в пять шагов, и по времени это один вечер плюс пара недель демо:
- Правила на бумаге до графика: вход, стоп, выход, объём. Правило, придуманное во время теста, — уже подгонка.
- Бэктест с издержками: 0,15% на круг минимум, сделок от тридцати, период захватывает тренд и флэт.
- Плато-тест: сдвиньте каждый параметр на ±10–20%, результат должен остаться в плюсе. Одинокий пик — стоп.
- Форвард на замороженных параметрах, один прогон. Провал — возврат к шагу 1, а не подкрутка.
- Демо на живых ценах два-три месяца с журналом: исполнение по правилам выше 80% — тогда минимальный реальный объём.
Инструменты под эти шаги есть на сайте. Ручной прогон случайных участков — в симуляторе трейдинга: десять минут на серию сделок по правилам. Формализовать входы помогает чек-лист технического анализа — он же дисциплинирует демо-период. А чтобы форвард не развалился на «сделал не по правилам», заведите журнал: в статье о том, как вести дневник трейдера разобрана структура, где поле «по плану или нет» отлавливает отклонения раньше, чем они станут минусом на счёте.
И последнее про порядок: провал на любом шаге — не потерянный вечер, а самый дешёвый результат из возможных. Сценарий, умерший на плато-тесте, сэкономил вам депозит; система, завалившая форвард, сделала это до денег, а не после. У того, кто тестирует дольше года, архив полон красивых кривых, проваливших проверку вслепую, — это не потери, а фильтр, который сработал вовремя.
Что запомнить#
Бэктест — не приговор и не гарантия, а показания подозреваемого: их перепроверяют. Подгонка ловится тестом соседних параметров, издержки — одним умножением, малая выборка — подсчётом ошибки, форвард — одной проверкой вслепую. Система, прошедшая чек из шести строк, всё равно будет ошибаться и попадать в просадки — но её просадки будут измеряться процентами, а не депозитом.
Частые вопросы
Материалы курса по теме
Разобранные в статье инструменты ждут вас в уроках курса — с тренажёрами, самопроверкой и повторениями: