Перейти к содержимому

Инструменты бэктеста и проверки стратегий

Бэктест честен ровно настолько, насколько честны данные и метод. Здесь — про качество котировок, тестеры стратегий и ловушки переоптимизации, из-за которых красивый результат на истории не повторяется в реальности.

С чего начать в этом разделе

Раздел про проверку стратегий на истории. Начните с материалов о том, почему красивый бэктест не превращается в прибыль, и о переоптимизации: они описывают механизм, из-за которого подобранные под прошлое параметры выглядят закономерностью. Дальше — про чтение отчёта тестера: порядок, в котором смотрят цифры, экономит основное время.

Второй блок — про методику: разделение выборки, последовательные окна с перенастройкой, проверка устойчивости к сдвигу параметров. Это единственные способы отличить найденную закономерность от совпадения, и все три реализуются встроенными средствами терминала без дополнительных подписок.

Третий блок — про инструменты: встроенный тестер против внешних платформ, мультивалютное тестирование, качество исторических данных. Сами решения с характеристиками собраны в каталоге тестеров.

Что важно понять по теме

Данные определяют результат сильнее логики

Тест на чужих котировках, с пропусками или с низким качеством моделирования даёт цифры, не относящиеся к вашему счёту. Прежде чем читать итог, смотрят период, источник данных и процент моделирования — при низком качестве остальные показатели недостоверны независимо от их привлекательности.

Издержки по умолчанию занижены

Спред в настройках теста обычно фиксированный и меньше реального, комиссия часто не задана, проскальзывание отсутствует вовсе. Подстановка реальных чисел занимает минуту и часто превращает прибыльную систему в убыточную — что и есть полезный результат, полученный до потери денег.

Проверка идёт на данных вне выборки

Настройка на всей истории всегда даёт красивый результат и ничего не сообщает о будущем. Минимум — разделить историю и не открывать вторую часть до проверки. Строже — последовательные окна с перенастройкой, где итог собирается только из проверочных отрезков.

Устойчивость важнее лучшего результата

Работающая закономерность даёт широкую область приемлемых настроек, подгонка — одинокий пик среди плохих результатов. Сдвиньте параметры на десять процентов в обе стороны: если результат рушится, найдена особенность истории. Число проверенных комбинаций тоже стоит помнить при оценке итога.

Мультивалютную систему тестируют целиком

Инструменты делят общую маржу и коррелируют между собой, поэтому прогон по отдельности не показывает реального поведения. Отдельно считается требуемая маржа при максимальном числе одновременных позиций: нередко теоретический предел системы недостижим на вашем депозите.

Типичные ошибки

Оптимизация до красивой кривой

Перебрав тысячи комбинаций, вы почти гарантированно найдёте идеально описывающую прошлое. Защита — ограничить число параметров тремя-четырьмя, задать достаточный результат заранее и остановиться при его достижении, проверяя плато вместо пика.

Выводы по короткой выборке

Тридцать сделок случайны независимо от вида кривой, а период с одним режимом рынка проверяет только благоприятные условия. Минимально осмысленный тест содержит несколько сотен сделок и включает резкие однонаправленные движения.

Отсутствие сохранённых настроек теста

Через несколько месяцев воспроизвести прогон по памяти не получится, и сравнивать новый вариант будет не с чем. Настройки сохраняются вместе с результатом — это дешевле, чем повторять всю работу.

Порядок вывода стратегии на реальный счёт

Тест отвечает на вопрос, была ли закономерность в прошлом, а не сохранится ли она. Второй вопрос решается только эксплуатацией, поэтому запуск идёт с уменьшенным объёмом и параллельным учётом. Каждый день фактические сделки сравниваются с тем, что дал бы тест на тех же данных: количество, цены входа, срабатывания стопов.

Расхождение в числе сделок обычно означает разницу в исполнении, расхождение в ценах — проскальзывание, которого в тесте не было. Заранее задаётся порог допустимого расхождения и правило остановки при его превышении: без порога расхождения объясняются по одному, и остановка не происходит никогда. Три недели такого сравнения информативнее любых дополнительных прогонов на истории.

Шесть проверок, которые отсеивают неработающие идеи

Первая — прогон на данных вашего брокера с реальными издержками. Спред в настройках теста по умолчанию фиксированный и обычно меньше фактического, комиссия часто не задана вовсе, а проскальзывание отсутствует. Подстановка своих чисел занимает минуту и нередко превращает прибыльную кривую в убыточную. Это и есть полезный результат: он получен до того, как деньги потеряны.

Вторая — число сделок. Выборка меньше нескольких сотен случайна независимо от того, как выглядит кривая доходности. Третья — разделение выборки: параметры настраиваются на одной части истории, проверяются на другой, которую вы не открывали до этого момента. Подглядывание во вторую часть с последующей незаметной подстройкой лишает проверку смысла, и это самое частое нарушение методики.

