Estrategia de ruptura de bandas de Bollinger dobles

El autor:¿ Qué pasa?, Fecha: 2023-12-25 13:20:31
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

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.

Análisis de ventajas

La estrategia Double Bollinger Bands Breakout tiene las siguientes ventajas:

  1. El uso de bandas de Bollinger dobles para juzgar los movimientos de precios permite un seguimiento efectivo de la tendencia;
  2. La introducción de breakouts en la banda interna evita operaciones innecesarias de reversión de la media;
  3. Las operaciones de toma de ganancias, de stop loss y de trailing stop loss controlan eficazmente el riesgo;
  4. Los parámetros optimizados permiten ajustar para diferentes productos.

Análisis de riesgos

La estrategia Double Bollinger Bands Breakout también tiene algunos riesgos:

  1. Las entradas frecuentes y las pérdidas paradas pueden ocurrir durante los mercados variados.
  2. La configuración incorrecta de los parámetros podría dar lugar a entradas o salidas demasiado fáciles;
  3. Las fugas a veces dan señales falsas que resultan en fugas fallidas.

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.

Direcciones de optimización

La estrategia de ruptura de bandas de Bollinger Dobles se puede optimizar de varias maneras:

  1. Optimizar los parámetros de media móvil y desviación estándar para adaptarlos a los diferentes productos;
  2. Añadir volumen, MACD u otros filtros para evitar falsas rupturas;
  3. utilizar métodos de aprendizaje automático para optimizar dinámicamente los parámetros;
  4. Copia la estrategia a través de múltiples intervalos de alta frecuencia para expandir el potencial de ganancia.

Conclusión

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)

Más.