В этом посте:
- как рассчитать максимальную теоретическую прибыль по инструменту (оптимальный торговый путь)
- как оценить устойчивость индикаторов к шуму
- как оценить приведённую эффективность своей стратегии и её слабые места
- как оценить устойчивость стратегии к шуму
1 Оптимальный торговый путь
Я торгую разными инструментами на разных рынках и часто задавался вопросом, имеющим и некоторое прикладное значение: если бы мне были известны цены заранее, сколько бы я смог заработать? Тут мне видится два подхода: простой и топорный, и чуть более сложный, который я реализовал.
Простой подход заключается в том, что нужно взять [high-low] каждой свечи и отнять комиссию (другой вариант abs[open-close] минус комиссия). Сумма за период и даст максимально возможную доходность по инструменту на данном таймфрейме за рассматриваемый период. Однако, понятно, что так в реальности никто не торгует, поэтому применимость такого варианта, на мой взгляд, сомнительная.
Более того, это вопрос для меня комплексный, и среди основных ценностей, которые я хотел получить — это не только теоретическая возможная доходность. Мне нужно было найти лучшие точки входа и выхода на истории.
Во-первых, затем, чтобы по ним смоделировать сделки и получить максимальную теоретическую доходность.
Во-вторых, чтобы посмотреть, какие индикаторы и насколько запаздывают и/или дают ложные сигналы.
И, в-третьих, чтобы, прогнав работу своих торговых алгоритмов, своих стратегий, сравнить их с оптимальным торговым путём буквально по точкам входа-выхода. Зачем это нужно, расскажу далее.
Устоявшаяся, как мне кажется, оценка стратегий состоит в том, чтобы смотреть на различные коэффициенты, например:
- Шарп или Сортино,
- просадки (абсолютная/относительная/нереализованная),
- достигнутой прибыли,
- квадратов отклонений,
- прибыли на сделку,
- приведению доходности к году относительно первоначального депозита
и так далее. Но что они все есть, если у нас нет бенчмарка? Ну будет Шарп 3, а какой лучший Шарп на том же инструменте/таймфрейме и за тот же период возможен? Мы не знаем. У нас нет бенчмарка. У нас нет цели. Мы не знаем, куда в идеале можно было бы дойти. Мы руководствуемся тут нашей внутренней чуйкой, интуицией, ощущениями. А когда у человека нет плана, нет цели, он будет ехать всю жизнь, но так и не приедет в нужное место, ибо не знает, куда. Цель очень важна, как и план.
Поэтому я поступил иначе и из изложенного выше, наверное, уже понятно, как. На исторических данных я разметил лучшие точки (бары) для входов/выходов. Тут нет высшей математики и очевидно, что это просто локальные экстремумы, по цене отстоящие друг от друга больше, чем размер комиссии. Это, собственно, первое условие. А второе условие состоит в том, чтобы при выбранной минимальной длине одной сделки в барах, которую задаю я, за весь исследуемый период у меня не получилось ни одной убыточной сделки. На исторических данных этого добиться не сложно.
Сам алгоритм состоит в следующем:
- Сначала для каждого бара я задаю вес для лонга и вес для шорта = 0
- Я устанавливаю первоначальную минимальную длину сделки, например, 5 баров.
- Точкой входа беру первый бар.
- Для каждого бара до 5-го считаю прибыль для длинной и короткой сделки.
- Бар, на котором прибыль окажется максимальной, и есть точка выхода.
- Тип сделки определяется тем, максимальная прибыль оказалась для длинной сделки или короткой.
- Увеличиваю веса лонг или шорт для баров входа и выхода в зависимости от того, какая получилась сделка, на 1.
- Следующей точкой входа будет бар выхода, и с тем же окном в 5 баров я повторяю процесс.
- Делаю так до последней свечи.
- Дальше увеличиваю первоначальную длину сделки на 1 и повторяю весь процесс с пункта 3.
- Когда длина сделки достигнет значения 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 вышеприведённые метрики:
- совпало,
- совпало со знаком «минус»,
- должно быть, но отсутствует,
- не должно быть, но присутствует
С большой вероятностью, тут цифры будут куда печальнее, чем в случае индикаторов.
Но зато теперь у вас есть цель, к которой можно стремиться и ещё один подход, которым можно совершенствовать свои алгостратегии.
В чём я вам желаю успеха!
определения потенциальной доходности...
От этого подхода отказался.
Теперь иду от портфеля. Система хороша, если её добавление улучшает портфель систем и сама она при этом более-менее приемлема для самостоятельной торговли. Ну, например, Шарп больше 1.
Автор НЕ ТОРГУЕТ зигзаг, а использует его для посмертного анализа. Хороший хирург не только больных режет, но иногда и по трупам пройтись может.