
Трейлинг-стоп в трейдинге
Введение
Основное предназначение трейлинг-стопа — получить гарантированную прибыль с минимальным риском. Суть работы трейлинг-стопа очень проста. Стоп-лосс постепенно перемещается за ценой, если она движется в пользу трейдера. И остается на месте, если цена пошла в противоположном направлении.
Схематически трейлинг-стоп можно представить следующим образом. Предположим, что трейдер открыл позицию Buy на растущем тренде. При движении цены вверх, стоп-лосс будет автоматически передвигаться за ценой. А когда тренд сменит свое направление, трейдер может зафиксировать прибыль.
Существует большое количество вариантов трейлинг-стопа. Свои варианты трейлинг-стопа есть в составе торговой платформы MetaTrader.
Кроме того, трейлинг-стоп можно автоматизировать и включать его в код торговых экспертов. Например, это можно сделать с помощью классов сопровождения открытых позиций.
Эффективность трейлинг-стопа во многом зависит от волатильности цены и подбора уровня стоп-лосса. Для установки стоп-лосса могут использоваться самые разные подходы. Например, при ярко выраженном тренде можно использовать значения максимумов или минимумов цены. Кроме того, параметры трейлинг-стопа могут определяться и с помощью технических индикаторов. Такой подход описан в статье "Как создать свой Trailing Stop". В этой статье мы рассмотрим возможность построения трейлинг-стопа на основе статистических данных.
Простой трейлинг-стоп
Торговая стратегия и трейлинг-стоп не зависят друг от друга. Главное отличие между ними заключается в том, что стратегии открывают и закрывают позиции. А трейлинг-стоп предназначен только для закрытия позиций.
Сначала давайте рассмотрим ограничения, которые накладываются на стоп-лосс.
Верхняя граница стоп-лосса задается в свойствах символа – минимальная разница между ценой закрытия позиции и устанавливаемым стоп-лоссом не может быть меньше минимального отступа в пунктах от текущей цены закрытия позиции.
SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)
А вот нижнюю границу стоп-лосса для трейлинг-стопа нам придется рассчитывать самостоятельно. Первое требование к минимальному стоп-лоссу – он должен находиться в области безубытка. На первый взгляд все просто – минимальный стоп-лосс должен быть не хуже, чем цена открытия позиции. Правильно? Да, неправильно.
При открытии позиции с трейдера может быть удержана комиссия. Кроме того, позиция за время своего существования может накопить своп. Эти дополнительные расходы должны быть учтены при расчете минимально возможного стоп-лосса. Для этого нам нужно узнать стоимость одного пункта в валюте депозита.
PointValue=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)*SymbolInfoDouble(_Symbol,SYMBOL_POINT)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)
Теперь мы можем рассчитать сколько пунктов должна пройти цена, чтобы компенсировать комиссию и своп. Кроме того, необходимо учесть еще влияние проскальзывания. В ходе совершения торговых операций проскальзывание может сработать как в худшую, так и в лучшую сторону. Но, мы проявим осторожность и будем считать, что проскальзывание всегда будет срабатывать против трейдера.
Пусть, PriceOpen – цена открытия позиции, Lot – ее объем. Тогда минимальный стоп-лосс можно вычислить по формуле:
Верхние знаки используются для позиций Buy, а нижние для Sell.
Минимальный стоп-лосс соответствует уровню гарантированной безубыточности позиции. То есть, если позиция будет закрыта по минимальному стоп-лоссу, то ее полная прибыль (с учетом текущего профита, свопа и комиссии) будет неотрицательной.
Теперь мы можем сформулировать основные правила трейлинг-стопа:
- новый стоп-лосс должен находиться в промежутке между минимальным и максимальным уровнем;
- новый стоп-лосс должен быть лучше предыдущего.
При выполнении этих требований стоп-лосс можно модернизировать. Но, перед модернизацией необходимо провести еще одну проверку – старый стоп-лосс должен находиться за пределами уровня заморозки (подробнее об этом можно ознакомиться в статье "Какие проверки должен пройти торговый робот перед публикацией в Маркете").
Для определения нового стоп-лосса можно использовать разные подходы. Я буду использовать уровни, которые описаны в статье "Стоп-лосс и тейк-профит, дружелюбные к трейдеру".
Но, я внесу небольшие изменения для расчета оптимального стоп-лосса. Трейлинг-стоп должен срабатывать на текущем баре, поэтому время удержания позиции будет всегда равно 1 бару. Кроме того, статистика по движению цены будет собираться по произвольно выбранному таймфрейму. Такой подход дает возможность регулировать чувствительность трейлинг-стопа.
Несколько слов о тейк-профите. Здесь, может быть, несколько различных вариантов.
Предположим, что трейдер использует торговую стратегию с заданным тейк-профитом. Тогда тейк-профит может оставаться фиксированным, а трейлинг-стоп модифицирует только стоп-лосс. В этом случае трейлинг-стоп выводит позицию в безубыток.
Если торговая стратегия не предусматривает установки тейк-профита, или есть возможность применять скользящий тейк-профит, то трейлинг-стоп может следить за уровнями и стоп-лосса, и тейк-профита. В этом случае прибыльность трейдинга может измениться, так как часть позиций могут быть закрыты по более выгодным ценам.
Кроме того, возможен случай, когда трейлинг-стоп используется в потиковом режиме. Тогда установка тейк-профита не имеет никакого смысла – цена никогда не догонит тейк-профит. А единственный возможный вариант закрытия позиции только по стоп-лоссу.
Давайте проверим как работает простой трейлинг-стоп с тейк-профитом и без него. При этом, введем дополнительное условие - установка и модификация тейк-профита становится возможной только после того, как трейлинг-стоп перенесет стоп-лосс в область безубытка.
Я буду использовать символ EURUSD, таймфрейм H1. Период тестирования с 1 января по 31 декабря 2023 г. Таймфрейм трейлинг-стопа M1. Направление и объем позиций определяется случайным образом. Стоп-лосс и тейк-профит позиций не устанавливается.
График изменения баланса выглядит так.
Часть позиций была закрыта по окончанию тестирования принудительно – это недостаток используемой стратегии. Но, график дает представление о том, как может работать трейлинг-стоп. Давайте посмотрим на результаты тестов.
PERIOD_M1 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 4 758.48 | 10 689.84 | -5 931.36 |
UseTakeProfit=true | 5 483.94 | 11 297.68 | -5 813.74 |
Как мы можем видеть, использование тейк-профита может повлиять на прибыльность трейдинга. Теперь, давайте попробуем провести тестирование с теми же условиями, но установим таймфрейм трейлинг-стопа равным M15.
PERIOD_M15 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 16 371.11 | 33 435.31 | -17 064.20 |
UseTakeProfit=true | 17 038.63 | 34 042.13 | -17 003.50 |
Изменение таймфрейма оказало существенное влияние на результаты тестирования. Это связанно с изменением уровней оптимальных стоп-лосса и тейк-профита. Ну, а мы можем сделать вывод — маленькие таймфреймы трейлинг-стопа подходят для скальпинга, большие — для трендовых стратегий.
Моральное ожидание и трейлинг-стоп
Моральное ожидание — это оценка риска, которую впервые ввел Даниил Бернулли в 1732 году. Моральное ожидание позволяет оценить полезность игры. При этом оно учитывает капитал игрока, возможные выигрыш и проигрыш, а также их вероятности.
Давайте посмотрим на процесс трейдинга немного по-другому. Представьте, что каждая позиция является отдельным игроком. Тогда у позиции есть капитал – общая прибыль позиции. Этот капитал может увеличиться, если позиция закроется по тейк-профиту. Или уменьшиться, если позиция будет закрыта по стоп-лоссу.
Пусть, ProfitPoint – прибыль позиции в пунктах, а p – вероятность того, что позиция будет закрыта по тейк-профиту. Тогда моральное ожидание позиции можно найти так:
Очевидно, что трейдеру необходимо подобрать такие стоп-лосс и тейк-профит при которых моральное ожидание становится максимальным. Давайте рассмотрим особенности сопровождения позиции с помощью морального ожидания.
Стоп-лосс должен быть строго меньше профита. Только в этом случае моральное ожидание может быть положительным. Но, это условие не является достаточным. Предположим, что мы нашли оптимальные стоп-лосс и тейк-профит. Эти уровни идеально подходят для идеального рынка. Реальный рынок может преподнести сюрпризы.
Предположим, что трейлинг-стоп установил оптимальный стоп-лосс, но из-за проскальзывания позиция может закрыться по худшей цене. В этом случае реальный стоп-лосс может оказаться больше профита позиции. А это допускать нельзя. Т.е. на стоп-лосс накладывается ограничение:
При расчете морального ожидания используется значение тейк-профита. Но его использование не является обязательным. В этом вопросе особенности торговой стратегии важнее.
Такие результаты показывает трейлинг-стоп по моральному ожиданию.
PERIOD_M1 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 4 482.35 | 8 175.37 | -3 693.02 |
UseTakeProfit=true | 4 747.94 | 8 434.11 | -3 686.17 |
Результаты оказались немного хуже, чем у простого трейлинг-стопа. Это связанно с тем, что при сопровождении позиций по моральному ожиданию перевод позиции в безубыток происходит раньше, чем при простом трейлинг-стопе. Поэтому, такой трейлинг-стоп лучше всего использовать в скальпинговых стратегиях.
Еще одним серьезным недостатком является большое количество необходимых операций. Расчеты можно оптимизировать. Но даже в этом случае таймфрейм трейлинг-стопа по моральному ожиданию должен быть небольшим.
Трейлинг-стоп для нескольких позиций
До сих пор мы применяли трейлинг-стоп к каждой позиции отдельно. А можно ли применить его к нескольким позициям сразу? Давайте рассмотрим и такую возможность. При этом мы будем предполагать, что позиции могут быть разных типов и с разными объемами одновременно.
В первую очередь нам необходимо определить какой тип позиций имеет преимущество. Для этого найдем сумму объемов позиций Buy и вычтем из нее сумму объемов позиций Sell.
Полученный результат покажет какой тип позиции сильнее. Положительное число указывает на то, что сильнее позиции Buy, отрицательное – сильнее позиции Sell. Если результат равен нулю, то позиции имеют одинаковую силу.
Далее необходимо найти минимально возможные цены закрытия для каждой позиции. Они рассчитываются так же, как и минимальный стоп-лосс, но без учета проскальзывания.
Теперь эти цены закрытия нужно преобразовать в цены Ask/Bid и найти их среднее взвешенное значение. В качестве весов будут выступать объемы позиций.
Эти два значения удобнее привести к одному оптимальному значению Bid, которое в дальнейшем потребуется для сопровождения позиций.
Теперь у нас есть три варианта:
- Если объемы позиций Buy и Sell равны друг другу, то оптимальное значение Bid будет соответствовать минимальному убытку. Т.е. трейдер может закрыть все позиции, если реальная цена Bid совпадет с оптимальной.
- Если объемы позиций Buy больше, то нужно увеличить BidOpt на величину проскальзывания. Это будет минимальный стоп-лосс для всех позиций.
- Если больше объемы позиций Sell, то значение BidOpt нужно уменьшить на величину проскальзывания.
Сопровождение позиций происходит так же, как и с простым трейлинг-стопом. Вычисляются новые уровни стоп-лосса и подтягиваются к цене. Единственное отличие – этот стоп-лосс является виртуальным. Поэтому нам придется отслеживать изменение цены на каждом тике.
Я реализовал сопровождение нескольких позиций по принципу простого трейлинг-стопа. Вот так изменяется график баланса при его применении.
Следует помнить, что сопровождение всех позиций и каждой в отдельности не конфликтуют друг с другом. Например, простой трейлинг-стоп + трейлинг-стоп всех позиций дают такие результаты.
Total Net Profit | Gross Profit | Gross Loss | |
---|---|---|---|
PERIOD_M1 | 4 907.90 | 10 425.52 | -5 517.62 |
PERIOD_M15 | 16 524.44 | 32 304.01 | -15 779.57 |
В целом, трейлинг-стоп является полезным инструментом. Однако трейдеру следует помнить, что его применение не гарантирует безубыточную торговлю. Недостаточно проработанную торговую стратегию он не улучшит.
Заключение
При написании статьи использовалась следующая программа.
Название | Тип | Особенности |
---|---|---|
Trailing stop | эксперт |
|





- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования