В этом посте:
- как рассчитать максимальную теоретическую прибыль по инструменту (оптимальный торговый путь)
- как оценить устойчивость индикаторов к шуму
- как оценить приведённую эффективность своей стратегии и её слабые места
- как оценить устойчивость стратегии к шуму
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 вышеприведённые метрики:
- совпало,
- совпало со знаком «минус»,
- должно быть, но отсутствует,
- не должно быть, но присутствует
С большой вероятностью, тут цифры будут куда печальнее, чем в случае индикаторов.
Но зато теперь у вас есть цель, к которой можно стремиться и ещё один подход, которым можно совершенствовать свои алгостратегии.
В чём я вам желаю успеха!
определения потенциальной доходности...
Индикатор ZigZag – действительно полезный инструмент, но у него есть свои ограничения, так как он скорее рассказывает инвестору о прошлом цены актива, нежели чем о его будущем. Последняя часть зигзага всегда будет меняться, поэтому лучше использовать его как способ тщательного изучения тренда или наблюдения за его развитием.
если в будущее не смотреть то да зигзаг постоянно пересчитывается и торговать по нему нельзя
верное примечание… ZZ это перезаписываемй индикатор. Строить на нем системы и прогнозировать не рекомендуется
Ничто не мешает и зигзаг строить аналогично.
-----
кстати, чисто математически сумма движений по наилучшим точкам, найденным за конкретное время и найденным за произвольное время — не одинаковые величины. Особенно, вспоминая о комиссиях. Меньше входов при прочих равных — выше общая идеальная длина движений.
1) Ниже Вы что-то непонятное ответили на пример, как Вы в другом топике к длительности тестов переключали внимание, когда речь об адаптивности шла. А пример ничем не хуже того, что Вам не нравится когда зигзаг приплетают к вашим свечам.
2) Вы поставили задачу найти наилучший результат для данного графика с учётом как бы входов с комиссиями? Я Вам указал, что ваш метод искать его среди пакетов свечей с равным количеством в пакете не решает этой задачи. Вы не понимаете, к пунктам отсылаете. Число сделок тут НЕ есть основной посыл. Просто замечание по ходу. Основной посыл — пакеты с переменным количеством свечей (то бишь зигзаг) даст бОльшую прибыль по данному графику, чем в вашем методе. То есть Вы решили вашу же задачу неверно.
Вот Вы простыню внизу разместили, думаете кого-то ей убедили? Без подробных объяснений как этим пользоваться она бесполезна. И излишня в этом обсуждении. Если разбираться, то по шагам и в соответствующей аудитории.
От этого подхода отказался.
Теперь иду от портфеля. Система хороша, если её добавление улучшает портфель систем и сама она при этом более-менее приемлема для самостоятельной торговли. Ну, например, Шарп больше 1.
берешь зигзаг и тестишь все...
Но я пока не знаю ответа на вопрос, сколь долго сохраняется в среднем эта «хорошесть».
надо торговать все без разбора :)
ТС собственно и предлагает использовать ZigZag, сам того не понимая. Запудрил себе мозги какими-то барами…
бугага… такое ощущение что я вернулся на двадцать лет назад и читаю опусы о том, как с помощью зигзага сделать состояние… пипец
И на самом деле так и есть в схеме: берёте максимально длинные безоткатные движения и для них такие признаки есть. А мелкие и средние движения отбрасываете — там шум.
Ваш подход куда более непривычный и, в некотором смысле, более сложный. Возможно, более мощный.
Я описал свой подход, подход ves2010 тоже понятен и имеет отличный потенциал. И вообще, все о своем, о девичьем. И это нормально.
Следуем за большими деньгами.Под графиком это в виде вертикальных черточек.
В вашем бенче (напоминание для некоторых: это не стратегия, это эталон, с которым стратегию сравнивают) уже сходу 2 подстроечных параметра — минимальная длина (5 баров) и комиссия. Два параметра — это немало, это не добавляет устойчивости процессу сравнения стратегий.
В очередной раз прорекламирую гораздо более простой бенч, предложенный @Buybuy:
Trend = Sign(Next(Close) — Close);
Получившийся вектор из {-1;0;1} можно подать на то исполнение, которое используете — с комиссиями, проскальзываниями, итд итп.
Интересно было бы узнать, как ваш бенч соотносится с этим. Ваш реализовывать лень :), ну а подглядывание вставить в любой бэктест нетрудно.
P.S. Запись вида @name означает ник пользователя смартлаба. Нетрудно догадаться, что бай-бай — это не название стратегии, а указание авторства, которое принадлежит не мне.
И Вам до сих пор не понятно, что нет никакого 'в отличиЕ'?
Оба метода имеют по одному параметру.
Ааааааааа...
Пилять, почти 100 камментов, из которых 2/3 с пеной у рта доказывают автору что торговать зигзаг нельзя.
Автор, вам явно не удалось донести свою мысль до большей части аудитории.
Доказывающим что торговать зигзаг нельзя: автор не торгует и не пытается торговать зигзаг. Попробую разжевать: при помощи псевдо-зиг-зага он смотрит всю историю вперед и СОБИРАЕТ ИДЕАЛЬНЫЕ СДЕЛКИ, которые только могут быть на графике. И которые он потом сравнивает со своими реальными, чтобы понять насколько его система неидеальна. Компрендо?
Это понять можно. Позже воспримет.
@ves2010 парой фраз всю работу отправил коту под хвост
люди уже миллиарды на этом заработали и никому не рассказывают, зачем палить грааль
вы легко можете самостоятельно получить такую эквити. Для этого вам потребуется только линейка. Нарисуйте прямую линию от 0 вправо-вверх под углом чуть меньше 90%. Эквити зиг-зага готова. Не благодарите.
Дмитрий Овчинников, при рисовании зигзаг эквити поверх эквити от зикзак стратегии вправо заглядывать запрещено.
PS А «вправо-вверх» в военное время бывает и 90%? ;)
Пояснения: если buy weight >> к 100%, это отличный индикатор для покупок, если buy weight >> к 0% — для продаж
И чем выше buy accuracy, тем точнее срабатывает
лучший выбор:
Идеален для продаж, но работает абсолютно неточно.
это значит, что этот индикатор не совпал ни с одним входом или выходом, ну чисто генератор случайных чисел)
но их немножко
Как видно из данных, какие-то сигналы лучше и качественнее для лонгов, а какие-то — для шортов.
Я хотел сначала классифицировать сигналы, чтобы отобрать лучшие и определить направление, для которого их применять, потому что сигналов было очень много и меня не слишком устраивала производительность.
Но потом я перешёл к полностью случайной генерации как набора сигналов, так и их типов.
на самом деле, автор умолчал о самом популярном способе проверке сигналов )))
«Раз, два… Меркурий во втором доме… Луна ушла… Шесть — несчастье… Вечер — семь...» — это классический универсальный вариант сигнала…
и многие наверняка догадаются в какую сторону
а то всё зигзаги какие-то!!
классика! нет ничего лучше классики © к/ф Неудержимые-2
P.S. Приступил к торговле зикзаком. Подписывайтесь на мой канал! Первым 5 подписавшимся самосвал экоудобрений в подарок!
Студент сдает зоологию. Знает только про блох. На экзамене
достается вопрос про собак. Судент начинает:
— Собаки это млекопитающие, покрыты шерстью. В шерсти водятся блохи...
дальше все про блох....
Препод:
— Ладно молодой человек, расскажите про кошек Студент:
— Кошки это млекопитающие, покрыты шерстью. В шерсти водятся блохи...
дальше все про блох....
Препод:
— Давайте-ка про рыб Студент:
— Рыбы это не млекопитающие. Шерстью не покрыты. Покрыты чешуей, но если
бы они были покрыты шерстью, то в ней бы водились блохи....
В этом уверены только те, кто кроме зигзага ничего не знают и не умеют. Особенно смешно читать про эталон. Мне не зачем сравнивать свою стратегию с зигзаком на истории если в реале он потом перезапишется и покажет результат лучше моей стратегии. А некоторые будут верить, что правильно вошли в сделку. Даже в старом метастоке есть формулы для определения не перезаписываемых хаев и лоев.
Более двадцати лет прошло а все находятся упоротые, которые верят, что с помощью зигзага смогут настроить свою систему. Тем лучше… они приходят на рынок, чтобы отдать другим свои депозиты
это евродоллар несколько лет назад. в идеале чтобы получить максимальный профит надо там, где горки- продать, а там, где ямки- купить. вот с этим дальше можно работать
чувак, ты не понимаешь слов, очевидно ты рождён для страданий.
Блин, никто так и не добился успеха в объяснении агрессивным хейтерам зигзага о чём тут речь. Налицо явный педагогический провал.
Я, пожалуй, сделаю ещё одну попытку:
1. Нарисуйте ваши реальные сделки на графике удобным вам способом. Как вы решили войти в сделку ваше дело — хоть по наитию, хоть алгоритмом, хоть как, в общем не важно.
2. Нарисуйте на том же самом графике идеальные по вашему мнению сделки поверх ваших. Как — не важно, хоть линейкой и фломастером, хоть алгоритмом.
У вас скорей всего получится что-то такое, как на картинке (три реальные сделки — те которые со стрелочками, три идеальные — входы и выходы желтыми кружочками соответственно реальным):
3. Сосчитайте прибыль по вашим сделкам и прибыль по идеальным и сравните их. Очевидно что на моей картинке прибыль по идеальным сделкам выше.
4. А теперь представьте себе, что желтые точечки автор рисует при помощи алгоритма зигзаг (хотя мог и фломастером), считая эти точечки максимально возможной прибылью на данном участке графика, неким эталоном для оценки своей реальной торговли.
5. Если мне удалось объяснить суть поста и вы наконец всё поняли, то наверное заметили, что зигзагом никто не пытался торговать. Мы его просто использовали вместо фломастера.
Компрендо?