Momentum Bollinger Bands Breakout Estratégia

Autora:ChaoZhang, Data: 2024-01-04 15:52:31
Tags:

img

Resumo

A estratégia de ruptura de bandas de Bollinger é uma estratégia quantitativa de negociação que combina o indicador de bandas de Bollinger e o indicador de média móvel para fazer operações de ruptura sob certas condições de momento.

Princípio da estratégia

A estratégia baseia-se principalmente no indicador Bollinger Bands e no indicador da média móvel MA. Bollinger Bands e médias móveis pertencem a indicadores de tendência. Bollinger Bands usam o conceito de desvio padrão para descrever a faixa de flutuação alta e baixa dos preços. A média móvel suaviza os dados de preços e julga a direção da tendência de preços.

A lógica central da estratégia é a seguinte:

  1. Iniciar os parâmetros das bandas de Bollinger e calcular o trilho médio, o trilho superior e o trilho inferior.

  2. Iniciar os parâmetros da média móvel.

  3. Signo de compra: quando o preço atravessa o trilho inferior das Bandas de Bollinger de baixo para cima e a média móvel está abaixo do trilho inferior, vá longo.

  4. Signo de venda: quando o preço atravessa o trilho superior das Bandas de Bollinger de cima para baixo e a média móvel está acima do trilho superior, vá curto.

  5. sinal de saída: quando o preço voltar a entrar no intervalo das Bandas de Bollinger, feche a posição.

A estratégia combina a utilização de bandas de Bollinger e indicadores de média móvel para gerar sinais de negociação em determinadas condições de ímpeto, que é uma estratégia típica de tendência.

Vantagens

  1. Usando Bandas de Bollinger para avaliar claramente a faixa de flutuação dos preços e a média móvel para determinar a direção da tendência dos preços, os sinais de negociação formados pela combinação de filtragem de indicadores duplos têm uma confiabilidade relativamente elevada.

  2. Além do preço quebrar o limite das Bandas de Bollinger, também requer a média móvel para quebrar, o que garante suporte de impulso suficiente para evitar falhas.

  3. Os parâmetros da estratégia são definidos de forma razoável e flexível, o que permite ajustar os parâmetros das bandas de Bollinger e dos ciclos da média móvel para se adaptarem às diferentes variedades e condições de mercado.

  4. A ideia estratégica é clara e fácil de compreender, fácil de implementar e verificar.

Riscos

  1. O próprio indicador de volatilidade Bollinger Bands tem um potencial de atraso nas tendências em rápida mudança, o que pode gerar sinais de negociação inválidos.

  2. Quando usado como um indicador de filtragem, a configuração dos seus parâmetros afeta diretamente a frequência da estratégia.

  3. Confiando tanto no indicador Bollinger Bands quanto no indicador da média móvel para formar sinais eficazes, uma vez que um deles falha, toda a estratégia será afetada.

  4. Quando os preços recuam para testar o limite das Bandas de Bollinger, eles são propensos a ficarem presos.

Orientações de otimização

  1. Otimizar os parâmetros das Bandas de Bollinger para adaptá-los a variedades com diferentes ciclos e volatilidade, como a modificação dos parâmetros do multiplicador do período e do desvio padrão das Bandas de Bollinger.

  2. Otimizar os parâmetros do ciclo da média móvel para equilibrar a frequência e o efeito de filtragem.

  3. Aumentar a estratégia de stop loss para controlar a perda máxima por negociação.

  4. Combinar com outros indicadores, como o RSI e o MACD, para formar indicadores compostos e enriquecer os sinais de negociação para a estratégia.

  5. Combinar modelos de aprendizagem de máquina para ajudar a julgar a direção da tendência de preços e a taxa de sucesso da ruptura.

Conclusão

Esta estratégia integra o indicador de Bandas de Bollinger com o indicador de média móvel para gerar sinais de entrada e saída após garantir um certo impulso de ruptura de preço. A ideia da estratégia é clara e fácil de implementar e pode rastrear efetivamente os mercados em tendência. Mas, ao mesmo tempo, também há certos riscos de retração.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
strategy("Advanced Bollinger Bands Strategy", overlay=true) 
//BB Values 
wall1= input(defval=true,title="===BB Values===",type=input.bool)
source = input(defval=close,title="BB Source",type=input.source)
length = input(20,title="BB Length", minval=1)
mult = input(2.0,title="BB Multiplier",minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev 
offset = input(0, " BB Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)
//Moving Average Values 
wall2= input(defval=true,title="===MA Values===",type=input.bool)
nfl= input(defval=14,title="Moving Average Period",type=input.integer,minval=1,maxval=100) 
source1= input(defval=close,title="Moving Average Source",type=input.source)
noisefilter= sma(source1,nfl)
plot(noisefilter,style=plot.style_line,linewidth=2,color=color.yellow,title=" Moving Average Filter")
bgcolor(noisefilter<lower?color.green:noisefilter>upper?color.red:na,title="Moving Average Filter")
//Strategy Conditions
wall3= input(defval=true,title="===Strategy Conditions===",type=input.bool)
bl= input(defval=false,title="Exit at Basis Line?",type=input.bool)
nflb= input(defval=false,title="Use Moving Average Filter?",type=input.bool)

//Strategy Condition
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper) 

if (nflb?(crossover(source,lower) and noisefilter<lower): crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
    
else
	strategy.cancel(id="BBandLE")
if (nflb?(crossunder(source,lower) and noisefilter>upper): crossunder(source, lower))
	strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE") 
else
	strategy.cancel(id="BBandSE")  
	
strategy.close_all(when=bl?crossover(source,basis) or crossunder(source,basis):crossover(source,upper) or crossunder(source,lower))


Mais.