fxsaber
fxsaber личный блог
28 января 2022, 01:22

Уменьшаем выборку - увеличиваем стат. значимость?

Торговый робот должен (условно) удовлетворять следующим условиям:

 

  • Совершать достаточно много сделок на интервале настройки (оптимизации).
  • Показывать столь же стабильный результат вне интервала оптимизации.

 

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

 

Критерий оптимизации.

 

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

Поэтому при настройке ТС стараются задавать либо абсолютное минимальное количество сделок, либо удельное (на единицу времени). Это позволяет сразу выкидывать из рассмотрения пусть и неплохие на неискушенный взгляд, но менее стат. значимые результаты. Заодно уводя эвристические алгоритмы оптимизации в нужном направлении.

 

Анализ сделок.

Казалось бы, много сделок — неплохо. Проходит OOS — хорошо. Запускать на реал? Большинство так и поступает.

 

Однако, можно наделить сделки некими свойствами (числовые значения) и посмотреть, сколь близки они друг к другу. Если окажется, что несущественная часть сделок сильно отличается по свойствам от остальных, то на такие сделки налагается ярлык неблагонадежности. И несмотря на их хороший положительный вклад в общий результат, ищется фильтр для их отсева.

 

Свойства.

Что же может служить свойством сделки? Это могут быть любые числовые показатели на момент открытия сделки. Любые — все, что можете придумать и посчитать. Да, это странно звучит, но при наличии только сделок другой подход исключен. Может быть заранее подготовленный набор таких свойств для создания на их основе проверки гипотезы стат. значимости.

 

Правда, авторам роботов, как правило, значительно легче, если робот основывается не на машинному обучении. Т.е. тогда, когда робот не представляет из себя BlackBox.

 

Индикаторы.

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

 

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

 

Пространство.

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

 

Пример.

500 сделок. Общая картина великолепна. Зададим каждой сделке свойство в виде значения средней — EMA. Получаем, что для 90% сделок EMA находится в интервале [5; 7], а для 10% — [12; 20]. Общая сфера [5; 20] — диаметр 15. Но если выкинуть 10%, то сфера сужается до [5; 7] — диаметр 2.

 

Это существенное изменение размера сферы, поэтому пытаемся избавляться от подобных сделок: если на момент принятия решения о совершении сделки EMA выходит за пределы узкой сферы, не совершаем сделку. Т.е. создаем фильтр.

 

Черный лебедь.

Именно отсутствие учета таких залетных сделок заметно увеличивает вероятность поймать существенные убытки в реальной торговле. Заметьте, что они могут показывать очень хорошие результаты на бэктестах, проходить OOS, но от этого их рисковая составляющая не уменьшается.

 

Кирпичи ТС.

Может оказаться, что сделки можно разделить на несколько узких сфер — задача классификации. В таком случае ТС представляется, как случайно получившийся портфель из более простых ТС. И каждый такой кирпич рассматривается далее отдельно.

Сделки-отщепенцы бэктестов — это не кирпичи ТС.

 

Оптимизация.

В критерий оптимизации желательно добавлять фильтр подобной стат. значимости сделок, который выдавал бы результат только на основе сделок после фильтра. Т.е. фильтрация встраивается в сам критерий, а не задается отдельно, как часть ТС.

 

Велосипед.

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

