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.
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.
A estratégia Double Bollinger Bands Breakout tem as seguintes vantagens:
A estratégia Double Bollinger Bands Breakout também tem alguns riscos:
Para abordar esses riscos, os parâmetros podem ser ajustados, filtros adicionais adicionados ou quebras monitoradas manualmente para reduzir o risco.
A estratégia do Double Bollinger Bands Breakout pode ser otimizada de várias maneiras:
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)