Estratégia de ruptura do Bollinger Momentum

Autora:ChaoZhang, Data: 22-12-2023 13:09:32
Tags:

img

Resumo

Esta estratégia usa Bandas de Bollinger para determinar a direção da tendência do mercado combinada com o indicador RSI para filtrar sinais de alta, implementando operações de ruptura de impulso para perseguir subidas e matar quedas.

Princípio da estratégia

  1. Quando o indicador Bollinger Bands determina que o preço rompe a faixa superior, ele indica que o mercado entra em uma tendência de alta. Neste momento, use o indicador RSI para filtragem. Gerar sinal de compra quando o RSI for maior que 60. Quando o indicador BB determina que o preço rompe a faixa inferior, ele indica que o mercado entra em uma tendência de baixa. Neste momento, use o indicador RSI para filtragem. Gerar sinal de venda quando o RSI for menor que 40.

  2. Estabelecer um stop loss após a entrada no mercado para evitar perdas adicionais.

  3. Os critérios de saída são o fechamento da posição longa quando o preço retorna abaixo da faixa média BB e o fechamento da posição curta quando o preço retorna acima da faixa média BB.

Análise das vantagens

  1. O indicador Bollinger Bands pode determinar as principais tendências do mercado e capturar pontos de inflexão.

  2. A operação de perseguir subidas e matar quedas pode alcançar retornos excessivos.

  3. A definição de stop loss pode controlar os riscos.

Análise de riscos

  1. O indicador BB não é eficaz no julgamento de mercados laterais, que podem gerar sinais falsos.

  2. A configuração inadequada de stop loss pode levar a perdas adicionais.

  3. A alta frequência de negociação é afectada pelos custos de negociação e pelo deslizamento.

  4. Os sinais de ruptura precisam ser atualizados em tempo hábil, caso contrário, as melhores oportunidades de entrada podem ser perdidas.

Orientações de otimização

  1. Combinar com outros indicadores para avaliar a fiabilidade dos sinais de ruptura do BB, tais como volume, médias móveis, etc.

  2. Ajustar dinamicamente os parâmetros do BB para otimizar o desempenho do indicador.

  3. Otimizar a posição de stop loss, como trailing stop loss, stop loss percentual para reduzir perdas desnecessárias.

Resumo

A estratégia tem uma lógica clara para determinar a tendência do mercado através de BB e sinais de filtragem com RSI para a perseguição da tendência do momento. Ele possui alta frequência de operação, ciclos de lucro / perda rápidos, mais adequados para os comerciantes que buscam retornos excessivos. No entanto, a alta frequência de negociação também aumenta os custos de transação e requer uma gestão estrita do capital e controle emocional.


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


//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-Stoxguru",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
start = timestamp (2007, 1,1,0,0) 
end = timestamp (2021,11,05,0,0)
stop_level = (high[1]-low[1])
profit_level = (high[1]-low[1])
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(2, minval=0.001, maxval=50, title = "Standard Deviation") 

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev
band=upper-lower
stop_loss=low-atr(14)
if time >= start 
// and time < end
    strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>=60 and rsi(close,14)<=70)
    // strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>60 and band<200)
    // strategy.exit("SL", "Long", stop=stop_loss)
    strategy.close(id="Long", when=crossunder(close, basis))
    strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<=40 and rsi(close,14)>=35)
    strategy.close(id="Short", when=crossover(close, basis))
    // strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<40 and band<200)
    // plot(upper-lower, color=color.purple,title= "DIFF",style=plot.style_linebr)
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
// fill(p1, p2)
BW = ((upper - lower)) / basis * 100

plot(BW, title="Bollinger bandwidth", color=color.red)


Mais.