Estrategia de trading con el indicador de divergencia RSI de corto y largo plazo


Fecha de creación: 2024-01-15 12:09:54 Última modificación: 2024-01-15 12:09:54
Copiar: 2 Número de Visitas: 837
1
Seguir
1617
Seguidores

Estrategia de trading con el indicador de divergencia RSI de corto y largo plazo

Descripción general

La estrategia determina la tendencia de la volatilidad del mercado y toma decisiones de negociación mediante el cálculo de la divergencia de la volatilidad en el indicador RSI. En concreto, se considera una señal oculta de la volatilidad cuando el RSI forma bajos más bajos pero los precios forman bajos más altos; y una señal oculta de la volatilidad cuando el RSI forma altos más altos pero los precios forman altos más bajos. De acuerdo con estas señales, se determina la tendencia potencial de la volatilidad del mercado y se realiza una operación.

Principio de estrategia

La estrategia se basa principalmente en la teoría de la divergencia múltiple de los indicadores RSI. Cuando el RSI y el precio forman una divergencia inversa, se prevé una posible reversión del mercado. Se dividen en las siguientes cuatro situaciones:

  1. Señales normales de múltiples vertientes: el RSI forma bajos más altos y el precio forma bajos más bajos. Indica que los compradores han subido el RSI pero no se han reflejado completamente en el precio, lo que indica un aumento de la fuerza de múltiples vertientes.

  2. Las señales ocultas de múltiples cabezas: el RSI forma bajos más bajos y el precio forma bajos más altos. Indica que el alza de la bolsa ha reducido el RSI pero no se ha reflejado completamente en el precio, lo que indica un aumento de la fuerza de múltiples cabezas.

  3. Señales normales de caída: el RSI forma altos más bajos y los precios forman altos más altos. Indica que el precio de venta ha subido pero no se refleja completamente en el RSI, lo que indica un aumento de la fuerza de caída.

  4. Señales ocultas de cabeza: el RSI forma un punto más alto y el precio forma un punto más bajo. Indica que los compradores han subido el RSI pero no se han reflejado completamente en el precio, lo que indica un aumento de la fuerza de la cabeza.

En base a las discrepancias mencionadas, evalúe las tendencias potenciales de mercado en el mercado y el aumento de la fuerza de compra y venta para elaborar una estrategia de negociación.

Ventajas estratégicas

  1. Utiliza la teoría de la divergencia de espacios múltiples del RSI para evaluar las tendencias potenciales del mercado.
  2. También se puede combinar con la tendencia de los precios como confirmación para evitar señales de ruido.
  3. La capacidad de captar señales importantes antes de una rápida reversión de los mercados, y de tomar decisiones anticipadas.
  4. Se ha implementado una visualización de las señales multi-espacio, que es fácil de usar e intuitiva.
  5. Los parámetros se pueden personalizar para adaptarse a diferentes entornos de mercado.

Riesgo estratégico

  1. Las divergencias entre el RSI y el precio no necesariamente indican una reversión, sino que pueden ser un ajuste normal.
  2. Las señales ocultas son más fuertes que el ruido y pueden causar errores de juicio.
  3. Se necesitan más indicadores o métodos de análisis técnico para confirmar la señal.
  4. La configuración incorrecta de los parámetros de la señal también puede afectar el juicio.

Dirección de optimización

  1. Aumentar el MACD, KDJ y otros indicadores en combinación con el RSI para determinar la señal de entrada.
  2. Aumentar las estrategias de stop loss y reducir las pérdidas individuales.
  3. Optimización de la configuración de los parámetros, como la búsqueda de un parámetro de ciclo RSI más adecuado.
  4. Aumentar los algoritmos de aprendizaje automático para entrenar la precisión de las señales de entrada.
  5. Aumentar el comportamiento en tiempo real del websocket para reducir el retraso en la confirmación de la señal.

Resumir

La estrategia se basa principalmente en la divergencia de la variación de la RSI para juzgar la tendencia potencial de la variación de la variación del mercado, y las predicciones hacen inversiones al capturar los cambios en la fuerza relativa de las posiciones de compra y venta en el movimiento de los precios. Tiene una cierta función de predicción anticipada. Pero también existe un cierto riesgo de señales de ruido.

Código Fuente de la Estrategia
/*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
	 )