RSI Bollinger Bands Estratégia de negociação a curto prazo

Autora:ChaoZhang, Data: 2023-12-19 11:31:09
Tags:

img

Resumo

Esta estratégia combina o Índice de Força Relativa (RSI) e as Bandas de Bollinger para construir uma estratégia de negociação de curto prazo.

Estratégia lógica

  1. Calcular o indicador RSI com um parâmetro de 14 períodos.
  2. Calcular a faixa média de Bollinger utilizando a média móvel ponderada do RSI, com um período definido em 25.
  3. Calcule a banda superior e inferior das bandas de Bollinger. A banda superior é a banda média mais a amplitude, enquanto a banda inferior é a banda média menos a amplitude. A amplitude é definida em 20 vezes o desvio padrão do RSI.
  4. Vá longo quando o RSI atravessa a faixa inferior, e vá curto quando o RSI atravessa a faixa superior.
  5. Configure um mecanismo de stop loss que, se o preço cair abaixo de 6% do preço de entrada longa, feche a posição longa.

Análise das vantagens

Esta estratégia combina os pontos fortes do RSI e das Bandas de Bollinger para negociação a curto prazo.

  1. O RSI pode determinar efetivamente cenários de sobrecompra e sobrevenda.
  2. As bandas de Bollinger são dinâmicas para ajustar automaticamente o intervalo com base na volatilidade do mercado.
  3. A definição de stop loss é razoável, com uma tolerância de 6% para flutuações normais, enquanto se controlam as perdas.

Análise de riscos

Os riscos potenciais desta estratégia incluem:

  1. O RSI tem características de atraso e pode perder oportunidades de reversão rápida.
  2. O parâmetro de Bollinger Bands incorreto ou oscilações drásticas do mercado podem causar maus sinais.
  3. O parâmetro de stop loss definido imprudentemente pode levar a perdas desnecessárias.

Soluções:

  1. Considere a combinação com outros indicadores, como o KDJ, para um julgamento abrangente.
  2. Otimizar dinamicamente os parâmetros para diferentes mercados.
  3. Testar e otimizar o parâmetro stop loss para melhor configuração.

Orientações de otimização

Há espaço para uma maior otimização:

  1. A taxa de prejuízo é a taxa de prejuízo de uma operação.
  2. Adicionar regras do índice de largura de banda de Bollinger para pausar a negociação quando as bandas se expandirem ou contraírem demais.
  3. Combine indicadores de volume como Chaikin Cash Flow para melhor confirmação.

Resumo

Em resumo, esta é uma estratégia de negociação de curto prazo relativamente estável e confiável. Combinando os pontos fortes do julgamento de sobrecompra-supervenda do RSI e a faixa adaptativa das Bandas de Bollinger, forma um sistema de curto prazo vantajoso. Com ajuste de parâmetros e refinamento da lógica, esta estratégia pode alcançar lucros consistentes.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-10-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("rsi+bb st", shorttitle="rsibb st 0.3")

len_rsi=input(14)
len_bb = input(25)
mul10 = input(20.0)
mul=mul10/10
sl100 = input(94.0, title='stop loss rate')
sl=sl100/100

lw = 3

vwma_e(src, len) =>
    ema(src*volume, len)/ema(volume,len)

rsi = rsi(close, len_rsi)
plot(rsi, color=blue, title= 'rsi blue', linewidth=lw)
plot(70, color=gray, title='line 70', linewidth=lw)
plot(30, color=gray, title='line 30', linewidth=lw)

bbg = stdev(rsi, len_bb)*mul
bbc = vwma_e(rsi, len_bb)
//bbc=ema(rsi,len_bb)
ratio = 0.6
bbc := bbc*ratio + 50*(1-ratio)

bbu = bbc+bbg
bbl = bbc-bbg
plot(bbu, color=green, title='bb_up green', linewidth=lw)
plot(bbl, color=red, title='bb_low red', linewidth=lw)
plot(bbc, color=#808000ff, title='bb center', linewidth=lw)

plot(50, color=black)

lc = crossover(rsi, bbl) //or crossover(rsi, bbc)
sc = crossunder(rsi, bbu)

last_pos = 0*close
if lc
    last_pos := 1
else
    last_pos := last_pos[1]
if sc
    last_pos := 2

last_price = 0*close
if last_pos[1] !=1 and last_pos == 1
    last_price := close
else
    last_price := last_price[1]
    
if last_pos==1 and close < last_price*sl
    lc:=false
    sc:=true
    last_pos:=2

if (lc)
    strategy.entry("long", strategy.long)

if (sc)
    strategy.entry("short", strategy.short)

Mais.