Блог им. AleksandrBaryshnikov

Метрики оценки Equity для тестов

    • 22 августа 2023, 14:51
    • |
    • bascomo
  • Еще
Поскольку торговых систем у меня много, то мне нужно каким-то образом отбирать из них лучшие. Я, кстати, решил перестать использовать слово «стратегия» и заменить его словом «система». Это более точно, поскольку стратегия — это нечто неформальное, и если это формализовать в жёсткие правила, то получим уже систему. Вопросы терминологии и однозначного понимания понятий важны потому, что большинство конфликтов и искажений в коммуникации происходит из-за недопонимания или иного трактования сложных понятий.

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

Итак, на что я смотрю:

Метрики использования капитала (эффективность использования торгового времени).
Позволяют мне отбросить системы, которые постоянно сидят в рынке или наоборот, слишком редко осуществляют сделки.
  • % дней, в которые совершались сделки, по отношению к общему числу торговых дней
  • % времени в рынке — суммарное время в сделках по отношению к общему торговому времени
Метрики эффективности системы
Позволяют мне отбросить системы, где слишком велика доля комиссии в прибыли — такие системы неустойчивы. Показывают, каких вершин достигала  или как низко падала Equity за всё время тестов, и отбросить те, где значения не находятся в доверительном интервале. Позволяют кластеризовать стратегии по доходности и сосредоточиться на тех, которые соответствуют норме прибыли. Позволяют оценить гладкость Equity и стабильность системы во времени. Позволяют геометрически оценить интенсивность роста дохода. Позволяют сравнивать профили разных Equity между собой.
  • средняя комиссия на единицу прибыли
  • максимальная достигнутая прибыль (реализованная и нереализованная)
  • абсолютная, максимальная реализованная, относительная реализованная, накопленная реализованная и нереализованная просадка
  • доходность в % среднедневная, среднемесячная, среднегодовая
  • SMAPE и RQ
  • Коэффициенты A и B из МНК
  • Avg Square Negative Values — отклонения от усреднённой прямой Equity вниз
Методики использования метрик мне кажутся очевидными, как и их достоинства и недостатки, но могу в комментариях дополнительно разъяснить, если будут конкретные вопросы.

Ещё есть само значение прибыли, но оно не показательно, поскольку абсолютно. Для временных рядов, коим является Equity, меня интересует тренд, тенденция и динамика, и одной абсолютной цифрой его оценить невозможно.

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

А во-вторых, они должны быть нормированы (приведены) к единой гранулярности. Это буквально значит то, что некорректно сравнивать эти метрики между собой, если они посчитаны на уровне сделок, поскольку число сделок за один и тот же временной период для различных систем, как правило, отличается. Нужно считать на днях или часах, например — то есть, вначале привести разные Equity к одной размерности, а затем сравнивать, иначе получится красное с холодным.

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

И об этой технике, что я использую для отбора лучших стратегий, которые отправлю в бой, я расскажу в следующий раз.
★5
14 комментариев
Я делал исследование по критериям отбора. Брал период тестов до 3-5 лет, начиная с 2009го и торговал виртуально год после. Систем было много, более 1000 вроде.
В итоге, пришел к такому результату:


avatar
ig — итог по году в %
ig/DD тоже процент на процент
W L — кол сделки в плюс минус
Внизу Ср.зн. это средняя годовая прибыль отобранных 20 систем без плечей.

Ну т.е. 8*3 плечо это 24% годовых из тупых систем, сгенерированных компом, без участия человека с учетом этого правила отбора. 

ТФ тут 15 мин, с дневным и часовым есть различия, но не существенные
avatar
T-800, 

T-800, а как вы три критерия в одну формулу сводите?
igDD, ig>xx, W+L>50?

когда-то давно пришёл к выводу что лучший результат достигается при оптимизации NetProfit (при наличии большого количества сделок)

