Estratégia de ruptura das bandas de Bollinger

Autora:ChaoZhang, Data: 2024-02-20 15:53:12
Tags:

img

Resumo

A estratégia de ruptura das Bandas de Bollinger é uma estratégia quantitativa de negociação simples baseada no indicador de Bandas de Bollinger. A estratégia utiliza os níveis de suporte e resistência dinâmicos fornecidos pelas bandas superior e inferior das Bandas de Bollinger para definir regras de entrada para posições longas quando os preços quebram as bandas e regras de saída quando os preços quebram as bandas, com o objetivo de capturar oportunidades de tendência nos movimentos de preços.

Estratégia lógica

O indicador de Bandas de Bollinger foi desenvolvido por John Bollinger na década de 1980. Ele consiste em uma média móvel de n períodos e m vezes o desvio padrão acima e abaixo dela. A média móvel atua como o ponto médio, enquanto o desvio padrão responde pela volatilidade.

As regras de saída são: para as posições longas existentes, liquidar quando o preço de fechamento ultrapassar a faixa superior; para as posições curtas existentes, cobrir quando o preço de fechamento ultrapassar a faixa inferior.

Trata-se de uma estratégia de seguimento de tendências, que visa lucrar com movimentos de preços direcionais sustentados, captando a continuação da tendência sinalizada pela quebra das Bandas de Bollinger.

Vantagens

  1. A utilização de Bandas de Bollinger como níveis dinâmicos de suporte/resistência em vez de preços fixos torna a estratégia adaptável à evolução das condições de mercado.

  2. As decisões baseiam-se tanto nos níveis de preços como nas condições de volatilidade, evitando alguns falsos sinais.

  3. A estrutura de fuga é simples e intuitiva.

  4. O ajustamento flexível dos parâmetros torna a estratégia adaptável a todos os produtos e mercados.

Riscos

  1. O mau ajuste dos parâmetros dos indicadores pode causar negociações demasiado frequentes e custos desnecessários.

  2. Os sinais de ruptura podem ser apenas flutuações de preços a curto prazo em vez de tendências sustentáveis.

  3. A ausência de stop loss expõe a estratégia a riscos de perdas descontroladas.

  4. O sistema puramente técnico perde as inversões de tendência fundamentais.

  5. O desempenho pode variar entre diferentes produtos sem ajustamentos.

Oportunidades de melhoria

  1. Otimizar os parâmetros para aumentar a robustez.

  2. Incorporar ordens de stop loss para limitar as perdas.

  3. Construir um sistema multi-temporário para melhorar as decisões.

  4. Adicione filtros de volume para evitar sinais falsos.

  5. Complementar os fundamentos para melhores entradas de tempo e posições de tamanho.

  6. Avalie a estratégia em mais produtos para testar a adaptabilidade.

Resumo

A estratégia de breakout Bollinger Bands fornece uma abordagem simples de tendência seguindo o impulso sinalizado por breakouts baseados em indicadores. Sua força reside na identificação dinâmica de continuações de tendência. Controles de risco adequados e melhorias de robustez podem transformá-la em uma estratégia sistemática viável.


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

//@version=5
strategy("Bollinger Bands Strategy", overlay=true)

length = input.int(20, title="Bollinger Bands Length", minval=1)
maType = input.string("SMA", title="Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, title="StdDev Multiplier", minval=0.001, maxval=50)
offset = input.int(0, title="Offset", minval=-500, maxval=500)

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev + offset
lower = basis - dev - offset

// Define strategy entry and exit conditions
strategy.entry("Buy", strategy.long, when=close < lower)
strategy.close("Buy", when=close > upper)

strategy.entry("Sell", strategy.short, when=close > upper)
strategy.close("Sell", when=close < lower)

// Plotting the Bollinger Bands
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")


Mais.