Блог им. MihailMihalev

Подгонка или оптимизация.

Продолжаю допиливать торговую систему и одновременно тестирую робота, который будет по ней торговать...

До этого момента у меня были Out-Of-Sample тесты в виде чередования недель для оптимизации параметров и валидации, walk-forward расширяющимся и скольящим окном. Решил немного улучшить способ с чередованием недель:
  1. Берем на всей истории случайных N% недель для оптимизации параметров.
  2. Для валидации берём недели, не попавшие в первый список.
  3. Оптимизируем параметры и снимаем метрики по первому и второму списку.
  4. Повторяем 1-3 пункт 100 раз и записываем показания.
  5. Выводим распределения метрик и их отношений в виде гистограмм.
  6. Выводим распределения параметров в виде гистограмм.
  7. Считаем коэффициент деградации метрик на Out-Of-Sample

Истории мало, только с 2025-01-27, — тогда появилась утренняя сессия. Убраны плечи и используется только одна прогнозная модель.

Если разделить недели 50% на 50%, то получается вот что:
Подгонка или оптимизация.

Коэффициент деградации стратегии на Out-Of-Sample можно выразить как единица минус среднее геометрическое от отношений прибыли, просадки^-1, средней сделки: 1 — (0.65*(1/1.68)*0.67)^(1/3) = 0.36 = 36%. 
Распределения оптимизированных параметров при этом выглядят вот так:
Подгонка или оптимизация.

Если разделить недели 75% на 25%, то получается вот что:
Подгонка или оптимизация.

Коэффициент деградации: 1 — (0.78*(1/0.94)*0.84)^(1/3) = 0.11 = 11%. (внезапно средняя просадка на валидации получилась чуть меньше, чем на оптимизации)
Распределения параметров при этом выглядят вот так:
Подгонка или оптимизация.



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


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


Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
653
4 комментария
Красиво, ждем walk-forward бэктест.
avatar

Интересная идея с рандомным разбиением недель и накоплением статистики по 100 прогонам. В теории это лучше одного классического бэктеста. Но есть ощущение, что коэффициент деградации вы выбрали произвольно (на глаз): перемножение прибыли, просадки^-1 и средней сделки + корень кубический могут красиво сглаживать сильную деградацию одной метрики за счёт другой... 

Плюс история с 27.01.2025, 25% недель в OOS при 75/25 — это совсем мало, метрики на валидации там будут сильно шумные, а про доверительные интервалы/значимость вы не пишете вроде. Надо перечитать.

По скаттеру первых двух параметров тоже хочется хоть какой‑то формальной проверки зависимости (корреляция/регрессия), а не только визуальной оценки.

Не думали посчитать, например, распределения разницы IS/OOS по каждой метрике отдельно, с интервалами, и/или добавить простой бенчмарк — «тупую» стратегию без прогноза какую-то — для сравнения? 

И кривулек не хватает, нет ничего лучше для оценки:)

avatar
Op_Man, 
перемножение прибыли, просадки^-1 и средней сделки + корень кубический могут красиво сглаживать сильную деградацию одной метрики за счёт другой
Тут была идея визуального контроля, а коэффициент деградации как довесок. Изначальная проблема с черезнедельным тестом была в том, что получалась какая-то дичь на валидации из-за календарных циклов. Ну и второй момент был в том, что хотелось увидеть распределение оптимизированных параметров, потому что закралось подозрение, что пара параметров сильно меняется из-за незначительных изменений в данных или алгоритме.

Плюс история с 27.01.2025, 25% недель в OOS при 75/25 — это совсем мало
Мало, но приходится работать с тем, что есть. Другие стратегии не связанные с утренней сессией буду тестировать на всех доступных данных.

По скаттеру первых двух параметров тоже хочется хоть какой‑то формальной проверки зависимости (корреляция/регрессия)
Визуальный контроль и мысленный эксперимент может оказаться лучше регрессии:) Если бы это была массовая автоматизированная проверка, то сделал бы регрессию.

Не думали посчитать, например, распределения разницы IS/OOS по каждой метрике отдельно, с интервалами, и/или добавить простой бенчмарк
Наверное можно, но я уже увидел всё, что хотел, а у меня ещё TODO на год вперёд:)
Михаил Михалев, ясненько, понятненько)
avatar

Читайте на SMART-LAB:
Фото
Финансовые результаты Аэрофлота по РСБУ за 6 месяцев 2026 года
Аэрофлот опубликовал финансовые результаты по РСБУ за 2 квартал и 6 месяцев 2026 года. ✈️ Выручка во 2 квартале увеличилась на 3,3% год к году и...
Фото
Эмитент допустил дефолт: что делать инвесторам в таком случае?
Дефолт по облигациям не всегда означает полную потерю вложений. Даже если эмитент перестал платить купоны или не погасил долг, инвестор...
Фото
Финансовые итоги 1 полугодия 2026 года
Выручка от продажи металлов за первые шесть месяцев текущего года увеличилась вслед за ростом цен на цветные и драгоценные металлы....
Фото
МД Медикал операционные результаты 2 кв. 2026 г. - темпы роста ускорились, но появился долг
Компания МД Медикал (Мать и дитя) опубликовала операционные результаты за 2 квартал 2026 г. Выручка за 2 квартал выросла на 25,9% до 13 млрд руб....

теги блога Михаил Михалев

....все тэги



UPDONW
Новый дизайн