Esta estrategia es una versión mejorada del tradicional sistema de seguimiento de tendencias de Bollinger Bands. Supervisa la acción del precio durante tres toques consecutivos de las Bandas de Bollinger para confirmar la confiabilidad de la tendencia, lo que resulta en tasas de ganancia más altas. La estrategia utiliza un promedio móvil de 20 períodos como banda media y 2 desviaciones estándar para las bandas superior e inferior. A través de un análisis detallado de las relaciones de precios con los límites de la banda, logra un sistema de negociación con ventajas únicas.
La lógica central se basa en un mecanismo de conteo para identificar los toques de precios sostenidos de los límites de la banda de Bollinger. El sistema genera una señal larga cuando el precio se rompe por debajo de la banda inferior tres veces consecutivas, y una señal corta cuando el precio se rompe por encima de la banda superior tres veces consecutivas. Este mecanismo filtra eficazmente las fallas, mejorando la confiabilidad de la negociación. La estrategia utiliza la banda media (20 promedio móvil de período) como una señal de salida, completando las operaciones cuando el precio regresa a la banda media.
Esta estrategia mejora los sistemas de negociación tradicionales de Bollinger Bands mediante la implementación de un enfoque de seguimiento de tendencias altamente confiable. Su mecanismo de confirmación de triple toque único aumenta efectivamente las tasas de ganancia, mientras que el mecanismo de salida basado en promedios móviles proporciona una solución racional de obtención de ganancias. Aunque existen riesgos inherentes, las direcciones de optimización sugeridas pueden mejorar aún más la estabilidad y la rentabilidad de la estrategia.
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true) // Input Parameters length = input.int(20, title="Bollinger Bands Length", minval=1) src = input(close, title="Source") mult = input.float(2.0, title="Multiplier", step=0.1) // Calculate Bollinger Bands basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plotBasis = plot(basis, color=color.blue, title="Basis") plotUpper = plot(upper, color=color.red, title="Upper Band") plotLower = plot(lower, color=color.green, title="Lower Band") fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill") // Counter Variables var int longCrossCount = 0 var int shortCrossCount = 0 // Detect Crossings longCondition = close < lower // Price closes below the lower band shortCondition = close > upper // Price closes above the upper band if longCondition longCrossCount += 1 // Increment the counter for long shortCrossCount := 0 // Reset the short counter if shortCondition shortCrossCount += 1 // Increment the counter for short longCrossCount := 0 // Reset the long counter if not longCondition and not shortCondition longCrossCount := 0 // Reset if no crossing shortCrossCount := 0 // Entry and Exit Rules if longCrossCount >= 3 and strategy.position_size <= 0 strategy.entry("Long", strategy.long) longCrossCount := 0 // Reset the counter after entering if shortCrossCount >= 3 and strategy.position_size >= 0 strategy.entry("Short", strategy.short) shortCrossCount := 0 // Reset the counter after entering // Exit Condition (When Price Returns to the Middle Band) exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis) if exitCondition and strategy.position_size > 0 strategy.close("Long") if exitCondition and strategy.position_size < 0 strategy.close("Short")