Четвёртая — устойчивость. Сдвиньте параметры на десять процентов в обе стороны: если результат рушится, найдена особенность истории, а не закономерность. Работающее правило даёт широкую область приемлемых настроек. Пятая — сравнение с элементарным правилом на тех же данных: если сложная система не превосходит простое, сложность не оплачивается и лишь увеличивает число способов ошибиться.

Шестая — период, включающий разные режимы рынка: спокойный, трендовый и резкое однонаправленное движение. Система, показанная только на благоприятном отрезке, остаётся непроверенной. Идея, прошедшая все шесть шагов, заслуживает запуска с уменьшенным объёмом — но не раньше, потому что каждый пропущенный шаг проявляется уже на реальном счёте и стоит дороже вечера работы.

Отдельно стоит записывать число проверенных комбинаций. Перебрав тысячи вариантов, вы почти гарантированно найдёте красивый среди случайных, и об этом полезно помнить при оценке итога. Разумное ограничение — три-четыре настраиваемых параметра и заранее заданный порог достаточного результата, при достижении которого оптимизация прекращается.

Где именно ломается проверка стратегии

Первый разрыв — между данными теста и данными вашего счёта. Котировки поставщика исторических данных и котировки брокера отличаются, а моменты расширения спреда в истории обычно не отражены вовсе. Стратегия, показавшая преимущество на чужих данных, остаётся непроверенной на ваших, и разница тем заметнее, чем меньше целевое движение сделки.

Второй разрыв — между настройкой и проверкой. Как только вы посмотрели на отложенную часть истории и после этого что-то изменили в параметрах, отложенная выборка перестала быть независимой. Формально проверка выполнена, фактически нет. Это нарушение не оставляет следов в отчёте и обнаруживается только на реальном счёте, поэтому дисциплина здесь важнее любого инструмента.

Третий разрыв — между числом проверенных вариантов и итоговым результатом. Если перебрано несколько тысяч комбинаций, лучший из них будет выглядеть убедительно даже на случайных данных. Полезная привычка — записывать, сколько вариантов проверено, и оценивать итог с поправкой на это число. Три-четыре параметра и заранее заданный порог достаточности решают проблему на входе.

Четвёртый — между тестом и эксплуатацией. Тест отвечает на вопрос, была ли закономерность в прошлом; сохранится ли она, показывает только работа с уменьшенным объёмом и заранее заданным правилом остановки. Поэтому дополнительный прогон на истории почти никогда не даёт новой информации, а три недели реальной торговли дают.

Пятый разрыв — между одиночным и портфельным поведением. Инструменты делят общую маржу и коррелируют между собой, поэтому сумма результатов отдельных прогонов не равна результату портфеля. Требуемая маржа при максимальном числе одновременных позиций считается отдельно: нередко выясняется, что теоретический предел системы недостижим на вашем депозите.

И шестой, самый незаметный, — между кривой и распределением. Ровная линия доходности достигается двумя способами: устойчивым преимуществом и отказом фиксировать убытки. Различить их можно по просадке, измеренной по средствам, и по максимальному использованному объёму. Если оба показателя отсутствуют в отчёте, отчёт не содержит главного.

Практический вывод по разделу: инструмент тестирования вторичен по отношению к методике. Встроенный тестер терминала с правильно заданными издержками и честным разделением выборки даёт более достоверный результат, чем дорогая платформа с параметрами по умолчанию. Начинать имеет смысл с методики, а внешние решения подключать тогда, когда конкретное ограничение стало препятствием.

Сохраняйте настройки каждого прогона вместе с результатом: период, источник данных, издержки, набор параметров, число сделок. Через несколько месяцев воспроизвести тест по памяти уже не получится, а сравнивать новый вариант будет не с чем. Это дешевле, чем повторять всю работу, и обычно занимает меньше минуты.

Короткий чек-лист

  • Известны источник, период и качество исторических данных.
  • Спред, комиссия, своп и проскальзывание заданы по вашему счёту.
  • Параметры настроены на одной части истории и проверены на другой.
  • Проверена устойчивость к сдвигу параметров на десять процентов.
  • В выборке несколько сотен сделок и разные режимы рынка.
  • Настройки прогона сохранены вместе с результатом.

Частые вопросы

Что показывает бэктест и чего он не показывает?

Бэктест показывает, как правила вели бы себя на прошлых данных, и это единственный способ отличить идею от догадки. Он не показывает будущего, не учитывает реальное проскальзывание и качество данных, а при подгонке параметров создаёт результат, которого на новых данных не будет.

Сколько данных нужно для честной проверки?

Столько, чтобы в выборку попали разные рыночные режимы — тренд, диапазон, всплеск волатильности — и не меньше сотни сделок. Проверка на полугодовом трендовом отрезке говорит только о том, что стратегия любит тренд, а не о том, что она работает.

Чем отличается тестер терминала от отдельного сервиса?

Тестер в терминале удобен и бесплатен, но ограничен качеством истории и моделью исполнения. Отдельные сервисы дают тиковые данные, учёт спреда и свопов, стресс-тесты и форвард-анализ. Разница видна именно на коротких таймфреймах, где издержки съедают преимущество.