Поиск оптимального стоп-лосса и тейк-профита для контр-трендовой стратегии
Дисклеймер
Статья предназначена исключительно для информационных целей и не является советом по инвестициям или рекомендацией к действию.
В поисках оптимального стоп-лосса
Допустим, у нас есть рабочая контртрендовая стратегия с горизонтом прогноза на несколько минут или даже меньше. Торговать без стоп-лосса или тейк-профита опасно: вдруг робот зависнет перед закрытием сделки по истечении срока экспирации, или возникнет нестандартная ситуация на рынке, и цена сильно уйдет не в нашу пользу. Так что наличие стоп-лосса и тейк-профита в торговле точно лучше, чем их отсутствие, хотя для работы стратегии достаточно просто закрывать сделку через заданное время.
Осталось лишь понять, как найти оптимальные стоп-лосс и тейк-профит для контр-трендовой стратегии?
В качестве примера будем рассматривать результаты тестирования одной реальной стратегии на участке истории с 2017 по конец 2019 года. Краткая характеристика проводимого теста:
- Стратегия использует три валютные пары
- Стратегия прогнозирует на одну минуту вперед
- Все настройки индикаторов для всех пар одинаковы
- Кредитное плечо 300
- Котировки Roboforex ECN
Для первого теста стоп-лосс и тейк-профит не используется, потому что мы их и не знаем. График баланса представлен ниже.
Решение в лоб
Первое, что приходит в голову, это построить график зависимости прибыли и максимальной относительной просадки от стоп-лосса. Возможно, что данные графики подскажут оптимальное решение.
Важно: 1 пункт - это изменение цены на 0.00001 (пятизначные котировки)
Видно, что существует оптимальный стоп-лосс, если мы минимизируем уровень относительной просадки. Тогда оптимальный стоп-лосс исследуемой стратегии равен примерно 25 пунктам (*для участка истории на 2017-2019 годах).
Но действительно ли это прибыльный уровень стоп-лосса? Проведем тестирование на истории уже с учетом стоп-лосса и получаем следующий график:
Тест проходил с учетом сложного процента. Размер позиций вычислялся по Критерию Келли.
Спойлер: это не лучшие результаты для данной стратегии:
- Профит за весь период теста составил 37340$
- Профит-фактор уменьшился до 1.798 (для данной стратегии он может быть больше 2.0 и доходить до 3.0)
- Максимальная относительная просадка составила 11.7%
Искать уровень стоп-лосса через минимизирование просадки - не лучшее решение. Тогда остается один вариант - не мешать стратегии закрывать сделки по истечении времени экспирации. Но в этом случае из-за большого разброса колебания цены внутри открытой позиции встает вопрос: как найти такой уровень стоп-лосса, который подойдет в 99% случаев и не будет учитывать редкие, но большие импульсы цен?
Поиск стоп-лосса через анализ амплитуды цены внутри позиции
Попробуем для начала измерить размах цены внутри позиций. Так мы узнаем, какое максимальное количество пунктов цена может пройти для прибыльных и убыточных сделок.
- Средняя прибыль на сделку приносит 22.37 пунктов
- Средний убыток на сделку отнимает 11.02 пунктов
- Максимальная амплитуда прибыльного изменения цены для прибыльных сделок 297 пунктов
- Максимальная амплитуда убыточного изменения цены для убыточных сделок 111 пунктов
Напомню: 1 пункт - это изменение цены на 0.00001 (пятизначные котировки)
Из данных следует, что брать стоп-лосс больше 111 пунктов не имеет смысла (во всяком случае, для участка истории за 2017-2019 год), потому что цена никогда не дойдет до него. Делать стоп-лосс меньше 11 пунктов тоже нет смысла, так как это ниже среднего убытка плохих сделок.
Попробуем построить графики зависимости количества сделок от максимальной прибыльной амплитуды для удачных сделок и максимальной амплитуды убытка для убыточных сделок. По оси X разместим количество пунктов прибыли или убытка, а вдоль оси Y пусть будет количество сделок.
К примеру, если за весь период теста 10 сделок до своего закрытия доходили до профита в 15 пунктов, то мы увидим на графике точку с координатами x = 15; y = 10. Важно понимать, что будет использована именно максимальная амплитуда, а не итоговый профит или убыток сделки.
Для исследуемой стратегии получаем следующие графики:
Графики получились не очень наглядные. Попробуем сделать так, чтобы каждая точка на оси X показывала, сколько сделок останется не закрытыми по данному тейк-профиту или стоп-лоссу. Например, если по стоп-лоссу в 10 пунктов закрывалось бы 100 сделок, а при 20 пунктах закрывалось бы уже только 30 сделок, то для точки на оси X в 20 пунктов будет значение 70 сделок. В итоге мы получим график, где с ростом стоп-лосса число сделок будет уменьшаться.
Для исследуемой стратегии были получены следующие графики:
Данные графики уже более интересные, чем предыдущие. Но как по данным графикам понять, какую часть сделок закрывать по стоп-лоссу будет оптимально?
Визуально график зависимости количества сделок от пунктов похож на половинчатое нормальное распределение. Для такого распределения около 68% сделок будут лежать в пределах одной половины стандартного отклонения от среднего (0 до 0.5σ), около 95% - в пределах одного стандартного отклонения от среднего (0 до 1σ), и около 99.7% - в пределах полтора стандартных отклонений от среднего (0 до 1.5σ).
В таком случае можно найти стандартное отклонение убыточной амплитуды цены в пунктах для убыточных сделок, определиться с доверительным интервалом и таким образом найти нужный нам стоп-лосс. К примеру, если выбрать 1σ в роли стоп-лосса, то 95% сделок будут закрываться по стоп-лоссу, а остальные сделки закроются по истечении времени экспирации. Но лучше выбрать 1.5σ, чтобы почти все сделки закрывались по истечении времени экспирации.
Расчёты для исследуемой стратегии показали, что:
- Стандартное отклонение максимальной убыточной амплитуды цены убыточных сделок равно 35.19 пунктов
- Стандартное отклонение максимальной прибыльной амплитуды цены прибыльных сделок 62.10 пунктов
В таком случае оптимальный стоп-лосс для исследуемой стратегии:
SL = 1.5σ = 1.5 * 35.19 = 52.785 ≈ 53
Ещё можно проанализировать распределение убыточной амплитуды для прибыльных позиций. Построим график зависимости количества закрытых прибыльных сделок по стоп-лоссу от размера стоп-лосса:
Благодаря данному графику мы видим, что чем меньше стоп-лосс, тем больше сделок, которые бы принесли прибыль, будет закрыто по стоп-лоссу с убытком.
Можно снова найти стандартное отклонение и вычислить такой стоп-лосс, при котором большинство прибыльных сделок не будет закрыто по стоп-лоссу. В данном случае стандартное отклонение максимальной убыточной амплитуды составляет 33.11 пункта. Это значит, что выбрав стоп-лосс в 33 пункта, 95% прибыльных сделок закроются с прибылью. А выбрав стоп-лосс в 50 пунктов, 99.7% прибыльных сделок закроются с прибылью.
Таким образом, стоп-лосс для исследуемой стратеги можно выбрать в диапазоне 50-53 пункта. Аналогичным образом можно найти и тейк-профит, в данном случае он составит 93 пункта.
Для выбранных значений стоп-лосса в 53 пункта и тейк-профита в 93 пункта измерим следующие показатели:
- Винрейт стратегии: 0.641 (64.1%)
- Средний профит с одной сделки относительно размера позиции: 0.411696
- Средний убыток с одной сделки относительно размера позиции: 0.256796
Для получения среднего профита и среднего убытка на сделку проводится тест с фиксированным размером позиций. Для каждой позиции вычисляется размер стоп-лосса, относительно которого вычисляется относительный профит позиции. Далее собирается статистика отдельно для прибыльных позиций и отдельно для убыточных.
Данные три показателя нужны для расчета размера позиции. Зная, какой потенциальный убыток в валюте депозита несет в себе стоп-лосс на один лот, можно посчитать, какую сумму мы хотим инвестировать в сделку, используя Критерий Келли.
f* — часть активов, которую вкладывают в инвестиции;
p — вероятность положительного исхода (что инвестиции вырастут в цене);
q — вероятность отрицательного исхода (что инвестиции упадут в цене): q = 1 — p;
a — доля от вложений, которая теряется при отрицательном исходе;
b — доля от вложений, которая добавляется при положительном исходе.
Так как Критерий Келли максимизирует прибыль, то просадка депозита может достигать очень больших значений. Поэтому используется коэффициент ослабления, который в данной статье в каждом тесте равен 0.05. К примеру, если по Критерию Келли мы должны инвестировать 10% от депозита, то коэффициент уменьшит это значение в 20 раз и получится 0.05%.
Проведем очередное тестирование стратегии на истории:
- Профит за весь период теста: 733930$ (было 37340$)
- Профит-фактор: 2.385
- Максимальная относительная просадка составила 15.8%
- Средняя прибыль за месяц: 12.7% (с учетом сложного процента)
Результаты стали гораздо лучше, чем когда мы использовали "оптимальный стоп-лосс", найденный через минимизацию просадки.
Проведем тест для 2020-2023 годов (т.е. за следующие почти 4 года):
- Профит за весь период теста: 4936495$
- Профит-фактор: 2.898
- Максимальная относительная просадка составила 24.8%
- Средняя прибыль за месяц: 15.1% (с учетом сложного процента)
Видно, что стратегия работает и в следующие 4 года. Средний процент прибыли за месяц даже увеличился, правда и просадка стала повыше.
Для практического применения стоит искать тейк-профит и стоп-лосс по более ранним данным, а не за 2017-2019 год. К примеру, выбрать участок с 2019 по 2021 год, а остальные периоды истории использовать для проверки гипотез.