Esta estrategia es un sistema de negociación intradiario que combina las bandas de Bollinger y los niveles de retroceso de Fibonacci. Identifica las condiciones de sobrecompra y sobreventa utilizando las bandas de Bollinger mientras utiliza los niveles de retroceso de Fibonacci para confirmar las posibles zonas de soporte y resistencia, capturando así las oportunidades comerciales en las fluctuaciones del mercado. La estrategia emplea bandas de Bollinger basadas en una ventana de 20 períodos y tres niveles clave de Fibonacci: 0.236, 0.382 y 0.618.
La lógica central de la estrategia se basa en los siguientes elementos clave: 1. Usar bandas de Bollinger (2 desviaciones estándar) para identificar zonas de precios sobrecompradas y sobrevendidas Calcular los niveles de retroceso de Fibonacci basados en los precios más altos y más bajos de los últimos 20 períodos Generar señales de compra cuando el precio se rompe por debajo de la banda inferior de Bollinger y permanece por encima de los niveles de soporte de Fibonacci 0.236 o 0.382 4. Generar señales de venta cuando el precio se rompe por encima de la banda superior de Bollinger y permanece por debajo del nivel de resistencia de Fibonacci 0.618. 5. Utilizar puntos fijos de stop-loss y take-profit para controlar el riesgo y asegurar las ganancias
Este es un sistema de negociación completo que combina herramientas clásicas de análisis técnico, proporcionando a los operadores un marco de negociación sistemático a través de la sinergia de bandas de Bollinger y retracements de Fibonacci.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Bollinger Bands and Fibonacci Intraday Strategy", overlay=true) // Bollinger Bands settings length = input.int(20, title="Bollinger Band Length") src = close mult = input.float(2.0, title="Bollinger Band Multiplier") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Fibonacci retracement levels fibRetrace1 = input.float(0.236, title="Fibonacci Level 0.236") fibRetrace2 = input.float(0.382, title="Fibonacci Level 0.382") fibRetrace3 = input.float(0.618, title="Fibonacci Level 0.618") // Define the Fibonacci levels based on recent high and low var float fibLow = na var float fibHigh = na if (bar_index == 0 or ta.highest(high, 20) != fibHigh or ta.lowest(low, 20) != fibLow) fibHigh := ta.highest(high, 20) fibLow := ta.lowest(low, 20) fibLevel1 = fibLow + (fibHigh - fibLow) * fibRetrace1 fibLevel2 = fibLow + (fibHigh - fibLow) * fibRetrace2 fibLevel3 = fibLow + (fibHigh - fibLow) * fibRetrace3 // Plot Fibonacci levels on the chart plot(fibLevel1, title="Fib 0.236", color=color.blue, linewidth=1) plot(fibLevel2, title="Fib 0.382", color=color.green, linewidth=1) plot(fibLevel3, title="Fib 0.618", color=color.red, linewidth=1) // Buy and Sell conditions buyCondition = close < lower and close > fibLevel1 sellCondition = close > upper and close < fibLevel3 // Plot Buy and Sell signals plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Execute strategy if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Exit strategy with stop loss and take profit stopLoss = input.float(50, title="Stop Loss (pips)", minval=1) takeProfit = input.float(100, title="Take Profit (pips)", minval=1) strategy.exit("Exit Buy", "Buy", stop=close - stopLoss * syminfo.mintick, limit=close + takeProfit * syminfo.mintick) strategy.exit("Exit Sell", "Sell", stop=close + stopLoss * syminfo.mintick, limit=close - takeProfit * syminfo.mintick)