Проверка торговых стратегий на истории: что реально работает

Чтобы идея не развалилась на первом же реальном дне, её гоняют по прошлым котировкам — аккуратно, без подглядывания в будущее и иллюзий. Разбираем, какие данные нужны, как готовить выборку, какие метрики считать и как защищаться от переобучения. В итоге получается трезвый, воспроизводимый процесс принятия решений.
Что такое проверка стратегии на истории и зачем она нужна
Это контролируемый прогон торговых правил на прошлых котировках, чтобы оценить реализуемость и риск. Такой подход отсекает красивые на глаз идеи, показывает просадки и учитывает комиссии с проскальзываниями.
По сути, это проверка на прошлых данных (backtesting) с чёткими правилами входа, выхода и управления позицией. Она отвечает на простой вопрос: „имела ли бы место заявленная логика раньше, при тех же условиях?“. Важно не подглядывать в будущее: индикаторы должны строиться только на информации, доступной на момент принятия решения, без „светящихся“ следующими барами значений. Мы также учитываем рыночную ликвидность, реальные торговые часы, комиссии и проскальзывания, иначе цифры обманут. Ещё один камень преткновения — смещение выживших: если брать только нынешних „живых“ эмитентов, картина станет чересчур оптимистичной. Поэтому добросовестная проверка начинается с правильной выборки и строгих ограничений на знания о будущем.
Данные и подготовка выборки: где брать и как чистить
Нужны корректные котировки с учётом корпоративных событий и реальных торговых сессий. Выборка делится на обучающий период для подбора правил и контрольный период для проверки, а пробелы и ошибки в данных маркируются и обрабатываются.
Источники данных бывают разные: биржевые провайдеры, лицензированные агрегаторы, открытые архивы. Важнее не цена, а качество: корректные сплиты и дивиденды, отсутствие „склеивания“ торговых площадок и чёткая временная зона. При работе с минутными и тиковыми рядами аккуратно синхронизируем время, чтобы не получить сигналы „из будущего“ между инструментами. Не забываем про календарь: праздники, укороченные дни, переход на летнее время. Грубые выбросы — либо проверяем первоисточник, либо ограничиваем влияния, а иногда и исключаем наблюдения с явными артефактами. Для акций разумно фильтровать по обороту и цене, чтобы не моделировать невозможные сделки. Разделение на периоды — краеугольный камень: сначала формируем правила на одной части данных, затем проверяем их устойчивость на другой. И, кстати, пусть контрольный период будет правдоподобно длинным: один удачный год ничего не доказывает.
- Покрытие: полные котировки, корректные сплиты и дивиденды.
- Синхронизация времени: единая зона, учёт торговых часов.
- Ликвидность: фильтры по обороту/спреду, реальность исполнения.
- Разделение периодов: обучающий, контрольный, иногда финальный „холодный“ отрезок.
- Комиссии и проскальзывания: задаём реалистичную модель сразу, а не потом.
Метрики качества: какие цифры действительно важны
Смотрим не только на доходность, но и на характер пути: просадка, стабильность по годам, волатильность капитала и соотношение доходности к риску. Если после комиссий профит слаб, а просадка велика, система не годится.
Итоговая доходность — приятная, но коварная цифра. Куда важнее, насколько „нервно“ стратегия идёт к цели, как быстро выходит из просадок и не завязана ли на один счастливый год. Коэффициент Шарпа показывает эффект на единицу риска, но он не различает „плохую“ и „хорошую“ волатильность; на помощь приходит коэффициент Сортینو. Максимальная просадка расскажет о самом тяжёлом периоде, а время восстановления — сколько терпения потребуется. Полезно смотреть распределение доходности по месяцам/годам и по инструментам: если результат держится на одном активе или на двух вспышках удачи, это звоночек. Мы также любим проверять стабильность параметров: небольшие сдвиги не должны разрушать картину.
| Метрика | Что показывает | Ориентиры для ликвидных рынков |
|---|---|---|
| Доходность после издержек (годовая) | Реальный профит с учётом комиссий и проскальзываний | Выше безрисковой ставки на 3–6 п.п. и более |
| Коэффициент Шарпа | Эффективность на единицу полной волатильности | 0,8–1,0 приемлемо; 1,0–1,5 хорошо; выше — редкость |
| Коэффициент Сортิโน | Эффективность относительно „плохой“ волатильности | На 20–40% выше, чем Шарп, при устойчивых системах |
| Максимальная просадка | Наихудшее падение капитала от пика до дна | Не больше половины среднегодовой доходности |
| Время восстановления | Сколько шёл выход из самой глубокой просадки | Менее 6–12 месяцев для среднесрочных идей |
| Стабильность по годам | Доля прибыльных лет/месяцев | Более 60% периодов в плюсе |
Это не железные законы, а ориентиры, помогающие отделить удобоваримую „нервность“ от разрушительной. Особенно полезно смотреть пакетно: высокая доходность при чрезмерной просадке — мираж. А вот умеренная доходность с короткими просадками и ровным профилем часто переживает длинные рыночные эпохи, где „чудо-метрики“ сдуваются.
Как избежать переобучения и ловушек: методики и правила
Защита строится на раздельных периодах, ограничении числа параметров и проверке устойчивости. Помогают скользящее окно, прогоны на смежных рынках и стресс‑тесты с „грязными“ данными.
Переобучение случается, когда подгоняем логику под случайный шум. Рабочий рецепт прост: минимум параметров, разумные экономические мотивы и проверка устойчивости на новых данных. Метод „скользящего окна“: учим правила на недавнем отрезке и применяем на следующем, затем окно сдвигаем — так видно, как идея „жила“ бы во времени. Полезно рандомизировать издержки и порядок сделок, чтобы проверить хрупкость эквити‑кривой. Перестановки сделок с сохранением профиля прибыли покажут, не держится ли результат на удачной очередности. Проверяем соседние рынки и таймфреймы: если смысл действительно общий, он проявится хотя бы в смягчённом виде. И ещё — штрафуем себя за множественные попытки: десятки экспериментов с параметрами увеличивают шанс случайного успеха, значит, требуем большей маржи прочности.
- Разделение на обучающий/контрольный/„холодный“ периоды без утечек информации.
- Ограничение степеней свободы: минимум параметров, простые правила.
- Скользящее окно и проверка стабильности параметров (тепловые карты профита).
- Стресс‑тесты: рандомизация издержек, задержки исполнения, пропуски баров.
- Кросс‑проверка: смежные рынки, другие таймфреймы, альтернативные расчёты индикаторов.
| Ловушка | Как проявляется | Проверка и защита |
|---|---|---|
| Подглядывание в будущее | Необычно гладкая кривая на истории, провал на реале | Строгая синхронизация времени, запрет будущих данных в формулах |
| Смещение выживших | Завышенная доходность на „лучших“ эмитентах | Исторические составы индексов, делистинги в сэмпле |
| Переобучение параметров | Сверхпрофит в оптимуме, резкий спад вокруг | Широкие плато устойчивости, штраф за сложность |
| Игнорирование издержек | Прекрасная теория, нулевая практика | Моделирование комиссий и проскальзываний с запасом |
| Зависимость от одного режима | Работает только в трендах или только во флэте | Декомпозиция по режимам, модулярные портфели |
Чтобы довести идею до рабочего состояния, нужен короткий, но жёсткий порядок действий. Сначала формулируем логику на салфетке: без формул должно быть понятно, на чём зарабатываются деньги. Дальше — простая реализация, где каждый шаг прозрачен и воспроизводим. Применяем на обучающем периоде, фиксируем параметры и больше их не трогаем. Потом контрольный период и скользящее окно, стресс‑тесты и кросс‑проверки. Если система переживает эти преграды, снижаем риск до реального, но скромного размера и ведём журнал сделок. И, честно говоря, не спешим: две недели наблюдений в „бумажном“ режиме порой спасают месяцы и капитал.
Небольшой рабочий план поможет не расплескать дисциплину:
- Данные: собрать, очистить, учесть корпоративные события и ликвидность.
- Правила: максимально простые, экономически мотивированные, без лишних параметров.
- Издержки: задать реалистичную модель комиссий и проскальзывания.
- Разделение периодов: обучающий, контрольный и „холодный“ сегменты.
- Скользящее окно и стресс‑тесты: рандомизация, пропуски, задержки.
- Малый реальный риск и мониторинг: журнал сделок, сравнение с эталоном.
Вывод простой. Надёжная проверка — это не про „выжать максимум из истории“, а про доказать жизнеспособность идеи при разумных издержках и в разных рыночных режимах. Когда цифры честны, а правила понятны и устойчивы, результаты реальных сделок перестают быть лотереей и начинают напоминать ремесло — аккуратное, последовательное, с ясными ожиданиями и пределами риска.
И да, чудес не будет: даже лучшая система переживает просадки. Но если маршрут продуман, метрики не кричат о хрупкости, а процесс отслеживается и дорабатывается небольшими шагами, то шансы пройти через бурю растут. Это и есть цель — не угадать, а выстоять.