Estratégia de combinação de bandas de Bollinger e médias móveis

Autora:ChaoZhang, Data: 2024-02-02 17:47:12
Tags:

img

Resumo

Esta estratégia combina Bollinger Bands e Moving Averages, usando a faixa superior e a faixa inferior de Bollinger Bands para determinar as rupturas de preços e usando a média móvel rápida cruz de ouro e cruz de morte com média móvel lenta para determinar tendências.

Princípio da estratégia

Esta estratégia utiliza principalmente dois indicadores técnicos, as Bandas de Bollinger para determinar os níveis de preços e as médias móveis para determinar as tendências.

A faixa média de Bollinger é a média móvel simples do preço, a faixa superior é a faixa média + 2 desvio padrão, a faixa inferior é a faixa média - 2 desvio padrão.

A média móvel rápida é uma média móvel simples de preço de 50 períodos e a média móvel lenta é uma média móvel simples de 200 períodos.

Os sinais de entrada exigem o cumprimento de ambas as condições simultaneamente: a quebra de preço acima da faixa superior de Bollinger indica a quebra de um nível de resistência E o cruzamento rápido de MA acima da faixa lenta de MA indica uma tendência de alta; a quebra de preço abaixo da faixa inferior de Bollinger indica a quebra de um nível de suporte E a quebra rápida de MA abaixo da faixa lenta de MA indica uma tendência de queda.

Vantagens

  1. Usar a confirmação dupla pode efetivamente filtrar falhas e tornar as entradas mais precisas.

  2. As bandas de Bollinger determinam visualmente os níveis de suporte e resistência, as médias móveis determinam de forma confiável as tendências, a combinação se complementa.

  3. Alta flexibilidade de otimização em parâmetros como período de Bollinger, multiplicador de desvio padrão, períodos de MA, etc. Adapta-se a mais ambientes de mercado.

  4. Simples de implementar, fácil de entender, menos código, pode ser usado diretamente na negociação ao vivo.

Riscos

  1. Tanto as bandas de Bollinger como as MAs podem falhar em certos casos, a dupla confirmação também pode falhar juntas, causando entradas erradas.

  2. Os MAs têm um atraso na emissão, podem causar um calendário de entrada impreciso ou oportunidades perdidas.

  3. As definições de parâmetros inadequadas, como o período BB demasiado curto, os períodos MA não correspondentes, etc., podem prejudicar o desempenho da estratégia.

  4. As estratégias de fuga são propensas a falhas de impacto, mesmo com confirmação dupla.

Métodos como ajuste dinâmico de parâmetros, stop loss rigoroso, combinados com outros indicadores podem ajudar a reduzir os riscos.

Orientações de otimização

  1. Introduzir outros indicadores para a verificação da condição, por exemplo, amplificação de volume em breakouts BB, MACD para determinação de tendência, formando confirmações múltiplas.

  2. Incorporar padrões de candelabro para ajudar no tempo de entrada, por exemplo, martelo formado no toque superior do BB.

  3. Adotar MAs dinâmicas em vez de MAs estáticas para melhorar ainda mais a determinação de tendências.

  4. Configure a otimização automática de parâmetros para encontrar conjuntos de parâmetros ideais através de backtests históricos.

  5. Ajuste o tamanho da posição e os níveis de stop loss, defina o stop loss rigoroso para controlar a perda.

Conclusão

Esta estratégia combina Bandas de Bollinger e Média Móvel com base em indicadores técnicos, entra em posições somente quando ambos os breakout de preço da banda superior ou inferior de Bandas de Bollinger e cruz de ouro / morte de MAs são atendidos.


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

//@version=4
strategy("Bollinger Bands and Moving Averages Strategy", overlay=true)

// Bollinger Bands
length = input(20, minval=1, title="BB Length")
mult = input(2.0, minval=0.1, maxval=5, title="BB Standard Deviation")
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// Moving Averages
ma1_length = input(50, minval=1, title="MA1 Length")
ma2_length = input(200, minval=1, title="MA2 Length")
ma1 = sma(src, ma1_length)
ma2 = sma(src, ma2_length)

// Strategy Conditions
longCondition = crossover(src, upper) and crossover(ma1, ma2)
shortCondition = crossunder(src, lower) and crossunder(ma1, ma2)

// Strategy Execution
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)

// Plotting
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")
plot(ma1, color=color.orange, title="MA1")
plot(ma2, color=color.purple, title="MA2")


Mais.