Estrategia de ruptura de impulso de Bollinger

El autor:¿ Qué pasa?, Fecha: 2023-12-22 13:09:32
Las etiquetas:

img

Resumen general

Esta estrategia utiliza bandas de Bollinger para determinar la dirección de la tendencia del mercado combinado con el indicador RSI para filtrar las señales alcistas, implementando operaciones de ruptura de impulso para perseguir alzas y matar caídas.

Principio de la estrategia

  1. Cuando el indicador Bollinger Bands determina que el precio se rompe a través de la banda superior, indica que el mercado entra en una tendencia alcista. En este momento, use el indicador RSI para filtrar. Génere una señal de compra cuando el RSI sea mayor de 60. Cuando el indicador BB determina que el precio se rompe a través de la banda inferior, indica que el mercado entra en una tendencia bajista. En este momento, use el indicador RSI para filtrar. Génere una señal de venta cuando el RSI sea menor de 40.

  2. Establecer un stop loss después de entrar en el mercado para evitar nuevas pérdidas.

  3. Los criterios de salida son el cierre de la posición larga cuando el precio vuelve a caer por debajo de la banda media BB y el cierre de la posición corta cuando el precio vuelve a caer por encima de la banda media BB.

Análisis de ventajas

  1. El indicador Bollinger Bands puede determinar la tendencia principal del mercado y capturar puntos de inflexión.

  2. La operación de perseguir elevaciones y matar caídas puede lograr retornos excesivos.

  3. Establecer el stop loss puede controlar los riesgos.

Análisis de riesgos

  1. El indicador BB no es eficaz para juzgar los mercados laterales, que pueden generar señales falsas.

  2. La configuración incorrecta de la parada de pérdidas puede dar lugar a pérdidas adicionales.

  3. La alta frecuencia de negociación se ve afectada por los costes de negociación y el deslizamiento.

  4. Las señales de ruptura deben actualizarse oportunamente, de lo contrario se pueden perder las mejores oportunidades de entrada.

Direcciones de optimización

  1. Combinar con otros indicadores para juzgar la fiabilidad de las señales de ruptura de BB, como el volumen, las medias móviles, etc.

  2. Ajuste dinámico de los parámetros BB para optimizar el rendimiento del indicador.

  3. Optimizar la posición de stop loss, como la pérdida de stop trailing, el porcentaje de stop loss para reducir las pérdidas innecesarias.

Resumen de las actividades

La estrategia tiene una lógica clara para determinar la tendencia del mercado a través de BB y señales de filtro con RSI para perseguir la tendencia de impulso. Cuenta con alta frecuencia de operación, ciclos de ganancia / pérdida rápidos, más adecuados para los operadores que buscan rendimientos excesivos. Sin embargo, la alta frecuencia de negociación también aumenta los costos de transacción y requiere una gestión estricta del capital y un control emocional. Se puede lograr una mayor mejora del rendimiento y la estabilidad a través de la optimización de parámetros y la optimización de pérdidas de parada.


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


//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-Stoxguru",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
start = timestamp (2007, 1,1,0,0) 
end = timestamp (2021,11,05,0,0)
stop_level = (high[1]-low[1])
profit_level = (high[1]-low[1])
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(2, minval=0.001, maxval=50, title = "Standard Deviation") 

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev
band=upper-lower
stop_loss=low-atr(14)
if time >= start 
// and time < end
    strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>=60 and rsi(close,14)<=70)
    // strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>60 and band<200)
    // strategy.exit("SL", "Long", stop=stop_loss)
    strategy.close(id="Long", when=crossunder(close, basis))
    strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<=40 and rsi(close,14)>=35)
    strategy.close(id="Short", when=crossover(close, basis))
    // strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<40 and band<200)
    // plot(upper-lower, color=color.purple,title= "DIFF",style=plot.style_linebr)
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
// fill(p1, p2)
BW = ((upper - lower)) / basis * 100

plot(BW, title="Bollinger bandwidth", color=color.red)


Más.