Bollinger Bands Breakout Estrategia de negociación cuantitativa

El autor:¿ Qué pasa?, fecha: 2024-02-04 14:52:52
Las etiquetas:

img

Resumen general

Esta estrategia calcula la banda superior, la banda media y la banda inferior de las bandas de Bollinger y combina el precio de cierre de la línea K para implementar la estrategia de negociación de ruptura de las bandas de Bollinger.

Principio de la estrategia

  1. Calcular la banda media SMA de las bandas de Bollinger con el período 60, que representa la banda media de la tendencia de los precios.

  2. Calcule la banda superior y la banda inferior de las bandas de Bollinger. La banda superior es la banda media + 2 veces la desviación estándar y la banda inferior es la banda media - 2 veces la desviación estándar.

  3. Cuando el precio de cierre es mayor que la banda superior, ir largo. Cuando el precio de cierre es menor que la banda inferior, ir corto.

  4. Configure el mecanismo de stop loss y take profit. El porcentaje de stop loss es de 1.5% y el porcentaje de take profit es de 6%.

  5. Cuando el precio vuelve a entrar en las bandas de Bollinger o alcanza el precio de stop loss/take profit, cierre la posición.

Análisis de ventajas

  1. El indicador Bollinger Bands tiene una gran capacidad de juicio de tendencia por ruptura.

  2. Una lógica estratégica sencilla y fácil de entender e implementar.

  3. Detener pérdidas y tomar riesgos de control de ganancias.

Análisis de riesgos

  1. La ruptura de las bandas de Bollinger no puede determinar con precisión los puntos de reversión de la tendencia de los precios, con el riesgo de una ruptura falsa.

  2. Los ajustes de stop loss y take profit no razonables pueden acarrear mayores riesgos.

  3. La alta frecuencia de las operaciones puede verse afectada por los costes de transacción.

Direcciones de optimización

  1. Combinar con otros indicadores para filtrar señales falsas, por ejemplo, KDJ para tendencia y MACD para divergencia.

  2. Ajustar dinámicamente los parámetros de las bandas de Bollinger basados en la volatilidad del mercado para calcular un ancho de banda razonable.

  3. Optimizar la estrategia de stop loss y take profit, por ejemplo, el stop trailing o el cierre parcial.

  4. Considerar los costes de transacción impacto y ajustar el período de retención.

Conclusión

Esta estrategia sigue la tendencia de la ruptura de Bollinger Bands y tiene algunos efectos positivos. Pero la ruptura falsa puede traer mayores riesgos. La combinación con otros indicadores y mantener la optimización de los parámetros puede controlar los riesgos y mejorar la rentabilidad.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fuera Bolinga", overlay=true)

length = input.int(60, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
take_profit_percentage = 6.0

basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

stop_loss_percentage = 1.5

// Determinar si la vela cierra por fuera de las bandas
above_upper_band = close > upper
under_lower_band = close < lower

// Pintar las velas que cierran por fuera de las bandas
barcolor(above_upper_band ? color.new(#2cee32, 0) : na)
barcolor(under_lower_band ? color.new(#e02c2c, 0) : na)

// Entrada larga con stop loss y take profit
if (ta.crossover(close, upper))
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

// Entrada corta con stop loss y take profit
if (ta.crossunder(close, lower))
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//// Salida de operación larga
if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0))
    strategy.close("BBandLE")

// Salida de operación corta
if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0))
    strategy.close("BBandSE")
	
// Plot de las bandas de Bollinger
plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band")
plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")


Más.