La estrategia Double Bollinger Bands Breakout es una estrategia de seguimiento de tendencias que utiliza las bandas superior e inferior de las Bandas de Bollinger para juzgar las tendencias de precios y establecer posiciones largas cuando los precios rompen las Bandas de Bollinger internas y cerrar posiciones cuando los precios caen por debajo de las Bandas de Bollinger externas.
La estrategia primero calcula la media móvil y la desviación estándar durante un período especificado. Luego construye las bandas de Bollinger dobles utilizando la media móvil ± una desviación estándar para las bandas internas y la media móvil ± 1,5 desviaciones estándar para las bandas externas.
Cuando los precios se rompen por encima de la banda interna superior, indica que el mercado está comenzando una carrera alcista, por lo que va largo.
El beneficio de salida para las posiciones largas es cuando los precios caen por debajo de la banda externa inferior.
La estrategia también establece salidas de stop loss, take profit y trailing stop loss.
La estrategia Double Bollinger Bands Breakout tiene las siguientes ventajas:
La estrategia Double Bollinger Bands Breakout también tiene algunos riesgos:
Para hacer frente a estos riesgos, los parámetros podrían ajustarse, se podrían añadir filtros adicionales o se podrían monitorear las rupturas manualmente para reducir el riesgo.
La estrategia de ruptura de bandas de Bollinger Dobles se puede optimizar de varias maneras:
La estrategia Double Bollinger Bands Breakout juzga en general los cambios en el precio en relación con las bandas de Bollinger a las entradas de tiempo en un enfoque de tendencia típica. La estrategia establece objetivos de ganancia utilizando las bandas dobles y mecanismos de salida científica para controlar el riesgo. Con parámetros y controles de riesgo optimizados, puede lograr buenos 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)