bascomo
bascomo личный блог
27 июля 2023, 10:09

Универсальная оценка ваших стратегий

В этом посте:
  • как рассчитать максимальную теоретическую прибыль по инструменту (оптимальный торговый путь)
  • как оценить устойчивость индикаторов к шуму
  • как оценить приведённую эффективность своей стратегии и её слабые места
  • как оценить устойчивость стратегии к шуму

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

Простой подход заключается в том, что нужно взять [high-low] каждой свечи и отнять комиссию (другой вариант abs[open-close] минус комиссия). Сумма за период и даст максимально возможную доходность по инструменту на данном таймфрейме за рассматриваемый период. Однако, понятно, что так в реальности никто не торгует, поэтому применимость такого варианта, на мой взгляд, сомнительная.

Более того, это вопрос для меня комплексный, и среди основных ценностей, которые я хотел получить — это не только теоретическая возможная доходность. Мне нужно было найти лучшие точки входа и выхода на истории.
Во-первых, затем, чтобы по ним смоделировать сделки и получить максимальную теоретическую доходность.
Во-вторых, чтобы посмотреть, какие индикаторы и насколько запаздывают и/или дают ложные сигналы.
И, в-третьих, чтобы, прогнав работу своих торговых алгоритмов, своих стратегий, сравнить их с оптимальным торговым путём буквально по точкам входа-выхода. Зачем это нужно, расскажу далее.

Устоявшаяся, как мне кажется, оценка стратегий состоит в том, чтобы смотреть на различные коэффициенты, например:
  • Шарп или Сортино,
  • просадки (абсолютная/относительная/нереализованная),
  • достигнутой прибыли,
  • квадратов отклонений,
  • прибыли на сделку,
  • приведению доходности к году относительно первоначального депозита
и так далее. Но что они все есть, если у нас нет бенчмарка? Ну будет Шарп 3, а какой лучший Шарп на том же инструменте/таймфрейме и за тот же период возможен? Мы не знаем. У нас нет бенчмарка. У нас нет цели. Мы не знаем, куда в идеале можно было бы дойти. Мы руководствуемся тут нашей внутренней чуйкой, интуицией, ощущениями. А когда у человека нет плана, нет цели, он будет ехать всю жизнь, но так и не приедет в нужное место, ибо не знает, куда. Цель очень важна, как и план.

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

Сам алгоритм состоит в следующем:
  1. Сначала для каждого бара я задаю вес для лонга и вес для шорта = 0
  2. Я устанавливаю первоначальную минимальную длину сделки, например, 5 баров.
  3. Точкой входа беру первый бар.
  4. Для каждого бара до 5-го считаю прибыль для длинной и короткой сделки.
  5. Бар, на котором прибыль окажется максимальной, и есть точка выхода.
  6. Тип сделки определяется тем, максимальная прибыль оказалась для длинной сделки или короткой.
  7. Увеличиваю веса лонг или шорт для баров входа и выхода в зависимости от того, какая получилась сделка, на 1.
  8. Следующей точкой входа будет бар выхода, и с тем же окном в 5 баров я повторяю процесс.
  9. Делаю так до последней свечи.
  10. Дальше увеличиваю первоначальную длину сделки на 1 и повторяю весь процесс с пункта 3.
  11. Когда длина сделки достигнет значения 1440 (минутные бары, = 24 часа), останавливаю процесс.

Теперь у меня у каждой свечи есть вес лонг и вес шорт, и свечи с максимальными весами — это и есть лучшие точки входа и выхода для данного инструмента, и сделки по ним — это и будет оптимальный торговый путь для данного инструмента.
ВАЖНО, чтобы прибыль в данном алгоритме учитывала комиссию.

Остаётся вопрос того, что веса будут разными, в зависимости от того, как часто тот или иной бар использовался для лонга или шорта, открытия или закрытия. Ещё один вопрос состоит в том, что для некоторых баров будет вес и лонговый, и шортовый, просто что-то будет больше.
Но это лёгкие задачи и тут я их рассматривать не буду.

Устойчивость индикаторов к шуму

