Esta estrategia utiliza bandas de Bollinger y indicadores de RSI estocásticos para generar señales que pueden indicar reversiones de precios. Por defecto, las señales bajistas se muestran como flechas rojas y las señales alcistas como flechas verdes. Antes de enviar una señal, la estrategia busca las siguientes condiciones: (bullish) la vela se cierra por encima de la banda superior de Bollinger, la vela posterior se cierra dentro de la banda superior, y el RSI estocástico está por debajo de un umbral preestablecido (default 10); (bearish) la vela se cierra por debajo de la banda inferior de Bollinger, la vela posterior se cierra dentro de la banda inferior, y el RSI estocástico está por encima de un umbral preestablecido (default 90).
El principio básico de esta estrategia es utilizar bandas de Bollinger y RSI estocástico, dos indicadores técnicos, para capturar señales potenciales de inversión de precios. Las bandas de Bollinger consisten en una banda media (generalmente una media móvil) y dos bandas superior e inferior (banda media más / menos desviaciones estándar), que pueden reflejar la volatilidad de precios. Cuando el precio rompe la banda superior o inferior, generalmente indica que el sentimiento del mercado es demasiado optimista o pesimista, y el precio puede revertirse.
La Estrategia de señales extremas de Bollinger Bands Stochastic RSI combina dos indicadores técnicos, Bollinger Bands y Stochastic RSI, utilizando las rupturas de precios de las bandas superiores e inferiores de Bollinger Bands y Stochastic RSI que alcanzan áreas extremas de sobrecompra / sobreventa como potenciales señales de reversión, formando una estrategia de negociación simple y fácil de usar. La estrategia tiene ventajas como señales confiables y amplia aplicabilidad, pero tiene un rendimiento pobre en los mercados de rango, puede retrasarse en los mercados de tendencia y es bastante sensible a la configuración de parámetros. Por lo tanto, en aplicaciones prácticas, podemos considerar la optimización y mejora de la estrategia desde aspectos como la confirmación de tendencia, parámetros dinámicos, stop-loss y take-profit, y combinarla con otros indicadores, con el fin de mejorar su capacidad de adaptación y rentabilidad y servir a una mejor práctica cuantitativa.
/*backtest start: 2023-04-06 00:00:00 end: 2024-04-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(shorttitle='BBSR Extreme', title='Bollinger Bands Stochastic RSI Extreme Signal', overlay=true) //General Inputs src = input(close, title='Source') offset = input.int(0, 'Offset', minval=-500, maxval=500) //Bollinger Inputs length = input.int(20, title='Bollinger Band Length', minval=1) mult = input.float(2.0, minval=0.001, maxval=50, title='StdDev') //Bollinger Code basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev plot(basis, 'BB Basis', color=color.new(#872323, 0), offset=offset) p1 = plot(upper, 'BB Upper', color=color.new(color.teal, 0), offset=offset) p2 = plot(lower, 'BB Lower', color=color.new(color.teal, 0), offset=offset) fill(p1, p2, title='BB Background', color=color.new(#198787, 95)) //Stoch Inputs smoothK = input.int(3, 'K', minval=1) smoothD = input.int(3, 'D', minval=1) lengthRSI = input.int(14, 'RSI Length', minval=1) lengthStoch = input.int(14, 'Stochastic Length', minval=1) upperlimit = input.float(90, 'Upper Limit', minval=0.01) lowerlimit = input.float(10, 'Upper Limit', minval=0.01) //Stochastic Code rsi1 = ta.rsi(src, lengthRSI) k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = ta.sma(k, smoothD) //Evaluation Bear = close[1] > upper[1] and close < upper and k[1] > upperlimit and d[1] > upperlimit Bull = close[1] < lower[1] and close > lower and k[1] < lowerlimit and d[1] < lowerlimit //Plots plotshape(Bear, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny) plotshape(Bull, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny) // Alert Functionality alertcondition(Bear or Bull, title='Any Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' BB Stochastic Extreme!') alertcondition(Bear, title='Bearish Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' Bearish BB Stochastic Extreme!') alertcondition(Bull, title='Bullish Signal', message='{{exchange}}:{{ticker}}' + ' {{interval}}' + ' Bullish BB Stochastic Extreme!') if Bear strategy.entry('Enter Long', strategy.long) else if Bull strategy.entry('Enter Short', strategy.short)