Estratégia de dupla linha do Bollinger Band RSI

Autora:ChaoZhang, Data: 2023-12-26 15:30:26
Tags:

img

Resumo

Esta estratégia combina as Bandas de Bollinger com o indicador do Índice de Força Relativa (RSI). requer sinais de ambos os indicadores - RSI overbought/oversold junto com breakouts das linhas superior/inferior das Bandas de Bollinger - antes de emitir quaisquer sinais de negociação. Isso torna os sinais da estratégia mais rigorosos e confiáveis.

Estratégia lógica

  1. Calcular as bandas de Bollinger constituídas por linha média, linha superior e linha inferior com base nos preços de fechamento durante um período retrospectivo.
  2. Calcule o indicador RSI para julgar se o mercado está muito otimista ou de baixa.
  3. Iniciar negociações a curto prazo apenas quando o RSI mostrar sobrecompra (maior que o parâmetro rsi_overbought) e os preços ultrapassarem a linha superior de Bollinger.
  4. Iniciar negociações longas somente quando o RSI mostrar sobrevenda (inferior ao parâmetro rsi_oversold) e o preço romper abaixo da linha inferior de Bollinger.

Ao exigir o acordo das bandas de Bollinger e do RSI, esta estratégia evita agir com base em sinais enganosos de um único indicador, tornando-se, portanto, mais fiável.

Vantagens

  1. Utiliza os pontos fortes das Bandas de Bollinger e do RSI, tornando os sinais mais rigorosos e evitando erros.
  2. As bandas de Bollinger definem canais dinâmicos para capturar os padrões de volatilidade do mercado.
  3. Os indicadores do RSI indicam cenários de sobrecompra/supervenda, evitando a perseguição de picos ou queda de queda.

Riscos

  1. Parâmetros de Bollinger inadequados podem não envolver os preços de forma eficaz.
  2. Os parâmetros RSI incorretos podem não poder avaliar com precisão as condições reais de sobrecompra/supervenda.
  3. A própria estratégia não pode determinar a direcção da tendência, exigindo outros indicadores.

Para enfrentar os riscos acima referidos, os parâmetros devem ser otimizados, os modelos rigorosamente testados e as principais tendências determinadas com indicadores adicionais.

Orientações de otimização

  1. Teste Bandas de Bollinger com diferentes períodos de retrospecção para encontrar parâmetros ótimos.
  2. Teste diferentes parâmetros do RSI para determinar configurações relativamente melhores.
  3. Adicione outros indicadores como médias móveis para determinar a tendência geral.

Conclusão

Esta estratégia combina com sucesso os pontos fortes das Bandas de Bollinger e do RSI, emitindo sinais de negociação apenas quando ambos os indicadores concordam. Isso evita agir em sinais enganosos de qualquer indicador único, tornando as negociações mais confiáveis.


/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Bollinger + RSI, Double Strategy (by ChartArt) v1.1", shorttitle="CA_-_RSI_Bol_Strat_1.1", overlay=true)

// ChartArt's RSI + Bollinger Bands, Double Strategy - Update
//
// Version 1.1
// Idea by ChartArt on January 18, 2015.
//
// This strategy uses the RSI indicator 
// together with the Bollinger Bands 
// to sell when the price is above the
// upper Bollinger Band (and to buy when
// this value is below the lower band).
//
// This simple strategy only triggers when
// both the RSI and the Bollinger Bands
// indicators are at the same time in
// a overbought or oversold condition.
//
// In this version 1.1 the strategy was
// both simplified for the user and
// made more successful in backtesting. 
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


///////////// RSI
RSIlength = input(6,title="RSI Period Length") 
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(200, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.