После того, как я таким способом рассчитал оптимальный торговый путь, а правильнее сказать — вычислил лучшие свечи для совершения сделок, я могу наложить поверх сигналы, которые даёт тот или иной индикатор. Чтобы не усложнять, буду говорить о сигналах по классическим трейдерским представлениям. Рекомендации о принятии торговых решений по каждому индикатору есть в описании, возьму что-нибудь простое. Например, RSI. Упрощая, про этому индикатору мы должны продавать, если он больше 70, и покупать, если он меньше 30. Поскольку это мне даст слишком много точек совершения сделок, я добавлю дополнительное условие: когда RSI находился в зоне 70+, перевернулся и направился вниз, продаю. И зеркальное правило для зоны 30-.

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

И дальше мы можем рассчитать его точность и подверженность его шуму.

Нам нужно посчитать число баров, на которых:
  • (a) указание оптимального торгового пути и индикатора о совершении сделки совпадает, а так же совпадает её направление
  • (b) указание оптимального торгового пути и индикатора о совершении сделки совпадает, но направление противоположно
  • © по оптимальному торговому пути нужно совершить сделку, но индикатор молчит
  • (d) индикатор рекомендует совершить сделку, но в оптимальном торговом пути её нет

Ну и теперь считаем метрики:
  • точность индикатора, % = (a) / ((a) + (b) + (d)) * 100%
  • зашумлённость индикатора, % = ((b) + (d)) / ((a) + (b) + © + (d)) * 100%
Теперь, оперируя этими метриками, можно сравнивать между собой те или иные индикаторы и качество их работы, и сконцентрироваться на лучших из них.

Сдвиги баров

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

А поэтому, когда я сравниваю указания торгового пути и индикаторов, я это делаю, смещая их побарно относительно друг друга.
Существенным тут является смещение от -3 до +3 от бара, на котором рекомендуется сделка. Я имею ввиду, что мне интересно посмотреть, а что рекомендовал индикатор за 1-2-3 бара до самого лучшего момента входа в сделку и через 1-2-3 бара после него.
Когда я эту статистику первый раз посмотрел, мои представления о трейдинге и о логике перевернулись.
Часть открытий я не смог объяснить и просто принял их, как данность, но общее среди них звучит примерно как «посмотри, что рекомендует индикатор и делай наоборот». Справедливости ради скажу, что такое относится к меньшей части индикаторов, но факт, тем не менее, налицо.

Оценка эффективности стратегии

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

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

Устойчивость стратегии к шуму

Аналогично тому, как это делалось для индикаторов, можно посчитать, насколько стратегия соответствует торговому пути и наилучшим ли образом она принимает решения о сделках. Для этого нужно сравнить точки входа по оптимальному пути и точки входа стратегии, так же рассчитав 4 вышеприведённые метрики:
  • совпало,
  • совпало со знаком «минус»,
  • должно быть, но отсутствует,
  • не должно быть, но присутствует
С большой вероятностью, тут цифры будут куда печальнее, чем в случае индикаторов.

Но зато теперь у вас есть цель, к которой можно стремиться и ещё один подход, которым можно совершенствовать свои алгостратегии.

В чём я вам желаю успеха!
181 Комментарий
  • ves2010
    27 июля 2023, 10:13
    есть индикатор зигзаг… он смотрит в будущее и как раз для таких случаем...
    определения потенциальной доходности... 


  • SergeyJu
    27 июля 2023, 10:20
    Пробовал похожий подход в таком варианте. Строил  зигзаг. Вычислял характеристики системы, построенной по  подглядывающему вперед зигзагу и по системе. Одно с другим сравнить несложно. Замечу, что зигзагов много можно построить, я старался примерно выравнять число сделок в окне системы и зигзага. 
    От этого подхода отказался.

    Теперь иду от портфеля. Система хороша, если её добавление улучшает портфель систем и сама она при этом более-менее приемлема для самостоятельной торговли. Ну, например, Шарп больше 1.
  • Тимофей Мартынов
    27 июля 2023, 10:37
    Makstrade, чтобы не перезаписывался, нужно его правильно рисовать :)

  • SergeyJu
    27 июля 2023, 10:46
    Makstrade, если у меня глубина анализа 5 000 баров, а зигзаг переписывается последние 10 баров, то это та самая проблема, с которой никому уже не справиться. И никогда.
    Автор НЕ ТОРГУЕТ зигзаг, а использует его для посмертного анализа. Хороший хирург не только больных режет, но иногда и по трупам пройтись может.

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

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