Bollinger Band Awesome Oscilador Breakout Estrategia de negociación

El autor:¿ Qué pasa?, Fecha: 2023-12-12 17:12:35
Las etiquetas:

img

Resumen general

Esta estrategia combina el indicador de Bollinger Bands y el indicador Awesome Oscillator (AO) para implementar un modelo de negociación de ruptura.

Estrategia lógica

  1. Utilice las bandas media, superior e inferior de las bandas de Bollinger para determinar el canal de precios.
  2. Juzga una ruptura de canal cuando la EMA rápida cruza la banda media.
  3. El indicador AO determina la dirección de la tendencia alcista o bajista.
  4. Cuando la EMA rápida rompe la banda media hacia arriba y el AO es positivo, se genera una señal de compra.
  5. Cuando la EMA rápida rompe la banda media hacia abajo y el AO es negativo, se genera una señal de venta.

Análisis de ventajas

  1. El canal BB evita señales equivocadas.
  2. El indicador AO mejora la precisión de las señales.
  3. Captura un mayor beneficio al comienzo de una tendencia.

Análisis de riesgos

  1. Los parámetros BB incorrectos pueden causar un canal demasiado ancho o demasiado estrecho.
  2. Los parámetros de AO afectan la precisión.
  3. La señal de fuga puede ser una falsa fuga.

Soluciones

  1. Optimizar los parámetros de BB y AO para encontrar la mejor combinación.
  2. Añadir la condición de fuerza para evitar la fuga falsa.
  3. Combinar con otros indicadores para garantizar su fiabilidad.

Direcciones de optimización

  1. Optimice los parámetros de BB para encontrar el rango de canal adecuado.
  2. Optimizar los períodos de AO a largo y corto plazo para mejorar la precisión.
  3. Añadir volumen u otros filtros para garantizar la fiabilidad de la ruptura.
  4. Optimice la condición de fuerza para reducir la tasa de fuga falsa.

Conclusión

Esta estrategia considera de manera integral el canal de precios, la dirección de la tendencia y el modelo de ruptura. Puede ser más robusto y rentable a través de la optimización de parámetros y combinaciones de indicadores. Su modelo de ruptura captura las primeras oportunidades de tendencia y es muy práctico.


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

//@version=3

strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true)


// === BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// Bollinger Bands Inputs
bb_use_ema = input(false, title="Use EMA for Bollinger Band")
bb_length = input(5, minval=1, title="Bollinger Length")
bb_source = input(close, title="Bollinger Source")
bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10)
// EMA inputs
fast_ma_len = input(2, title="Fast EMA length", minval=2)
// Awesome Inputs
nLengthSlow = input(34, minval=1, title="Awesome Length Slow")
nLengthFast = input(5, minval=1, title="Awesome Length Fast")




// Breakout Indicator Inputs
bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length)
fast_ma  = ema(bb_source, fast_ma_len)

// Deviation

dev = stdev(bb_source, bb_length)
bb_dev_inner = bb_mult * dev

// Upper bands
inner_high = bb_basis + bb_dev_inner
// Lower Bands
inner_low = bb_basis - bb_dev_inner

// Calculate Awesome Oscillator
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Calculate direction of AO
AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2



// === PLOTTING ===

// plot BB basis
plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2)
// plot BB upper and lower bands
ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1)
lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1)
// center BB channel fill
fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90)

// plot fast ma
plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2)

// Calc breakouts
break_down =   crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2
break_up   =  crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1

// Show Break Alerts
plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0)
plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0)
// === ALERTS ===



strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))


strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

// === /PLOTTING ===
barcolor(AO == 2 ? red: AO == 1 ? green : blue )



// eof

Más.