
Esta estrategia es una versión mejorada de la estrategia de seguimiento de tendencias basada en el indicador de la franja de Brin. Confirma la fiabilidad de la tendencia mediante la vigilancia de los precios y tres toques consecutivos de la franja de Brin, lo que permite operar con una mayor tasa de ganancias. La estrategia utiliza una media móvil de 20 ciclos como trayecto medio, y el doble de la diferencia estándar como base de cálculo para el trayecto ascendente y descendente.
La lógica central de la estrategia consiste en identificar el contacto continuo de los precios con los límites de la banda de Brin a través de un mecanismo de cálculo. Cuando los precios rompen el tren tres veces consecutivas, el sistema emite una señal múltiple; cuando los precios rompen el tren tres veces consecutivas, el sistema emite una señal de vacío. Este mecanismo filtra eficazmente las brechas falsas y mejora la fiabilidad de las operaciones.
La estrategia permite un seguimiento de tendencias de alta fiabilidad mediante la mejora de los sistemas tradicionales de comercio de la banda de Bryn. Su exclusivo mecanismo de confirmación de triple toque mejora eficazmente la ganancia de las operaciones, mientras que el mecanismo de posición cerrada basado en medias móviles ofrece un resultado de ganancias razonables. Aunque la estrategia sigue teniendo algunos riesgos inherentes, la estabilidad y la rentabilidad de la estrategia pueden ser mejoradas aún más mediante la orientación de optimización que se ofrece.
/*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")