Стратегия каналов и стоп-лосс
Обзор
Стратегия полос Боллинджера (Bollinger Bands Strategy) — это классическая стратегия, использующая полосы волатильности для отслеживания трендов и сигналов перекупленности/перепроданности. В данной версии в базовую стратегию добавлен механизм стоп-лосса для контроля рисков.
Стратегия определяет состояния перекупленности и перепроданности рынка по золотому/кресту смерти верхней и нижней полос Боллинджера, отслеживая тренд с помощью самих полос. Область между верхней и нижней полосами отражает текущий диапазон волатильности рынка. Полоса Боллинджера состоит из средней, верхней и нижней линий: средняя линия — это простая скользящая средняя за n дней, а верхняя и нижняя линии рассчитываются как средняя линия ± k-кратное стандартное отклонение за n дней.
Принципы
Полосы Боллинджера — это технический индикатор, отражающий волатильность и амплитуду колебаний рынка. Когда цена касается нижней полосы Боллинджера, рынок находится в состоянии перепроданности, и образовавшиеся гэпы с высокой вероятностью будут закрыты; в соответствии с регрессионным характером следует рассмотреть открытие длинной позиции. Когда цена касается верхней полосы Боллинджера, рынок может находиться в состоянии перекупленности, и цена может развернуться вниз, что указывает на возможность открытия короткой позиции для получения прибыли от нисходящего движения.
Данная стратегия использует сигналы перекупленности/перепроданности полос Боллинджера для открытия позиций, следующих за трендом, и добавляет механизм стоп-лосса для контроля рисков.
Когда цена пересекает нижнюю полосу Боллинджера снизу вверх, это означает, что рынок выходит из зоны перепроданности в нормальную зону, и можно открыть длинную позицию. Когда цена пересекает верхнюю полосу Боллинджера сверху вниз, рынок входит в зону перекупленности, и можно открыть короткую позицию.
После открытия позиции устанавливается фиксированный процентный стоп-лосс для контроля рисков. Если убыток превышает установленный уровень, позиция закрывается, чтобы избежать чрезмерных потерь.
Преимущества
-
Стратегия использует индикатор полос Боллинджера для определения зон перекупленности/перепроданности и, пересекаясь с верхней/нижней полосой, реализует покупку на низком уровне и продажу на высоком.
-
Использует свойство волатильности полос Боллинджера для следования за трендом.
-
Наличие стоп-лосса позволяет эффективно контролировать максимальные потери по одной сделке.
-
Комбинация следования за трендом и стоп-лосса обеспечивает стабильную доходность.
Риски и оптимизация
-
Параметры полос Боллинджера влияют на качество торговых сигналов. Длина средней линии n и множитель стандартного отклонения k должны быть разумно установлены в зависимости от рынка, иначе точность сигналов снизится.
-
Слишком большой или слишком малый стоп-лосс влияет на стабильность доходности. Слишком широкий стоп-лосс увеличивает риск потерь по одной сделке, слишком узкий — повышает вероятность срабатывания стопа. Необходимо разумно устанавливать процент стоп-лосса в зависимости от инструмента.
-
Можно рассмотреть фильтрацию сигналов с помощью других индикаторов для повышения точности.
-
Можно тестировать разное время удержания позиции, например, использовать часовые или более короткие периоды полос Боллинджера для более частой торговли, повышая эффективность использования капитала.
Заключение
Данная стратегия использует полосы Боллинджера для определения зон перекупленности/перепроданности и открытия позиций, добавляя стоп-лосс для контроля рисков. Это распространённая стратегия следования за трендом. Оптимизация параметров, более точные торговые сигналы и правильный уровень стоп-лосса позволяют получать стабильную прибыль.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)- 1

