Блог им. 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 раз лучше, чем совсем без прогноза.


Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
661
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:
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Клиенты Альфа-Инвестиций могут совершать сделки в выходные . Торги в эти дни не отличаются волатильностью, но если всё-таки...
Фото
Очередная волна дефолтов захлестнула рынок ВДО. Итоги недели
Индекс RGBI торгуется вблизи отметки в 113,55 пунктов, демонстрируя коррекцию порядка 0,6% по итогам недели Инфляция и ОФЗ...
Восточный коридор в Индию откроет новые возможности для российских экспортеров
Москва и Нью-Дели обсуждают создание во Владивостоке мощностей по перевалке нефти, СПГ и удобрений с последующей отправкой грузов в Индию. По...
Фото
Ренессанс Страхование: волатильные рынки привели компанию к убытку в 1-м полугодии, что ожидаем дальше?
Группа «Ренессанс страхование» представила слабые финансовые результаты по МСФО за первое полугодие 2026 года. Чистый убыток составил 1,4 млрд...

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

....все тэги



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