Esta estratégia usa Bandas de Bollinger e indicadores de RSI estocástico para gerar sinais que podem indicar reversões de preços. Por padrão, os sinais de baixa são mostrados como setas vermelhas e os sinais de alta como setas verdes. Antes de enviar um sinal, a estratégia procura as seguintes condições: (bullish) a vela fecha acima da Banda de Bollinger superior, a vela subsequente fecha dentro da banda superior, e o RSI estocástico está abaixo de um limiar pré-definido (padrão 10); (bearish) a vela fecha abaixo da Banda de Bollinger inferior, a vela subsequente fecha dentro da banda inferior, e o RSI estocástico está acima de um limiar pré-definido (padrão 90).
O principal princípio desta estratégia é usar Bandas de Bollinger e RSI Estocástico, dois indicadores técnicos, para capturar sinais de reversão de preços potenciais. As Bandas de Bollinger consistem em uma faixa média (geralmente uma média móvel) e duas bandas superior e inferior (banda média mais/menos desvios padrão), que podem refletir a volatilidade dos preços. Quando o preço atravessa a faixa superior ou inferior, geralmente indica que o sentimento do mercado é excessivamente otimista ou pessimista, e o preço pode reverter.
A Estratégia de Sinais Estocásticos de RSI Extremo de Bandas de Bollinger combina dois indicadores técnicos, Bandas de Bollinger e RSI Estocástico, usando quebras de preços das Bandas de Bollinger superiores e inferiores e RSI Estocástico atingindo áreas extremas de sobrecompra/supervenda como sinais de reversão potenciais, formando uma estratégia de negociação simples e fácil de usar. A estratégia tem vantagens como sinais confiáveis e ampla aplicabilidade, mas apresenta desempenho ruim em mercados de faixa, pode ficar para trás em mercados de tendência e é bastante sensível às configurações de parâmetros. Portanto, em aplicações práticas, podemos considerar a otimização e melhoria da estratégia a partir de aspectos como confirmação de tendência, parâmetros dinâmicos, stop-loss e take-profit, e combiná-la com outros indicadores, a fim de melhorar a rentabilidade e melhor prática de adaptabilidade e servir à prática quantitativa.
/*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)