Estratégia de reversão de tendência RSI


Data de criação: 2023-10-23 17:04:13 última modificação: 2023-10-23 17:04:13
cópia: 0 Cliques: 686
1
focar em
1617
Seguidores

Estratégia de reversão de tendência RSI

Visão geral

A estratégia de reversão de tendência do RSI usa o sinal de reversão do indicador RSI para determinar o ponto de reversão de tendência em potencial, fazendo mais vazio. Esta estratégia, combinada com a reversão de preço e a reversão do RSI, pode filtrar efetivamente os falsos sinais de reversão.

Princípio da estratégia

A estratégia baseia-se em uma combinação de sinais de inversão do RSI e sinais de inversão de preços, divididos em quatro situações principais:

  1. Reversão regular de múltiplos pontos: quando o RSI forma um ponto mais baixo (significa que a tendência do RSI se reverte de cima para baixo) e o preço forma um ponto mais baixo (significa que a tendência do preço se reverte de baixo para cima), gerando um sinal de reversão regular de múltiplos pontos.

  2. Reversão oculta: Quando o RSI forma um ponto baixo mais baixo (significa que a tendência do RSI continua de cima para baixo), mas o preço forma um ponto baixo mais alto (significa que a tendência do preço se reverte de baixo para cima), gerando um sinal de reversão oculta.

  3. Reversão de cabeça vazia regular: quando o RSI forma um ponto alto mais baixo (significa que a tendência do RSI se reverte de baixo para cima) e o preço forma um ponto alto mais alto (significa que a tendência do preço se reverte de cima para baixo), gerando um sinal de reversão de cabeça vazia regular.

  4. Reversão de cabeça oculta: Quando o RSI forma um ponto alto mais alto (significa que a tendência do RSI continua de baixo para cima), mas o preço forma um ponto alto mais baixo (significa que a tendência do preço se reverte de cima para baixo), gerando um sinal de reversão de cabeça oculta.

Isso permite que a combinação de uma reversão do indicador RSI e uma reversão de preço para emitir sinais de negociação simultaneamente, para evitar falsos sinais causados apenas pelo indicador RSI ou apenas pela reversão de preço, aumentando a estabilidade da estratégia.

Análise de vantagens

A estratégia de reversão de tendência do RSI tem as seguintes vantagens:

  1. A combinação do indicador RSI com o sinal de reversão de preços pode filtrar efetivamente os falsos sinais de reversão e melhorar a qualidade do sinal. O indicador RSI por si só não pode determinar com total confiança o ponto de reversão, e precisa ser verificado em conjunto com a reversão de preços.

  2. Identificar as formas ocultas de múltiplos e ocultas, que geralmente indicam tendências de preços mais fortes, para capturar oportunidades de tendências antecipadamente.

  3. Os parâmetros do RSI e o período de revisão são personalizados, podem ser ajustados para diferentes mercados e são flexíveis.

  4. A visualização de gráficos de indicadores e sinais, intuitivamente julgar o estado do mercado.

  5. A lógica da estratégia é simples e clara, fácil de entender e adequada para a implementação de estratégias de negociação quantitativa.

Análise de Riscos

A estratégia de inversão de tendência do RSI também apresenta os seguintes riscos:

  1. A inversão do RSI combinada com a inversão do preço pode filtrar muitos sinais falsos, mas não exclui a possibilidade de erros de julgamento. O indicador é uma medida estatística do preço e não pode ser totalmente confiável.

  2. A ocultação de múltiplas cabeças e a ocultação de cabeças vazias não são fáceis de reconhecer, podendo perder essas oportunidades, o que requer um certo julgamento de experiência.

  3. A configuração inadequada dos parâmetros do ciclo de retrospectiva pode causar a perda de um ponto de retorno ou atrasos no julgamento. Diferentes mercados precisam ajustar os parâmetros do ciclo.

  4. É necessário garantir que as estratégias de parada de perdas sejam usadas em conjunto, para evitar que a queda continue após a reversão do barulho e a expansão dos prejuízos.

O risco pode ser controlado por meio de métodos como otimização de parâmetros, stop loss rigoroso e captação adequada da inversão oculta.

Direção de otimização

A estratégia de reversão de tendência do RSI pode ser otimizada nos seguintes aspectos:

  1. Ajustar os parâmetros do RSI para testar a sensibilidade de diferentes mercados aos parâmetros do ciclo do RSI e encontrar os melhores parâmetros.

  2. Otimizar os parâmetros do ciclo de retrospecção, equilibrando a necessidade de capturar os pontos de retrospecção e evitar falsos sinais.

  3. Aumentar a análise estatística do volume de transações, por exemplo, a quantidade de transações que resultam em uma reversão de preço de uma redução de estoque em massa é diferente da identificação.

  4. Combinação com outros sinais indicadores, como MACD, faixa de Brin, etc., para melhorar a precisão de julgamento.

  5. Aumentar a estratégia de parada de perdas para evitar a expansão dos prejuízos. Pode-se definir uma parada de perdas após a quebra de novos altos / novos baixos.

  6. Modificar a lógica da estratégia de acordo com os resultados do teste de retorno, melhorar o fator de lucro. Por exemplo, ajustar a relação lógica das condições de abertura de posição (com, ou sem), procurar a melhor estratégia de negociação.

Resumir

A estratégia de reversão de tendência do RSI identifica potenciais pontos de reversão de tendência por meio de uma combinação de reversões de indicadores do RSI e reversões de preços. Ela usa com eficiência a capacidade de discernimento de tendência do RSI, ao mesmo tempo em que combina sinais de filtragem de falsidade de preços.

Código-fonte da estratégia
/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="Divergence Indicator", format=format.price)
strategy(title="RSI Divergence Indicator", overlay=false,pyramiding=1, default_qty_value=2,   default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)

len = input(title="RSI Period", minval=1, defval=5)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)

bearColor = color.purple
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)

osc = rsi(src, len)

plot(osc, title="RSI", linewidth=2, color=#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)

plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true

_inRange(cond) =>
    bars = barssince(cond == true)
    rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish

// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)

bullCond = plotBull and priceLL and oscHL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish",
	 linewidth=2,
	 color=(bullCond ? bullColor : noneColor),
	 transp=0
	 )


plotshape(
	 bullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish Label",
	 text=" Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bullish

// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)

hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish Label",
	 text=" H Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

longCondition=bullCond or hiddenBullCond
//? osc[lbR] : na  
//hiddenBullCond
strategy.entry(id="RSIDivLE", long=true,  when=longCondition)


//------------------------------------------------------------------------------
// Regular Bearish

// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)

bearCond = plotBear and priceHH and oscLH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor),
	 transp=0
	 )

plotshape(
	 bearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish Label",
	 text=" Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bearish

// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish Label",
	 text=" H Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )
longCloseCondition=crossover(osc,75) or bearCond
strategy.close(id="RSIDivLE",  when=longCloseCondition)