Estratégia de inversão das bandas de Bollinger

Autora:ChaoZhang, Data: 2024-02-20 17:05:47
Tags:

img

Resumo

A estratégia de zona repetitiva de bandas de Bollinger é uma estratégia quantitativa de negociação baseada em bandas de Bollinger.

Princípios

A estratégia baseia-se essencialmente nos seguintes indicadores de avaliação:

  1. Bollinger Middle Band: SMA de média móvel simples, que representa a tendência geral do mercado.

  2. Banda superior de Bollinger: média + N vezes desvio padrão.

  3. Banda inferior de Bollinger: Médio - N vezes desvio padrão.

Quando o preço de fechamento é superior à linha inferior e o preço de abertura é inferior à linha inferior, é julgado como um potencial fundo e um possível ponto de entrada. Quando o preço de fechamento é superior à linha superior e o preço de abertura é inferior à linha superior, é julgado como um sinal de ruptura potencial acima da linha superior, que também pode entrar no mercado.

Quando o preço de fechamento é inferior ao nível do trilho superior e o preço de abertura é superior ao nível do trilho superior, determina-se que entrou na parte superior da banda de Bollinger e deve ser considerada a saída.

Análise das vantagens

  1. A combinação de julgamento de duplo trilho melhora a precisão dos sinais.

  2. A variação de volatilidade é calculada com base no desvio-padrão, adaptando-se automaticamente às alterações do mercado, sem necessidade de definir manualmente intervalos de preços fixos.

  3. Combinado com o julgamento da tendência da linha média para evitar choques repetidos no mercado sem uma tendência.

  4. Utilizar o avanço do trilho médio para determinar pontos de reversão da tendência.

Análise de riscos

  1. As estratégias operacionais de médio prazo não são adequadas para participações de longo prazo.

  2. As bandas de Bollinger só são válidas dentro de um determinado período de tempo.

  3. Em um mercado limitado a um intervalo, a linha do meio flutua muito e o desencadeamento alternado de trilhos superiores e inferiores pode ser mais frequente.

Orientações de otimização

  1. Ajustar parâmetros para se adaptar a ciclos de tempo mais longos.

  2. Adicionar indicadores de volatilidade, como ATR, para evitar ainda mais falsos avanços.

  3. Combine outros indicadores para alcançar o efeito de filtro de Barry. Por exemplo, adicione regras de julgamento do volume de transações, operando apenas quando o volume de transações se expande.

Resumo

A estratégia de zona repetitiva de bandas de Bollinger identifica automaticamente potenciais extremos no mercado para definir canais de preços como oportunidades de negociação potenciais. É muito adequado para capturar inversões de preços de médio prazo e pode complementar estratégias de rastreamento de tendências. Através de otimização razoável, os riscos podem ser efetivamente controlados e a lucratividade melhorada.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Strategy", shorttitle="BB", overlay=true)

length = input.int(55, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1., minval=0.001, maxval=50, title="StdDev")

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
lower = basis - dev

// Entry conditions
enterCondition = (close > lower and open < lower and close > open) or (close > upper and open < upper and close > open)

// Exit conditions
exitCondition = (close < upper and open > upper) or (close > open and (upper - lower) > 2 * basis) or (close < lower)

strategy.entry("Long", strategy.long, when=enterCondition)
strategy.close("Long", when=exitCondition)

// Plotting
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))


Mais.