September 11, 2023

Поиск оптимального стоп-лосса и тейк-профита для контр-трендовой стратегии

Дисклеймер

Статья предназначена исключительно для информационных целей и не является советом по инвестициям или рекомендацией к действию.

В поисках оптимального стоп-лосса

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

Осталось лишь понять, как найти оптимальные стоп-лосс и тейк-профит для контр-трендовой стратегии?

В качестве примера будем рассматривать результаты тестирования одной реальной стратегии на участке истории с 2017 по конец 2019 года. Краткая характеристика проводимого теста:

  • Стратегия использует три валютные пары
  • Стратегия прогнозирует на одну минуту вперед
  • Все настройки индикаторов для всех пар одинаковы
  • Кредитное плечо 300
  • Котировки Roboforex ECN

Для первого теста стоп-лосс и тейк-профит не используется, потому что мы их и не знаем. График баланса представлен ниже.

График изменения баланса в процессе тестирования торговой стратегии на истории за 2017-2019 годы

Решение в лоб

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

Зависимость относительной просадки депозита от размера стоп-лосса
Зависимость профита от размера стоп-лосса

Важно: 1 пункт - это изменение цены на 0.00001 (пятизначные котировки)

Видно, что существует оптимальный стоп-лосс, если мы минимизируем уровень относительной просадки. Тогда оптимальный стоп-лосс исследуемой стратегии равен примерно 25 пунктам (*для участка истории на 2017-2019 годах).

Но действительно ли это прибыльный уровень стоп-лосса? Проведем тестирование на истории уже с учетом стоп-лосса и получаем следующий график:

График изменения баланса в процессе тестирования торговой стратегии на истории за 2017-2019 годы с учетом стоп-лосса размером 25 пунктов

Тест проходил с учетом сложного процента. Размер позиций вычислялся по Критерию Келли.

Спойлер: это не лучшие результаты для данной стратегии:

  • Профит за весь период теста составил 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%.

Проведем очередное тестирование стратегии на истории:

График изменения баланса в процессе тестирования торговой стратегии на истории за 2017-2019 годы с размером стоп-лосса 53 пункта и тейк-профитом 93 пункта
  • Профит за весь период теста: 733930$ (было 37340$)
  • Профит-фактор: 2.385
  • Максимальная относительная просадка составила 15.8%
  • Средняя прибыль за месяц: 12.7% (с учетом сложного процента)

Результаты стали гораздо лучше, чем когда мы использовали "оптимальный стоп-лосс", найденный через минимизацию просадки.

Проведем тест для 2020-2023 годов (т.е. за следующие почти 4 года):

  • Профит за весь период теста: 4936495$
  • Профит-фактор: 2.898
  • Максимальная относительная просадка составила 24.8%
  • Средняя прибыль за месяц: 15.1% (с учетом сложного процента)

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

Для практического применения стоит искать тейк-профит и стоп-лосс по более ранним данным, а не за 2017-2019 год. К примеру, выбрать участок с 2019 по 2021 год, а остальные периоды истории использовать для проверки гипотез.