image.thumb.png.b5e4f594609c365c5d52bc41020708f3.png

 

Стоит ли применять стопы на уровне безубыточности в алгоритмическом трейдинге?

 

Одним из популярных торговых инструментов является стоп-лосс на уровне безубыточности. С психологической точки зрения стопы на уровне безубыточности выглядят очень привлекательно: они не позволяют прибыльной сделке превратиться в убыточную. Это особенно верно для дискреционных трейдеров, у которых процент прибыльных сделок может играть важную психологическую (не обязательно финансовую) роль.

 

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

Эта статья даёт основу для оценки стопов на уровне безубыточности и несколько примеров. Однако помните: любые выводы нужно проверять собственными исследованиями своих систем.

 

Определение стопа на уровне безубыточности

 

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

 

Распространенной вариацией такого стопа является включение комиссий в значение безубыточности и даже добавление одного тика прибыли. В этом случае (и при условии отсутствия проскальзывания) конечная прибыль составит 1 тик минус комиссии.

 

Для упрощения анализа мы будем использовать просто безубыточный стоп-лосс с валовой прибылью $0.

 

Добавление стопа в код

 

Большинство торговых платформ имеют встроенную функцию для стопов на уровне безубыточности.

Например, в Tradestation есть одна строка: SetBreakevenStop(FloorAmt);. В качестве альтернативы можно использовать следующий код:

 

Maxpositionprofit – в Tradestation эта команда означает максимальную прибыль в позиции. “Entryprice – цена входа в сделку.

 

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

 

Обратите внимание: в таком виде код не будет активироваться до второго бара после входа. Опытные программисты смогут легко внести в него необходимые корректировки.

 

Оценка Системы №1

 

Система №1 – это внутридневная торговая стратегия на фьючерсе ES, которую я использую. В изначальном виде она не имеет стопа на уровне безубыточности. Но что, если его добавить?  Значение общей чистой прибыли$ 2 500 и выше фактически означает отсутствие стопа на уровне безубыточности.

 

Результаты показывают, что для этой системы можно достичь увеличения чистой прибыли на 6%. Разумеется, это оптимизированный результат, поэтому, вероятно, он чрезмерно оптимистичен.

 

При этом может улучшиться и соотношение прибыли к просадке. Но, опять же, помните, что я сравниваю оптимизированный результат с неоптимизированным.

 

Оценка Системы №2

 

Система №2 – это торговая стратегия на золоте с простыми правилами. Тем не менее, с течением времени она показала очень хорошие результаты. На рисунке представлена ее кривая капитала.

 

После добавления стопа на уровне безубыточности чистая прибыль увеличивается на $ 5 185, или примерно на 3%.

 

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

 

image.png.21cf2ddc38fa06d3084d8c211fdd15f0.png

 

Заключение

 

Итак, эффективны ли стопы на уровне безубыточности? В двух представленных примерах стоп на уровне безубыточности недостаточно сильно повлиял на результаты, чтобы можно было оправдать его использование ради увеличения прибыли. Во втором примере наше внимание привлекло значительное снижение максимальной просадки. Но поскольку результаты применения стопов на уровне безубыточности были оптимизированы, нельзя утверждать, что они являются значимыми (в то же время полученные плохие результаты означают, что стопы на уровне безубыточности бесполезны, так как они основаны на оптимизации).

 

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

 

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

 

При разработке стратегии, как я обнаружил, главное – иметь как можно меньше правил и параметров. Стратегии с четырьмя правилами обычно работают лучше, чем стратегии с 40 или 400 правилами. Для получения бо́льшего количества данных вне выборки я также рекомендую проводить пошаговое форвардное тестирование.

 

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

 

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

 

 

 

Переведено для сайта TLAP. 

Кевин Дж. Дэйви