Иллюстрация к статье «Как проверить стратегию на истории и не подогнать результат»: условная панель анализа, без реальных статистических данных.

Что считать бэктестом стратегии

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

В карточке проверки задают соревнование, рынок, период, время получения данных, критерий отбора, модельную сумму и правила обработки отсутствующих записей. Отдельно указывают, какие сведения недоступны. Проверку можно проводить полностью без денег, она не требует реальных купонов, подписок или подключения платного API.

Как разделить настройку и независимую проверку

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

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

Где возникает утечка будущих сведений

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

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

Как восстановить цену и расчёт результата

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

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

Учебный вариантОборотВыплатыРезультат и ROI
10 равных сумм по 100 ₽, 6 побед по 1,901 000 ₽1 140 ₽+140 ₽, 14%
Те же исходы, но доступная цена 1,651 000 ₽990 ₽−10 ₽, −1%
К первой строке добавлен возврат 100 ₽1 100 ₽1 240 ₽+140 ₽, около 12,73%

Почему много попыток настройки искажает вывод

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

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

Как оформить честный отчёт о проверке

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

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