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)