Estratégia Bollinger Band Breakout

Autora:ChaoZhang, Data: 2023-09-11 12:24:43
Tags:

Princípios de estratégia

Esta estratégia é baseada em breakouts de Bollinger Bands. As Bandas de Bollinger são compostas por uma banda média, banda superior e banda inferior. A banda média é uma média móvel de n períodos, enquanto as bandas superior e inferior são calculadas adicionando/subtraindo x desvios padrão da banda média. Um breakout acima da banda superior indica uma tendência de alta, enquanto um breakout abaixo da banda inferior sinaliza uma tendência de queda. Os parâmetros-chave para a construção das Bandas de Bollinger são o período da banda média n e o multiplicador de desvio padrão m. Os valores típicos são 20 períodos e 1,5x desvios padrão. As configurações de n e m afetam diretamente a largura das bandas, e, portanto, a frequência dos sinais de breakout.

A vantagem desta estratégia é usar Bandas de Bollinger para determinar as tendências e a volatilidade do mercado, e entrar com base em sinais de ruptura e sair em retrações. No entanto, existem problemas como atraso de banda, sinais de ruptura não confiáveis e falta de stop loss.

Em resumo, embora a estratégia de breakout da banda de Bollinger tenha alguns méritos, ela também traz riscos significativos.


/*backtest
start: 2022-09-04 00:00:00
end: 2023-09-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-BO",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA 

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

upper = basis + dev
lower = basis - dev

if (crossover(source, upper))
    strategy.entry("Long", strategy.long)


if(crossunder(source, basis))
    strategy.close("Long")

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)


Mais.