Esta estrategia es un sistema de negociación de alta frecuencia que combina los indicadores de Bollinger Bands con señales de ruptura de precios. La estrategia monitorea la relación entre el precio y las Bandas de Bollinger, combinadas con señales de ruptura de puntos altos y bajos anteriores, para ejecutar operaciones de reversión durante las condiciones de sobrecompra y sobreventa del mercado. El sistema implementa una relación riesgo-recompensación de 1: 1 para objetivos de ganancias y pérdidas, y visualiza los niveles clave de precios para ayudar a los operadores a comprender intuitivamente las tendencias del mercado.
La lógica central de la estrategia se basa en dos condiciones principales: una señal de compra se activa cuando el precio se rompe por encima del máximo anterior y ese máximo está por debajo de la banda inferior de Bollinger; una señal de venta se activa cuando el precio se rompe por debajo del mínimo anterior y ese mínimo está por encima de la banda superior de Bollinger.
Este es un sistema de negociación integral que integra múltiples conceptos de análisis técnico. A través de la combinación de indicadores de Bollinger Bands y rupturas de precios, la estrategia puede capturar oportunidades de reversión en áreas de sobrecompra y sobreventa del mercado. Si bien hay espacio para la optimización, el marco básico del sistema tiene una buena extensibilidad y valor práctico. A través de la gestión adecuada del riesgo y la optimización de parámetros, esta estrategia tiene el potencial de lograr retornos estables en la negociación real.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-03 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Scalping", overlay=true) // Input for Bollinger Bands length and standard deviation bbLength = input(20, title="Bollinger Bands Length") stdDev = input(2.0, title="Bollinger Bands Std Dev") // Calculate and plot the Bollinger Bands basis = ta.sma(close, bbLength) deviation = stdDev * ta.stdev(close, bbLength) upperBB = basis + deviation lowerBB = basis - deviation // Get previous candle's values prevHigh = high[1] // Previous candle high prevLow = low[1] // Previous candle low // Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1]) // Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1]) // Entry and exit for Buy signals if (buyCondition) strategy.entry("Buy", strategy.long) // Calculate target and stop loss stopLossPrice = prevLow targetPrice = prevHigh + (prevHigh - stopLossPrice) // 1:1 RR target // Set stop loss and target orders strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice) // // Plot entry line // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid) // Entry and exit for Sell signals if (sellCondition) strategy.entry("Sell", strategy.short) // Calculate target and stop loss stopLossPriceSell = prevHigh targetPriceSell = prevLow - (stopLossPriceSell - prevLow) // 1:1 RR target // Set stop loss and target orders strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell) // // Plot entry line // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid) // // Plot stop loss line // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed) // // Plot target line // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid) // Plotting Bollinger Bands with 70% transparency plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70) plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70) plot(basis, color=color.blue, title="Middle Band", transp=70)