Многие начинающие трейдеры быстро осваивают такой популярный биржевой механизм, как стоп-лосс. И практически каждый знаком с понятием трейлинг-стопа.
Ни один советник не обходится без этого функционала. Нередко можно встретить даже вспомогательные советники, которые модифицируют открытые вручную позиции трейдеров по различным заданным алгоритмам.
Многие новички используют трейлинг-стоп неверно – не протестировав его на исторических данных совместно со своей стратегией. Важность таких тестов я сегодня и продемонстрирую. Мы попробуем разобраться, какой тип трейлинг стопа лучше и есть ли вообще смысл применять «трал»?
Что такое трейлинг-стоп
Trailing Stop – это алгоритм управления ордером Stop Loss, который действует по следующей схеме:
- Если прибыль по открытой позиции не превысила величины Trailing Stop, никаких действий не предпринимать;
- Как только прибыль по открытой позиции превысит величину Trailing Stop, отправить на сервер распоряжение о размещении ордера Stop Loss на расстоянии величины Trailing Stop от текущей цены;
- Как только будет получена котировка на расстоянии от выставленного Stop Loss ордера, превышающего величину Trailing Stop, отправить на сервер распоряжение об изменении уровня этого ордера, чтобы он находился на расстоянии величины Trailing Stop от текущей цены.
То есть, по сути, трейлинг-стоп – это определенный алгоритм, по которому стоп-лосс открытого ордера передвигается ближе к текущей цене с целью избежать убытков и получить от рынка максимум прибыли.
Исходные данные
Для тестирования трейлинг-стопа я смастерил простого бота для часовых графиков:
Вход осуществляется, когда основная линия индикатора Stochastic на часовом графике пересекает уровень 25 (сверху вниз для продаж и снизу вверх для покупок), а основная линия индикатора Stochastic на дневном графике наклонена в сторону предполагаемой сделки. Выход производится по набору различных правил (в пределах 10 правил для разных рыночных ситуаций). Трейлинг-стоп у данного советника не предусмотрен.
Чтобы не перегружать статью тестами, я взял только основные валютные пары – USDCHF, GBPUSD, EURUSD, USDJPY, USDCAD, AUDUSD. Тесты проводились с 2000 года по текущий день. Я буду проводить оптимизацию, а затем выберу самый лучший по прибыльности набор параметров. Советник имеет контроль закрытия баров и все операции выполняет в начале новой свечи, в данном случае Н1.
Это позволяет избавиться от различных случайностей вроде нестабильной работы сервера, расширения спреда, проскальзываний, а также дает возможность проводить тестирование с точностью «По ценам открытия». При использовании старших таймфреймов и применении контроля открытия баров разница между подобным тестированием и тестированием «По тикам» на реальных тиковых котировках – только в затраченных на тесты машино-часах.
Затем я взял библиотеку функций трейлинг-стопа с нашего форума и прикрутил ее к советнику. Мы будем тестировать большую часть из этих трейлинг-стопов. Поехали!
Тестирование
Я долго думал, как представить информацию наиболее удобно для изучения, и решил сделать скрины тестов различных трейлинг-стопов сверху, а результаты работы советника без трейлинг-стопа внизу.
Простой трейлинг-стоп
Первый вариант трейлинг-стопа для нашего теста – простой трейлинг-стоп, которым оборудована большая часть советников.
USDCHF
Как видно, трейлинг-стоп вообще не повлиял на конечный результат.
GBPUSD
Снова такая же история – никакого влияния.
EURUSD
Тут мы видим небольшое увеличение конечной прибыли, уменьшение просадки на 4%, увеличение профит-фактора и количества прибыльных сделок. Впрочем, это увеличение не слишком значительное даже на длительном отрезке времени в 20 лет. А за один год разница будет совсем незаметна.
USDJPY
И тут мы видим даже небольшое ухудшение характеристик советника.
USDCAD
Здесь никакой разницы нет.
AUDUSD
И тут снова никакой разницы.
Теперь сравним все пары вместе:
Таким образом, только в двух из шести случаев простой трейлинг-стоп действительно улучшил характеристики советника. При этом улучшения были несущественными.
Трейлинг-стоп по фракталам
Данный трейлинг-стоп переносит стоп-лосс вслед за новыми фракталами, появляющимися в процессе движения цены. При этом сам стоп устанавливается на некотором отдалении от фрактала, чтобы цена его не задела, преждевременно выбив из позиции.
USDCHF
Есть небольшое улучшение характеристик советника – немного подрос профит-фактор, остальные характеристики почти не изменились.
GBPUSD
Тут, как и в предыдущем случае, изменения минимальны.
EURUSD
Здесь примерно на 5% выросла чистая прибыль, остальные характеристики почти не изменились.
USDJPY
Советник стал немного прибыльнее.
USDCAD
Тут изменения почти незаметны.
AUDUSD
Прилично вырос профит-фактор, немного подросла чистая прибыль. При этом количество прибыльных сделок даже уменьшилось, а просадка выросла на 1%.
Все вместе:
Визуально кривые доходности практически неотличимы друг от друга. Тем не менее, просадка уменьшилась на 1%, а чистая прибыль немного выросла. Как и для предыдущего варианта трейлинг-стопа, такие изменения несущественны и могут быть заметны только спустя огромное количество времени. На коротких отрезках улучшения не видны.
Трейлинг-стоп по теням свечей
Этот трейлинг-стоп чем-то напоминает предыдущий, только вместо фракталов берутся тени свечей в определенном диапазоне – например, самая низкая тень за последние 20 свечей.
USDCHF
Характеристики почти не изменились. Немного подросла чистая прибыль.
GBPUSD
Тут тоже почти нет разницы.
EURUSD
На этой паре разница минимальна, но можно заметить, что применение трала немного замедлило последнее падение кривой баланса – оно стало не таким глубоким. Но в целом изменения невелики.
USDJPY
Тут разница несущественна.
USDCAD
Пара сотен долларов чистой прибыли за 20 лет – вот и вся разница.
AUDUSD
Тут мы видим приличную разницу в чистой прибыли, хотя прибыльных сделок стало даже меньше.
Все вместе:
Улучшение характеристик советника от применения этого варианта трала похоже на предыдущий вариант. Тем не менее, визуально кажется, что последнее падение кривой доходности стало немного мягче.
Трейлинг-стоп по ATR
Тут расстояние между стопом и текущей ценой определяется по индикатору ATR, который, как известно, измеряет волатильность. На спокойном рынке это расстояние будет меньше, а когда рынок штормит, этот тип трейлинг-стопа даст возможность цене двигаться немного свободнее.
USDCHF
Здесь мы видим существенное улучшение формы кривой доходности. На более позднем отрезке времени советник явно стал работать лучше.
GBPUSD
Немного улучшены характеристики.
EURUSD
Здесь разница в прибыли объясняется разным спредом при проведении тестов, кривая доходности имеет ту же форму.
USDJPY
Тут то же самое.
USDCAD
Разница невелика.
AUDUSD
Есть разница в прибыли и в профит-факторе.
Все вместе:
Выводы аналогичны результатам предыдущего варианта – изменения несущественны.
Трейлинг-стоп «Удавка»
У нас есть исходное расстояние, на котором должен держаться стоп-лосс от текущей цены, скажем, 80 пунктов. Когда мы будем в профите на 50 пунктов (уровень 1), это расстояние мы сократим до 60 пунктов. Когда профит достигнет 80 пунктов (уровень 2), мы сократим расстояние до 30 пунктов.
USDCHF
Какой-то впечатляющей разницы тут не видно.
GBPUSD
Аналогично предыдущему тесту.
EURUSD
Немного улучшились характеристики советника.
USDJPY
Разницы практически нет.
USDCAD
Вроде бы кривая стала немного прямее, но это почти незаметно.
AUDUSD
Кажется, последний неудачный отрезок стал менее неудачным, но разница почти неуловима.
Все вместе:
Графики почти идентичны.
Трейлинг-стоп по времени
Тут мы каждый заданный интервал времени (например, каждый час) двигаем стоп-лосс ближе к цене открытия на определенное количество пунктов, скажем, на 10. Начинаем двигать из убыточной зоны раз в час на 10 пунктов, затем пересекаем уровень безубытка и продолжаем двигать стоп раз в час, пока он не будет активирован, либо пока мы не закроемся по тейк-профиту.
USDCHF
На этой паре трейлинг-стоп по времени дал неплохой результат.
GBPUSD
Тут тоже кривая доходности визуально стала немного пободрее.
EURUSD
Особой разницы не видно.
USDJPY
Аналогично – нет отличий.
USDCAD
Разница если и есть, то она минимальна.
AUDUSD
Отличия невелики.
Все вместе:
Визуально кажется, что последний неблагоприятный период стал более благоприятным, но незначительно.
Трейлинг-стоп Ratchet Баришпольца
При достижении профитом уровня 1 стоп-лосс переносится в +1; при достижении профитом уровня 2 – стоп на уровень 1; когда профит достигает уровня 3, стоп – на уровень 2. При работе в минусовом участке – тоже 3 уровня, но схема работы с ними несколько иная, а именно: если мы опустились ниже уровня, а потом поднялись выше него (пример для покупки), то стоп ставим на следующий более глубокий уровень (например, уровни -5, -10 и -25, стоп -40; если опустились ниже -10, а потом поднялись выше -10, то стоп на -25; если поднимемся выше -5, то стоп перенесем на -10; при -2 (спред) – стоп на -5).
USDCHF
С трейлинг-стопом график доходности выглядит красивее.
GBPUSD
Разница малозаметна.
EURUSD
Отличий почти нет.
USDJPY
Также почти нет отличий.
USDCAD
То же самое.
AUDUSD
Отличий практически нет.
Все вместе:
Я почти не вижу отличий.
Трейлинг-стоп по ценовому каналу
Рисуется некий ценовой канал, а стоп-лосс подтягивается по границе этого канала на определенном расстоянии.
USDCHF
График даже стал менее красивым.
GBPUSD
Отличий почти нет.
EURUSD
Последний период стал менее убыточным, и даже вышли из просадки благодаря тралу.
USDJPY
Разницы практически нет.
USDCAD
Отличий не наблюдается.
AUDUSD
Кажется, стало получше.
Все вместе:
Визуально график доходности существенно выровнялся.
Заключение
Лучшим вариантом трейлинг-стопа, на мой взгляд, оказался трал по ценовому каналу – он прилично выпрямил кривую доходности советника, который испытывал определенные трудности в последнее время, и даже вывел его в прибыль.
Тем не менее, применение трейлинг-стопа для и так прибыльной торговой системы не дало серьезных преимуществ. А те небольшие улучшения характеристик советника, что мы наблюдали, проявили себя только на значительном отрезке времени.
В принципе, вы можете продолжать применять различные варианты трейлинг-стопа, если вам так психологически спокойнее. Но не забывайте протестировать параметры трала на истории – с неверными настройками вы можете серьезно ухудшить результаты вашей системы.
И напоследок еще один совет: при оптимизации ваших систем трейлинг-стопы стоит включать и оптимизировать уже после того, как подобраны оптимальные параметры для правил самой ТС. Не стоит пытаться при помощи трейлинг-стопов вытянуть плохую систему в прибыль, а оптимизируя ее вместе с тралами, вы никогда не узнаете, что систему вытянул именно трал.
Что в этом плохого? Ну а зачем вытягивать тралами сливные системы, если гораздо надежнее сначала найти прибыльную, а затем прикрутить к ней трейлинг-стоп, если он так уж необходим. Кроме того, такая оптимизация – прямой путь к подгонке.
На этом все, всем пока!
Аналогичное исследование по фондовому рынку
С уважением, Дмитрий аkа Silentspec
Tlap.com