Estratégia de negociação do indicador de divergência longo-curto RSI


Data de criação: 2024-01-15 12:09:54 última modificação: 2024-01-15 12:09:54
cópia: 2 Cliques: 837
1
focar em
1617
Seguidores

Estratégia de negociação do indicador de divergência longo-curto RSI

Visão geral

A estratégia determina a tendência de vazio do mercado e toma decisões de negociação, calculando a divergência de vazio do indicador RSI. Concretamente, ela julga sinais ocultas de vazio quando o RSI forma baixos mais baixos, mas os preços formam baixos mais altos; e quando o RSI forma altos mais altos, mas os preços formam altos mais baixos, julga sinais ocultas de vazio. De acordo com esses sinais, determina a potencial tendência de vazio do mercado e negocia.

Princípio da estratégia

A estratégia baseia-se na teoria da divergência múltipla do indicador RSI. Quando o RSI e o preço formam uma divergência inversa, o mercado se reverte.

  1. Sinais normais de múltiplas cabeças: o RSI forma baixos mais altos e o preço forma baixos mais baixos. Indica que os compradores elevaram o RSI, mas não refletiram completamente no preço, indicando um aumento da força de múltiplas cabeças.

  2. Sinais ocultos de múltiplas cabeças: RSI forma baixos mais baixos e preços formam baixos mais altos. Indica que a curva de venda reduziu o RSI, mas não foi totalmente refletida no preço, indicando um aumento da força de múltiplas cabeças.

  3. Sinal de cabeça vazia normal: RSI forma um ponto mais baixo de alta e o preço forma um ponto mais alto de alta. Indica que o preço de venda foi elevado, mas não foi totalmente refletido no RSI, o que indica um aumento da força de cabeça vazia.

  4. Sinais de barulho oculto: RSI forma um alto mais alto e o preço forma um alto mais baixo. Indica que os compradores elevaram o RSI, mas não se refletiram completamente no preço, o que indica um aumento da força de barulho.

De acordo com as divergências acima, avaliar as tendências potenciais do mercado de ativos e o aumento da força de compra e venda, para elaborar uma estratégia de negociação.

Vantagens estratégicas

  1. A teoria da divergência de espaços múltiplos do RSI é usada para avaliar as tendências potenciais do mercado.
  2. Ao mesmo tempo em que se combina com a situação dos preços como confirmação, evita-se a geração de sinais de ruído.
  3. A capacidade de captar sinais importantes antes de uma rápida reversão do mercado, fazendo com que as previsões sejam antecipadas.
  4. Realização de visualização multi-espaço sinal de aviso, fácil de operar e intuitivo.
  5. Parâmetros personalizáveis para adaptar-se a diferentes cenários de mercado.

Risco estratégico

  1. A divergência entre os indicadores RSI e os preços não é necessariamente um sinal de reversão, mas pode ser um balanço normal.
  2. O sinal oculto é muito ruidoso e pode causar erros de avaliação.
  3. Para confirmar o sinal, é necessário combinar mais indicadores ou métodos de análise técnica.
  4. A configuração incorreta dos parâmetros do sinal também pode afetar o julgamento.

Direção de otimização

  1. Adicionar MACD, KDJ e outros indicadores em combinação com o RSI para determinar o sinal de entrada.
  2. Aumentar as estratégias de stop loss e reduzir as perdas individuais.
  3. Optimizar a configuração de parâmetros, como a busca de parâmetros de ciclo RSI mais adequados.
  4. Aumentar os algoritmos de aprendizagem de máquina para treinar a precisão dos sinais de entrada.
  5. Aumentar o comportamento em tempo real do websocket para reduzir o atraso na confirmação do sinal.

Resumir

A estratégia baseia-se principalmente na divergência do RSI para avaliar a potencial tendência do mercado para o mercado, captando as mudanças de força relativa das posições de compra e venda em movimentos de preços, fazendo negociações de inversão. Tem uma certa função de previsão antecipada. Mas também existe um certo risco de sinal de ruído.

Código-fonte da estratégia
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Divergence Indicator")
len = input.int(title="RSI Period", minval=1, defval=20)
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=true)
bearColor = color.red
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 = ta.rsi(src, len)

plot(osc, title="RSI", linewidth=2, color=#2962FF)
hline(50, title="Middle Line", color=#787B86, linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", color=#787B86, linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", color=#787B86, linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=color.rgb(33, 150, 243, 90))

plFound = na(ta.pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(ta.pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
	bars = ta.barssince(cond == true)
	rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low

oscHL = osc[lbR] > ta.valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low

priceLL = low[lbR] < ta.valuewhen(plFound, low[lbR], 1) 
// bull : 상승 Condition : 조건
bullCond = plotBull and priceLL and oscHL and plFound // 상승다이버전스?
strategy.entry("상승 다이버전스 진입", strategy.long, when = bullCond)
// strategy.close("상승 다이버전스 진입", when = ta.crossover(osc, 70)) 
plot(
     plFound ? osc[lbR] : na,
     offset=-lbR,
     title="Regular Bullish",
     linewidth=2,
     color=(bullCond ? bullColor : noneColor)
     )

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

//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low

oscLL = osc[lbR] < ta.valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low

priceHL = low[lbR] > ta.valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
strategy.entry("히든 상승 다이버전스 진입", strategy.long, when = hiddenBullCond)
// strategy.close("히든 상승 다이버전스 진입", when = ta.crossover(osc, 70))
plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor)
	 )

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

//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High

oscLH = osc[lbR] < ta.valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High

priceHH = high[lbR] > ta.valuewhen(phFound, high[lbR], 1)
// bear : 하락 
bearCond = plotBear and priceHH and oscLH and phFound
strategy.entry("하락 다이버전스 진입", strategy.short, when = bearCond)
// strategy.close("하락 다이버전스 진입", when = ta.crossunder(osc, 50)) 
plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor)
	 )

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

//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High

oscHH = osc[lbR] > ta.valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High

priceLH = high[lbR] < ta.valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
strategy.entry("히든 하락 다이버전스 진입", strategy.short, when = hiddenBearCond)
// strategy.close("히든 하락 다이버전스 진입", when = ta.crossunder(osc, 50)) 
plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor)
	 )

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