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

Вроде все хорошо: винрейт подрос, эквити сгладилось. Но возникает вопрос: почему трендовая (вроде как) модель ничего не делает на участках рынка с большими трендами?
Результат выглядит лучше, только если мы считаем ошибками модели лишь ее лоси (ложноположительные результаты, или ошибки 1-го рода). Но, глядя на улучшенную форму эквити, мы не замечаем ложноотрицательных результатов (ошибок 2-го рода), или упущенных профитов.
Они сразу бросились бы в глаза, если бы наши данные были размечены, как в машинном обучении, и тогда пропуск тренда считался бы такой же (на самом деле — еще более дорогой, ведь у трендовых систем всегда большие профиты и мелкие лоси) ошибкой, как и стоп-лосс. И мы бы увидели, что добились роста
precision (винрейта) при сильной потере
recall (число взятых профитов). Или, в терминах матрицы ошибок, подняли
специфичность (способность различать лоси, или ошибки 1-го рода) за счет падения
чувствительности (способности не упускать профиты, что является ошибкой 2-го рода). Что, вероятно, говорит о переобучении, потому что если трендовая модель не берет тренды, то, скорее всего, она потеряла обобщающую способность.
Такой подход мог бы помочь выявить, что не все сложные модели являются переобученными (и не все простые — эффективными). Было бы интересно проверить им, например,
модели Майтрейда))
Упование на то, участков типа (А) будет больше чем (В). Или «тренды» с углом 45 встретятся чаще «трендов» под 10 градусов. Или волатильность сохранится на уровне (n) в будущем. итд.
1. С точки зрения метрик качества модели, в трейдинге можно забить на ложно отрицательные. Тем на рынке дофига, рынков дофига, всего дофига, умеешь хорошо говорить «вот щас точно оно», даже если мимо вагонами пролетают упущенные возможности — этого более чем достаточно для заработка.
2. Ложно отрицательные как мера робастности и переподгонги. Идея интересная, но не думаю, что там что-то есть. Детали раскрывать не буду).