Bollinger Bands Breakout Estratégia de negociação quantitativa

Autora:ChaoZhang, Data: 2024-02-04 14:52:52
Tags:

img

Resumo

Esta estratégia calcula a banda superior, a banda média e a banda inferior das Bandas de Bollinger e combina o preço de fechamento da linha K para implementar a estratégia de negociação de ruptura das Bandas de Bollinger.

Princípio da estratégia

  1. Calcular a SMA da faixa média das Bandas de Bollinger com período 60, representando a faixa média da tendência de preços.

  2. Calcule a banda superior e a banda inferior das Bandas de Bollinger. A banda superior é a banda média + 2 vezes o desvio padrão e a banda inferior é a banda média - 2 vezes o desvio padrão. A largura da banda é controlada pelo multiplicador.

  3. Quando o preço de fechamento for maior que a faixa superior, vá longo. Quando o preço de fechamento for inferior à faixa inferior, vá curto.

  4. Configure o mecanismo de stop loss e take profit. A percentagem de stop loss é de 1,5% e a percentagem de take profit é de 6%.

  5. Quando o preço voltar a entrar nas Bandas de Bollinger ou atingir o preço stop loss/take profit, posição fechada.

Análise das vantagens

  1. O indicador Bollinger Bands tem uma forte capacidade de julgamento da tendência por ruptura.

  2. Uma lógica estratégica simples e fácil de compreender e implementar.

  3. Parar perdas e assumir riscos de controlo de lucros.

Análise de riscos

  1. A ruptura das bandas de Bollinger não pode determinar com precisão os pontos de inversão da tendência de preços, com o risco de ruptura falsa.

  2. As configurações desproporcionadas de stop loss e take profit podem acarretar riscos maiores.

  3. A alta frequência de negociação pode ser afectada pelos custos de transacção.

Orientações de otimização

  1. Combinar com outros indicadores para filtrar sinais falsos, por exemplo, KDJ para tendência e MACD para divergência.

  2. Ajustar dinamicamente os parâmetros das bandas de Bollinger com base na volatilidade do mercado para calcular uma largura de banda razoável.

  3. Otimizar a estratégia de stop loss e take profit, por exemplo, trailing stop ou fechamento parcial.

  4. Considerar os custos da transacção impacto e ajustar o período de detenção.

Conclusão

Esta estratégia segue a tendência do Bollinger Bands breakout e tem alguns efeitos positivos. Mas o falso breakout pode trazer maiores riscos. Combinando com outros indicadores e continuando a otimizar parâmetros pode controlar os riscos e melhorar a lucratividade.


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

//@version=5
strategy("Fuera Bolinga", overlay=true)

length = input.int(60, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
take_profit_percentage = 6.0

basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

stop_loss_percentage = 1.5

// Determinar si la vela cierra por fuera de las bandas
above_upper_band = close > upper
under_lower_band = close < lower

// Pintar las velas que cierran por fuera de las bandas
barcolor(above_upper_band ? color.new(#2cee32, 0) : na)
barcolor(under_lower_band ? color.new(#e02c2c, 0) : na)

// Entrada larga con stop loss y take profit
if (ta.crossover(close, upper))
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

// Entrada corta con stop loss y take profit
if (ta.crossunder(close, lower))
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//// Salida de operación larga
if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0))
    strategy.close("BBandLE")

// Salida de operación corta
if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0))
    strategy.close("BBandSE")
	
// Plot de las bandas de Bollinger
plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band")
plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")


Mais.