avatar
EY, изначально я генерировал тысячи систем, состоящих из двух индикаторов и брал топ 20 по критерию годовая прибыль за 3 года% / макс ДД % и смотрел какую среднюю годовую прибыль эти 20 систем дадут в след год и так сдвигал окно отбора и OOS на год, выбирал следующие 20 и след год проверял с ними. Все это делал для ликвидных фьючей.
Причем, что это за системы я не разбирался и параметры не оптимизировал. Просто 2 индикатора были из двух таймфреймов в перемешку 15 мин и 1d. Индикаторов было примерно 70, т.е. каждый прогон по каждому тикеру это 4900 случайных систем.
Среднегодовая доходность по этому критерию отбора топ 20 из 4900 по igDD на таких тестах за 10 лет составила 4.6% без плечей.
Но если к этому критерию добавить условие отбора, чтобы кол сделок было более 50 и годовая прибыль на отборе была больше, например 20% (для каждого стикера свое значение), то результат такого отбора возрастает в два раза до 8.89% годовых без плечей.

Что касается кол во сделок, то мои тесты показали, что должно быть не менее 30, лучше 50, при 100 сделках и выше результат не отличается от 50. Тут надо понимать, что системы сравнивались в которых был так же один или два дневных индикатора.
avatar
При этом такие критерии отбора все годы закрыли в плюс. Про просадки прокомментировать не смогу, допускаю, что где-то были существенные. Но если тучшие топ 20-50 ещё оптимизировать, или вручную дорабатывать, то результаты еще улучшатся.

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

Сейчас нужно эти тесты переделать и в методику внести существенные изменения.
avatar
EY, а вот NetProfit, разве не аналог Средне годовой прибыли в %. Почему использую среднегодовую, а не просто за весь период. Потому что в множестве результатов тестов могут попасть тесты за разные интервалы, например за 3 и 5 лет. Поэтому привожу к одному году.

Результат по среднегодовой прибыли у меня в колонке 7 со значением 5.74, что выше первого примера с igDD, но ниже второй колонки
avatar
T-800, спасибо за ответы. Вы писали свой генетический оптимизатор чтобы генерить стратегии? По моему мнению, абстрактные индикаторы не покажут прибыль вне выборки, странно что у вас положительные результаты.
Оптимизация по NetProfit совпадёт с отимизацией по среднегодовой прибыли.
Если делить на просадку, то просадка неустойчивая величина, на этапе оптимизации подберутся коэффициенты чтобы максимальная просадка снизилась. Пробовал также делить на максимальную просадку в небольшой степени. В итоге остановился на NetProfit
avatar
EY, спасибо за ответы. Вы писали свой генетический оптимизатор чтобы генерить стратегии?

Да, но на практике я его так не использую как описал выше и как это делает boscomo. потому-что прибыль невысокая (хотя и указана без плечей).

Сейчас я его использую следующим образом:
К базовой стратегии, например, пересечение МА на ТФ 5мин я запускаю перебор стратегий, который к МА добавляет второй индикатор, например RSI, Momentum, время входа, и.т.д. Причем второй индикатор может быть не только на ТФ 5мин, но и на дневках (глобальный тренд). В итоге  на автомате получаю 70+70 систем (вместо 4900), которые легко отобрать вручную. И так перетряхиваю раз в полгода.
avatar
T-800, что значит W + L > 50?
avatar
EY, W+L>50, это общее количество сделок плюсовых и минусовых должно быть не менее 50. Просто в базе данных с тестами систем я храню вместо трех метрик кол вин, кол лос и всего сделок, только первые две. Поэтому всего сделок приходится считать.
avatar
T-800, например пробовал оптимизировать по коэффициенту Сортино, вне выборки явно было хуже
avatar
Сейчас нужно актуализировать исследование. Если идеи подкинете, по каким критериям отбирать, сделаю в сентябре, поделюсь.
avatar
T-800, тут ещё и важно, как именно отбирать — напишу об этом следующий пост.
avatar
bascomo, да, верно. Я все это поставил на научную основу. ПО для такого исследования у меня есть. Единственно, мои последние тесты были от 2019 года. Сейчас нужно повторить на периоде, наверное после СВО, но это мало. Нужно взять полтора года после СВО и 2-3 до.
Предлагаю совместно это протестить
avatar

теги блога bascomo

....все тэги



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