Стратегия Bollinger Momentum Breakout

Автор:Чао Чжан, Дата: 2023-12-22 13:09:32
Тэги:

img

Обзор

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

Принцип стратегии

  1. Когда индикатор Болинджерских полос определяет перелом цены через верхнюю полосу, он указывает на то, что рынок входит в бычий тренд. В это время используйте индикатор RSI для фильтрации. Сгенерируйте сигнал покупки, когда RSI больше 60. Когда индикатор BB определяет перелом цены через нижнюю полосу, он указывает на то, что рынок входит в медвежий тренд. В это время используйте индикатор RSI для фильтрации. Сгенерируйте сигнал продажи, когда RSI меньше 40.

  2. Установите стоп-лосс после выхода на рынок, чтобы избежать дальнейших потерь.

  3. Критерием выхода является закрытие длинной позиции, когда цена опускается ниже средней полосы BB, и закрытие короткой позиции, когда цена опускается выше средней полосы BB.

Анализ преимуществ

  1. Индикатор Bollinger Bands может определять основные тенденции рынка и фиксировать точки перегиба.

  2. Операция преследования поднимается и убивает падает может достичь избыточной прибыли.

  3. Установка стоп-лосса позволяет контролировать риски.

Анализ рисков

  1. Показатель BB не эффективен при оценке рынков, которые могут генерировать ложные сигналы.

  2. Неправильное установление стоп-лосса может привести к дальнейшим потерям.

  3. На высокую частоту торгов влияют торговые издержки и скольжение.

  4. Сигналы прорыва должны быть своевременно обновлены, в противном случае лучшие возможности для входа могут быть утеряны.

Руководство по оптимизации

  1. Комбинировать с другими показателями для оценки надежности сигналов прорыва BB, таких как объем, скользящие средние и т. д.

  2. Динамическое регулирование параметров BB для оптимизации показателей.

  3. Оптимизировать позицию стоп-лосса, например, отставание стоп-лосса, процент стоп-лосса для уменьшения ненужных потерь.

Резюме

Стратегия имеет четкую логику для определения рыночной тенденции с помощью BB и фильтрующих сигналов с RSI для преследования тренда импульса. Она имеет высокую частоту работы, быстрые циклы прибыли / убытка, более подходящие для трейдеров, стремящихся к избыточным доходам. Однако высокая частота торговли также увеличивает затраты на транзакции и требует строгого управления капиталом и эмоционального контроля. Дальнейшее улучшение производительности и стабильности может быть достигнуто посредством оптимизации параметров и оптимизации стоп-лосса.


/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-Stoxguru",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
start = timestamp (2007, 1,1,0,0) 
end = timestamp (2021,11,05,0,0)
stop_level = (high[1]-low[1])
profit_level = (high[1]-low[1])
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(2, minval=0.001, maxval=50, title = "Standard Deviation") 

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev
band=upper-lower
stop_loss=low-atr(14)
if time >= start 
// and time < end
    strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>=60 and rsi(close,14)<=70)
    // strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>60 and band<200)
    // strategy.exit("SL", "Long", stop=stop_loss)
    strategy.close(id="Long", when=crossunder(close, basis))
    strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<=40 and rsi(close,14)>=35)
    strategy.close(id="Short", when=crossover(close, basis))
    // strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<40 and band<200)
    // plot(upper-lower, color=color.purple,title= "DIFF",style=plot.style_linebr)
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
// fill(p1, p2)
BW = ((upper - lower)) / basis * 100

plot(BW, title="Bollinger bandwidth", color=color.red)


Больше