Eth_algotrader
Eth_algotrader личный блог
Сегодня в 14:44

Новый взгляд на проблему переподгонки

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

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

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

Вроде все хорошо: винрейт подрос, эквити сгладилось. Но возникает вопрос: почему трендовая (вроде как) модель ничего не делает на участках рынка с большими трендами?

Результат выглядит лучше, только если мы считаем ошибками модели лишь ее лоси (ложноположительные результаты, или ошибки 1-го рода). Но, глядя на улучшенную форму эквити, мы не замечаем ложноотрицательных результатов (ошибок 2-го рода), или упущенных профитов. 

Они сразу бросились бы в глаза, если бы наши данные были размечены, как в машинном обучении, и тогда пропуск тренда считался бы такой же (на самом деле — еще более дорогой, ведь у трендовых систем всегда большие профиты и мелкие лоси) ошибкой, как и стоп-лосс. И мы бы увидели, что добились роста precision (винрейта) при сильной потере recall (число взятых профитов). Или, в терминах матрицы ошибок, подняли специфичность (способность различать лоси, или ошибки 1-го рода) за счет падения чувствительности (способности не упускать профиты, что является ошибкой 2-го рода). Что, вероятно, говорит о переобучении, потому что если трендовая модель не берет тренды, то, скорее всего, она потеряла обобщающую способность.

Такой подход мог бы помочь выявить, что не все сложные модели являются переобученными (и не все простые — эффективными). Было бы интересно проверить им, например, модели Майтрейда))
21 Комментарий
  • wistopus
    Сегодня в 15:18
    а если запустить систему с подстраивающимися параметрами в зависимости от состояния рынка?..

      • wistopus
        Сегодня в 15:35
        Eth_algotr ader, 
        Но это ничего не меняет. Модель все равно будет брать какой-то % лосей от общего числа. И какой-то % профитов
         трейдер без лосей как без пряника...
        фильтр низких частот не успеет перестроиться ни при каких периодах ибо никто не знает будущего...

        а вот уменьшить % лосей… даже свести оных почти  к минимуму запросто....
        но есть один нюанс — придется и прибылью частично пожертвовать…

        пн
        Баффет прав — богатеть надо медленно...
    • Matrica
      Сегодня в 17:36
      wistopus, чтобы подстраивать параметры, надо сначала разобраться, когда и как меняются эти самые параметры. Для этого надо выйти на мат. модель. А на модель выходят единицы, ввиду усвоения правильных Знаний. А выйдя на модель, можно и ручками торговать, расчеты то уже есть.
      P.S. — с индикаторами (строящие модель) естественно удобнее и быстрее.
      • wistopus
        Сегодня в 17:45
        Matrica, 
        чтобы подстраивать параметры, надо сначала разобраться, когда и как меняются эти самые параметры. Для этого надо выйти на мат. модель
        в общем-то я других способов и не знаю...
  • 22022022
    Сегодня в 15:34
    Сразу бросается в глаза переподгонка-подгонка

    Упование на то, участков типа (А) будет больше чем (В). Или «тренды» с углом 45 встретятся чаще «трендов» под 10 градусов. Или волатильность сохранится на уровне (n) в будущем. итд.

      • wistopus
        Сегодня в 15:50
        Eth_algotrader, 
        Система просто берет все подряд, что проходит базовые условия. Для некоторых систем это означает быть всегда в рынке
        опять таки влезу...
        а не надо все время быть в рынке — энто просто экономически не выгодно..

        пн
        для примера, сейчас надо быть в деньгах, а деньги на счетах… и фуй кто знает скока времени там еще надо быть…
          • wistopus
            Сегодня в 15:57
            Eth_algotrader, 
            То лонг, то шорт
            как говорил мне Сумашедший Квант, который собаку съел во время своего трейдерства тогда еще по месту своего проживания....
            — шортить в капиталистической России под такие проценты — энто забесплатно кормить своего брокера...
            • Антон Б
              Сегодня в 16:54
              wistopus, можно фьючерсы продавать на базовый актив.
          • Matrica
            Сегодня в 17:26
            Eth_algotrader, торгуйте модель, она на рынке одна. И во время тренда, и во время флета.
              • Matrica
                Сегодня в 17:52
                Eth_algotrader, если убрать все циферки, то визуально получите модель. Или модель в модели, т.к.процесс на рынке непрерывный. А вот как искать эти правильные пропорции (они не в процентах считаются), каждый докумекивает сам.



  • SergeyJu
    Сегодня в 17:49
    Сама разметка уже элемент подгонки. 
  • Replikant_mih
    Сегодня в 19:06

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

    2. Ложно отрицательные  как мера робастности и переподгонги. Идея интересная, но не думаю, что там что-то есть. Детали раскрывать не буду). 

      • Replikant_mih
        Сегодня в 20:45

        Eth_algotrader, 
        1. Робастность модели и метрики качества (обычно это трейдерские — PF, winrate и т.д.) на бою, на OOS или где угодно — для меня это две разные вещи. Метрики качества — по сути это метрики в моменте, а робастность — про то, с какой вероятностью ты такие метрики сможешь в будущем увидеть :).

         

        2. Технично обсудили)).

         

        На самом деле пару раз замечал, как стратегия не берет прям забористые тренды из-за дурацкого фильтра. Думал, что сделать. Менял фильтр так, чтобы брало. И вуаля — на других участках тоже становилось сильно лучше!

         

        «Пару раз замечал» обычно путь к подгонке. Ну вернее стриггерить рисёч можно и «пару разами», но понимать что работает, что нет — через рисёч, ну или хотя бы расширить «пару раз» до большего кол-ва раз.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн