Estratégia de ruptura de bandas de Bollinger duplas

Autora:ChaoZhang, Data: 2023-12-25 13:20:31
Tags:

img

Resumo

A estratégia Double Bollinger Bands Breakout é uma estratégia de seguimento de tendências. Ela usa as bandas superior e inferior das Bandas de Bollinger para julgar as tendências de preços e estabelecer posições longas quando os preços atravessam as Bandas de Bollinger internas e fechar posições quando os preços caem abaixo das Bandas de Bollinger externas.

Estratégia lógica

A estratégia primeiro calcula a média móvel e o desvio padrão durante um período especificado.

Quando os preços quebram acima da faixa interna superior, indica que o mercado está começando uma corrida de touro, então vai longo.

O lucro de saída para posições longas é quando os preços caem abaixo da faixa externa inferior.

A estratégia também define saídas de stop loss, take profit e stop loss.

Análise das vantagens

A estratégia Double Bollinger Bands Breakout tem as seguintes vantagens:

  1. O uso de bandas de Bollinger duplas para julgar os movimentos de preços permite um acompanhamento eficaz da tendência;
  2. A introdução de breakouts na faixa interna evita transações desnecessárias de reversão da média;
  3. O risco é efetivamente controlado através da tomada de lucro, das paradas de perdas e das paradas de perdas;
  4. Os parâmetros otimizáveis permitem ajustar para diferentes produtos.

Análise de riscos

A estratégia Double Bollinger Bands Breakout também tem alguns riscos:

  1. Podem ocorrer frequentes entradas e stop loss durante os mercados variáveis;
  2. A configuração inadequada dos parâmetros pode provocar entradas ou saídas muito fáceis;
  3. As fugas às vezes dão sinais falsos resultando em fugas fracassadas.

Para abordar esses riscos, os parâmetros podem ser ajustados, filtros adicionais adicionados ou quebras monitoradas manualmente para reduzir o risco.

Orientações de otimização

A estratégia do Double Bollinger Bands Breakout pode ser otimizada de várias maneiras:

  1. Otimizar os parâmetros da média móvel e do desvio-padrão para se adequarem aos diferentes produtos;
  2. Adicionar o volume, o MACD ou outros filtros para evitar falhas;
  3. Usar métodos de aprendizagem de máquina para otimizar dinamicamente parâmetros;
  4. Copie a estratégia em múltiplos intervalos de alta frequência para expandir o potencial de lucro.

Conclusão

A estratégia Double Bollinger Bands Breakout julga as mudanças no preço em relação às bandas de Bollinger para entradas de tempo em uma abordagem típica de tendência. A estratégia define metas de lucro usando as bandas duplas e mecanismos de saída científica para controlar o risco. Com parâmetros e controles de risco otimizados, pode alcançar bons resultados.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = close>inu and rising(outu,1) 
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)

shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Mais.