Стратегия прорыва Bollinger Bands

Автор:Чао Чжан, Дата: 2024-02-20 15:53:12
Тэги:

img

Обзор

Стратегия Bollinger Bands Breakout представляет собой простую количественную торговую стратегию, основанную на индикаторе Bollinger Bands. Стратегия использует динамические уровни поддержки и сопротивления, предоставляемые верхними и нижними полосами Bollinger Bands, для установки правил входа в длинные позиции, когда цены выходят из полос, и правил выхода, когда цены выходят из полос, с целью захвата трендовых возможностей в движении цен.

Логика стратегии

Индикатор полос Боллинджера был разработан Джоном Боллинджером в 1980-х годах. Он состоит из скользящей средней за n периодов и м раз стандартного отклонения выше и ниже нее.

Условия входа в эту стратегию следующие: будет занята длинная позиция, когда цена закрытия перейдет ниже нижней полосы Боллинджера; будет занята короткая позиция, когда цена закрытия перейдет выше верхней полосы Боллинджера. Правила выхода следующие: для существующих длинных позиций ликвидировать, когда цена закрытия перейдет выше верхней полосы; для существующих коротких позиций покрыть, когда цена закрытия перейдет выше нижней полосы.

Это стратегия, основанная на тенденциях. Захватывая продолжение тренда, сигнализируемое разрывом полос Боллинджера, он стремится извлечь выгоду из устойчивых движений цен в направлении.

Преимущества

  1. Использование полос Боллинджера в качестве динамических уровней поддержки/сопротивления вместо фиксированных цен делает стратегию адаптивной к изменяющимся рыночным условиям.

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

  3. Фреймворк прост и интуитивно понятен.

  4. Гибкая настройка параметров делает стратегию адаптивной для различных продуктов и рынков.

Риски

  1. Плохая настройка параметров индикаторов может привести к слишком частой торговле и излишним затратам.

  2. Сигналы прорыва могут быть просто краткосрочными колебаниями цен вместо устойчивых тенденций.

  3. Отсутствие стоп-лосса подвергает стратегию рискам неконтролируемых потерь.

  4. В чисто технической системе отсутствуют фундаментальные изменения тренда.

  5. Производительность может варьироваться между различными продуктами без корректировки.

Возможности для расширения

  1. Оптимизируйте параметры для повышения прочности.

  2. Включайте ордеры стоп-лосса для ограничения потерь.

  3. Создать систему с несколькими временными рамками для улучшения принятия решений.

  4. Добавьте фильтры громкости, чтобы избежать ложных сигналов.

  5. Дополнительные основы для лучших записей времени и размеров позиций.

  6. Оценить стратегию на большей продукции для проверки адаптивности.

Резюме

Стратегия Bollinger Bands Breakout обеспечивает простой подход к следующему тренду, используя импульс, сигнализируемый индикаторными прорывами.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy", overlay=true)

length = input.int(20, title="Bollinger Bands Length", minval=1)
maType = input.string("SMA", title="Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, title="StdDev Multiplier", minval=0.001, maxval=50)
offset = input.int(0, title="Offset", minval=-500, maxval=500)

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev + offset
lower = basis - dev - offset

// Define strategy entry and exit conditions
strategy.entry("Buy", strategy.long, when=close < lower)
strategy.close("Buy", when=close > upper)

strategy.entry("Sell", strategy.short, when=close > upper)
strategy.close("Sell", when=close < lower)

// Plotting the Bollinger Bands
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")


Больше