Estratégia Bollinger Breakout

Autora:ChaoZhang, Data: 2023-12-15 16:20:57
Tags:

img

Resumo

A estratégia de estoque de ruptura de Bollinger é uma estratégia de negociação quantitativa que rastreia as flutuações dos preços das ações usando Bandas de Bollinger para identificar quando os preços saem de sua faixa de volatilidade normal e gerar sinais de comércio.

Estratégia lógica

A estratégia calcula a faixa média, a faixa superior e a faixa inferior usando os preços de fechamento de 20 dias.

Quando os preços de fechamento das ações quebram abaixo da faixa inferior, isso sinaliza que os preços saíram da faixa de volatilidade normal e estão iniciando uma nova tendência de alta. A estratégia seria longa neste ponto com base no código. O stop loss é definido na menor baixa dos últimos 10 bares, enquanto o take profit é definido na maior alta dos últimos 10 bares.

Quando os preços quebram acima da faixa superior, sinaliza o início de uma nova tendência de queda. A estratégia seria curta aqui. Stop loss é o nível mais alto de 10 bar e take profit é o nível mais baixo de 10 bar.

A estratégia utiliza efetivamente as Bandas de Bollinger para identificar mudanças de tendência e faixa de volatilidade, entrando cedo quando os preços são susceptíveis de reverter.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Identifica efetivamente os pontos de mudança de tendência usando Bandas de Bollinger, capturando as tendências de curto prazo de forma eficiente.

  2. O risco de retirada é menor devido ao stop loss definido na baixa mais baixa recente, o que limita as perdas.

  3. O lucro fixado no nível mais alto recente permite maximizar os lucros dos movimentos de tendência unilaterais.

  4. Lógica simples e clara, fácil de entender e modificar, adequada para iniciantes em negociação quântica.

Análise de riscos

Há também alguns riscos a considerar:

  1. As bandas de Bollinger são muito sensíveis às mudanças de volatilidade, os parâmetros inadequados podem causar sinais falsos.

  2. Fluctuações elevadas dos preços das ações, stop loss desencadeado muito cedo, incapaz de acompanhar a tendência, pode considerar alargar as faixas de stop loss.

  3. O atraso do sinal, pode causar lucros não realizados excessivos.

  4. A imprevisibilidade do mercado dificulta a obtenção de lucros/paragem de perdas, sendo necessária uma intervenção manual para ajustar os parâmetros.

Áreas de melhoria

Algumas formas de melhorar a estratégia:

  1. Adicionar outros indicadores para confirmar sinais, por exemplo, aumento de volume.

  2. Ajustar dinamicamente os parâmetros de Bollinger para se adequarem à mudança da volatilidade.

  3. Aumentar o stop loss/take profit, por exemplo, trailing stop loss, profit taking por etapas.

  4. Testar parâmetros em diferentes unidades populacionais para encontrar o melhor ajuste.

  5. Introduzir aprendizado de máquina para otimizar automaticamente parâmetros.

Resumo

A estratégia de breakout de Bollinger tem uma lógica clara para identificar reversões. O risco de retirada limitado permite capturar tendências de curto prazo. Mas também tem limitações de metas de lucro e problemas de atraso de sinal. Pode ser melhorada por meio de ajuste de parâmetros, melhor stop loss / take profit, adição de filtros, etc. Adequado para negociação de ações de curto prazo para rastrear tendências de médio prazo.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-12-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Initial settings
strategy("Bulle de bollinger", overlay = true)

// Parameter Settings
mdl = sma(close, 20)
dev = stdev(close, 20)

upr = mdl + 2*dev
lwr = mdl - 2*dev

// Plot
plot(mdl, color = color.green) // Plot moving average
p1 = plot(upr, color = color.red) // Plot Upper_band
p2 = plot(lwr, color = color.green) // Plot lower band
fill(p1, p2, color = color.blue) // Fill transparant color between the 2 plots

// Strategy entry & close

if open[1] < lwr[1] and close[1] < lwr[1] // Previous price lower than lower band and current close is higher than lower band
    stop_level = lowest(10)
    profit_level = highest(10)
    strategy.entry(id = 'bb_buy', long = true)
    strategy.exit("TP/SL", "bb_buy", stop=stop_level, limit=profit_level)
    
if open[1] > upr[1] and close[1] > upr // Previous price is higher than higher band & current close is lower the higher band
    stop_level = highest(10)
    profit_level = lowest(10)
    //strategy.entry(id = 'bb_sell', long = false)
    //strategy.exit("TP/SL", "bb_sell", stop=stop_level, limit=profit_level)

Mais.