56 Комментариев
  • ICWiener
    28 января 2022, 01:29
    Каким образом задать «бенчмарк» для сделок?
      • Replikant_mih
        28 января 2022, 01:50
        fxsaber, А это гипотеза пока или реально опыт показывает, что робастность это повышает?
          • Replikant_mih
            28 января 2022, 01:59
            fxsaber, Вообще OOS норм тема, если её правильно использовать. Неправильно использовать OOS это использовать в той же воронке что и IS.

            А-ля н вход подали 1000 прогонов IS, выбрали 10% лучших, их прогнали на OOS, выбрали 10% лучших. В таком варианте IS+OOS будет не сильно лучше IS only.
      • ICWiener
        28 января 2022, 02:04
        fxsaber, так по каким метрикам формируются эти кластеры?
          • ICWiener
            28 января 2022, 02:18
            fxsaber, «Однако, можно наделить сделки некими свойствами (числовые значения) и посмотреть, сколь близки они друг к другу. Если окажется, что несущественная часть сделок сильно отличается по свойствам от остальных, то на такие сделки налагается ярлык неблагонадежности.»

            Ну какие? PF ну так понятно, что для части сделок он будет отрицательным и хорошо бы их убрать. Сделки с большой просадкой, их тоже хотелось бы порезать, но когда их начнем фильтровать, то затронем и благонадежный кластер.

            Имхо, интересным вариантом видится развитие сделки во времени. У нас есть некая ветвь, где критичные отклонения нам надо подрезать на ходу.
              • ICWiener
                28 января 2022, 02:36
                fxsaber, так ты лебедей фильтруешь, а надо их стопить.

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


                Типа ушла ветка, с течением времени, что ж надо ее остановить.
                • Replikant_mih
                  28 января 2022, 02:39
                  ICWiener, Типа в норме должна цена прирастать в сторону позы с таким-то темпом и такой-то дисперсией или типа того?
                  • ICWiener
                    28 января 2022, 16:36
                    fxsaber, в яблочко, именно это сейчас и ресерчу
                      • ICWiener
                        28 января 2022, 18:25
                        fxsaber, а я еще не читал. Посмотрю, спасибо.
                  • ICWiener
                    28 января 2022, 20:26
                    fxsaber, посмотрел — нет, у тебя не совсем такая идея. Ты фактически смотришь, что выдаст система, если вкрутить ей тейки и стопы в зависимости от  MFE/MAE и это просто подгонка. 

                    Моя же идея другая, что отношение MFE/MAE мы можем задать в качестве бенчмарка во времени для данного ряда сделок. И если сделка с течением времени выходит за определенную функцию (см. график — красная линия) мы такую сделку стопим.



                      • ICWiener
                        28 января 2022, 20:55
                        fxsaber, у тебя просто подход такой — все оптимизировать, не уверен, что это всегда правильно. Ну, а для экономии ресурсов я как раз предлагаю использовать функцию, которой резать сделки — например коренную с коэффициентом.
            • Replikant_mih
              28 января 2022, 02:30
              ICWiener, Ваще да, «любые» звучит вроде вполне конкретно)), но не понятно, что имеется в виду — как минимум речь о результатах сделки, или её предпосылках — типа да, например, соотношение тог сколько сделка максимум ходила в плюс к максимум ходила в минус за время жизни — как характеристика результата. Либо же, например, входя на пробой highest за n свечей мы вошли потому что пробился 5 свечной хай или 155 свечной. Тоже можно рассматривать как характеристика сделки. И под определение «любые» тоже вроде подпадает)).
  • Replikant_mih
    28 января 2022, 01:49
    Любопытная мысль, что-то в этом есть. Надо порисечить.

    Кстати, тут ML упоминалось как минус в данном контексте (если на нем сама стратегия), но вот чтобы искать расстояния — по факту задача кластеризации и поиск аутлаеров — как раз для ML задача.
      • Replikant_mih
        28 января 2022, 01:57

        fxsaber, Типа прогнали набор значений — выкинули аутлаеры — оценили?

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

         

        Вообще как выкидывание отличающихся можно рассматривать как вариант улучшить то что есть, можно так же, вероятно, рассматривать некоторую меру наличия и влияния аутлаеров как меру робастности. В общем ещё одна метрик оцени стратегии (ну как PF, RF и прочие).

          • Replikant_mih
            28 января 2022, 02:03
            fxsaber, Ясн, я просто оптимизацию в привычном понимании не использую поэтому для этой задачи мне не интересно).
              • Replikant_mih
                28 января 2022, 02:13
                fxsaber, smart-lab.ru/blog/730827.php — это в этом посте и есть про поиск закономерностей? Там чуть сложно понять, о чем речь. Но, видимо, в том числе про выявление изюм среди разных стратегий, в том числе который находятся где-то в интернете в бесплатном доступе или типа того.
                  • Replikant_mih
                    28 января 2022, 02:24
                    fxsaber, А, поиск закономерностей на основе параметризованной стратегии — речь о описке закономерностей взаимодействия параметров стратегии, влияния параметров на метрики качества стратегии — об этом речь?
  • Олайвир Стокс
    28 января 2022, 02:36
    не будет ли проблемой не ясность по какому принципу совершались сделки?
    либо в базисе этого принципа ошибка?
      • Олайвир Стокс
        28 января 2022, 02:46
        fxsaber, 
        кажись понял ответ 
        имею в виду, вот выбрал индикаторы всё такое, а если в этом выборе ошибка, по какому принципу всё это выбирается?
          • Олайвир Стокс
            28 января 2022, 02:53
            fxsaber, 
            спасибо, и за тему
            здорово бы как нить упоминуть как проще найти инструменты для анализа данных, как задавать принцип отсева для сделок, как данные в этот анализ заливать — связанное с использованием этих инструментов, либо ссылку названий на них, документация должна же быть 

            открытый код на эти инструменты?

  • svgr
    28 января 2022, 07:35
    Надо учитывать, что «кирпичи» влияют друг на друга, и отдельно оптимизировать их не получится.
    • Replikant_mih
      28 января 2022, 08:19
      svgr, Речь о взаимодействии параметров стратегии между собой? Как это учитываете?
      • svgr
        28 января 2022, 09:32
        Replikant_mih, речь о подходе
        Может оказаться, что сделки можно разделить на несколько узких сфер — задача классификации. В таком случае ТС представляется, как случайно получившийся портфель из более простых ТС. И каждый такой кирпич рассматривается далее отдельно.

        Классификация есть, но нет разбиения на простые ТС. Их результаты зависят от общих параметров всей ТС.

        Также, думаю, что в общем случае неверно выбрасывать:
        Однако, можно наделить сделки некими свойствами (числовые значения) и посмотреть, сколь близки они друг к другу. Если окажется, что несущественная часть сделок сильно отличается по свойствам от остальных, то на такие сделки налагается ярлык неблагонадежности.

        Представим вход по ЕМА и удержание до трейлинг-стопа, который ниже ЕМА на сколько-то. Часто он достигается быстро (например, намеренными шпильками) и сделки получаются кучные по исходам. Но иногда шпилек не делают, и трейд получается длинным и большим по результату. Выбрасывать его не стоит.
          • svgr
            28 января 2022, 12:17
            fxsaber, хорошо, не так понял, значит.
          • Александр Ганов
            28 июня 2022, 04:03
            fxsaber, интересная тема, в том числе и в умных общедоступных книжках, например, у пардо, есть мысли по этому поводу, как и само обсуждение тоже интересное. Вот здесь момент не понял, почему считаете что данную сделку не надо выбросить если она будет формировать бОльшую часть результата и по сути будет являться не типичной среди всех остальных результатов. Буду признателен за раскрытие понятия «свойства сделки формируются до ее открытия» применительно к текущему контексту с длинной сделкой отстопившейся по EMA минус какое-то значение
  • wrmngr
    28 января 2022, 11:40
    Какой странный подход к снаряду. Рынок ничего не знает о параметрах ВАШЕЙ отдельной сделки. Обычно сделкой называют комбинацию цена входа плюс цена выхода с фиксированными таймстемпами. Это похоже на попытку измерить диаметр атома водорода имея на руках только школьный транспортир без градуировки
      • wrmngr
        28 января 2022, 13:37
        fxsaber, как это не о рынке? а где вы сделки делаете? на генераторе случайных чисел?
  • Михаил Табаков
    28 января 2022, 11:50
    так если страта прошла стандартный IS/OOS хотяб 70/30, то дальше ее можно попробовать нагнуть через WFO (я по крайней мере так делаю для себя) если она и его проходит более менее успешно, то уже уверенность куда больше может быть в стратегии
  • Мальчик buybuy
    28 января 2022, 12:55
    Если комиссия положительна (FX), то оптимальный торговый алгоритм не должен стремиться совершить максимальное количество сделок. Обратное верно только если у Вас средний профит со сделки (вдруг) значительно превышает комиссию (на пару порядков), но тогда Вы уже должны быть миллиардером )))

    Если комиссия отрицательна (рибейт на крипте) — тогда да, оптимальный торговый алго должен колбасить, как не в себя...

    С уважением
  • Мальчик buybuy
    28 января 2022, 12:57
    В моих исследованиях оптимум алго представляет из себя узкий шип. Ну т.е. шаг влево или шаг вправо — и вместо профита получается лосс. Так что

    1. Для его нахождения требуется что-то вроде модели рынка и весьма сложная аналитика
    2. Подобрать оптимум методом тыка — вообще без шанса...

    С уважением

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

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