Estrategia de reversión de tendencia del RSI

El autor:¿ Qué pasa?, Fecha: 2023-10-23 17:04:13
Las etiquetas:

img

Resumen general

La estrategia de reversión de tendencia del RSI utiliza las señales de reversión del indicador RSI para identificar puntos de reversión de tendencia potenciales y entrar en operaciones largas o cortas.

Estrategia lógica

Esta estrategia se basa en la combinación de señales de reversión del RSI y señales de reversión de precios, que incluyen principalmente cuatro situaciones:

  1. Reversión alcista regular: Cuando el RSI forma un mínimo más alto (lo que significa que la tendencia del RSI se invierte de arriba a abajo) y el precio forma un mínimo más bajo (lo que significa que la tendencia del precio se invierte de abajo a arriba), se genera una señal de reversión alcista regular.

  2. Reversión alcista oculta: Cuando el RSI forma un mínimo inferior (lo que significa que la tendencia del RSI continúa de arriba a abajo) pero el precio forma un mínimo más alto (lo que significa que la tendencia del precio se invierte de abajo a arriba), se genera una señal de reversión alcista oculta.

  3. Reversión bajista regular: Cuando el RSI forma un máximo más bajo (lo que significa que la tendencia del RSI se invierte de abajo hacia arriba) y el precio forma un máximo más alto (lo que significa que la tendencia del precio se invierte de arriba hacia abajo), se genera una señal de reversión bajista regular.

  4. Reversión bajista oculta: Cuando el RSI forma un máximo más alto (lo que significa que la tendencia del RSI continúa de abajo hacia arriba) pero el precio forma un máximo más bajo (lo que significa que la tendencia del precio se invierte de arriba hacia abajo), se genera una señal oculta de reversión bajista.

Esto combina las señales de inversión del RSI y la inversión del precio para generar señales comerciales, evitando que las señales falsas se basen únicamente en el RSI o las inversiones de precios, lo que hace que la estrategia sea más robusta.

Análisis de ventajas

La estrategia de inversión de tendencia del RSI tiene las siguientes ventajas:

  1. La combinación del RSI y la reversión de precios filtra muchas señales falsas de reversión y mejora la calidad de la señal.

  2. Identificar patrones alcistas y bajistas ocultos, que a menudo preceden a tendencias de precios poderosas, permite una entrada temprana.

  3. Los parámetros del RSI y los períodos de retroalimentación personalizables pueden ajustarse para diferentes mercados, lo que ofrece flexibilidad.

  4. La visualización de patrones y señales de indicadores da un juicio intuitivo del estado del mercado.

  5. La lógica de estrategia simple y clara hace que sea fácil de entender e implementar para el comercio de algo.

Análisis de riesgos

La estrategia de inversión de tendencia del RSI también tiene los siguientes riesgos:

  1. Los indicadores son mediciones estadísticas de precios y no pueden ser totalmente confiables.

  2. Los patrones alcistas y bajistas ocultos son difíciles de identificar y las oportunidades podrían perderse sin experiencia.

  3. Los períodos de revisión incorrectos pueden llevar a la falta de puntos de inversión o a juicios atrasados.

  4. Las estrategias de stop loss deben aplicarse para evitar que las pérdidas aumenten después de inversiones bajistas.

Los riesgos se pueden gestionar optimizando los parámetros, estableciendo estrictos stop loss, tomando prudentemente señales de reversión ocultas, etc.

Direcciones de optimización

La estrategia de inversión de tendencia del RSI se puede optimizar en los siguientes aspectos:

  1. Ajustar los parámetros del RSI y la sensibilidad de prueba para encontrar el período óptimo del RSI para diferentes mercados.

  2. Optimizar los parámetros del período de retroceso para equilibrar la detección temprana de reversiones y prevenir señales falsas.

  3. Añadir análisis de volumen como la detección de un gran volumen de desdoblamiento que causa reversiones de precios.

  4. Combine otras señales de indicadores como MACD, Bandas de Bollinger para mejorar la precisión del juicio.

  5. Añadir estrategias de stop loss para limitar el tamaño de la pérdida.

  6. Refinar la lógica estratégica basada en los resultados de las pruebas de retroceso para mejorar los factores de ganancia. Ajustar las relaciones lógicas y encontrar combinaciones óptimas.

Resumen de las actividades

La estrategia de reversión de tendencia de RSI identifica puntos de inflexión de tendencia potenciales mediante la combinación de reversiones de tendencia de RSI y reversiones de precios. Hace buen uso de la capacidad de juicio de tendencia de RSI mientras filtra señales falsas con información de precio. La estrategia tiene una lógica simple y clara que es fácil de implementar. Los parámetros y la parada de pérdida se pueden optimizar para gestionar los riesgos y mejorar aún más el rendimiento.


/*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)

Más.