Estrategia de reversión de impulso del RSI

El autor:¿ Qué pasa?, Fecha: 2023-11-15 16:29:25
Las etiquetas:

img

Resumen general

Esta es una estrategia de trading a corto plazo basada en el indicador Relative Strength Index (RSI). Utiliza el RSI para identificar los niveles de sobrecompra y sobreventa y combina el filtrado de velas para evitar señales falsas, ingresando posiciones largas y cortas en puntos de inversión. La estrategia tiene como objetivo capturar oportunidades de reversión media después de condiciones extremas de sobrecompra o sobreventa.

Explicación de la estrategia

La lógica

En primer lugar, el indicador RSI se calcula en función del precio de cierre con un período establecido en 7. El nivel de sobrecompra se establece en 70 y el nivel de sobreventa se establece en 30. Se generan señales de compra cuando el RSI cruza por encima de 30 y se generan señales de venta cuando el RSI cruza por debajo de 70.

Para filtrar las señales falsas, el tamaño del cuerpo del candelabro necesita expandirse a 1-3 veces el rango normal cuando se activa una señal de negociación.

Cuando el RSI se mantiene por debajo de 30 durante 5 barras consecutivas, se genera una señal larga. Si la siguiente vela muestra un cuerpo alcista expandido más de 4 veces, se ejecutará una posición larga. Cuando el RSI se mantiene por encima de 70 durante 5 barras consecutivas, se generará una señal corta. Si la siguiente vela muestra un cuerpo bajista expandido más de 4 veces, se ejecutará una posición corta.

Para bloquear las ganancias, las posiciones se cerrarán cuando la dirección actual de la vela sea consistente con la dirección de la posición y el cuerpo se expanda 2 veces.

Ventajas

  1. Captura de la inversión media después de niveles extremos

El RSI es bueno para identificar condiciones de sobrecompra y sobreventa. Cuando una acción alcanza niveles extremos, hay una alta probabilidad de un retroceso, y los niveles extremos a menudo implican una reversión inminente.

  1. El filtro de candelero disminuye las señales falsas

Esta estrategia incorpora la expansión del cuerpo de la vela como un filtro, entrando en posiciones cuando un cuerpo agrandado aparece alrededor de los puntos de inversión, evitando los golpes de los mercados caóticos.

  1. Las barras RSI consecutivas aumentan la fiabilidad

Requerir 1-5 barras RSI consecutivas en zonas de sobrecompra o sobreventa actúa como una confirmación, evitando señales falsas de barras aberrantes ocasionales y mejorando la confiabilidad de la señal.

  1. Multiplicador de expansión del cuerpo flexible

El multiplicador de expansión del cuerpo se puede ajustar para diferentes productos. Para las acciones con grandes oscilaciones, los criterios se pueden relajar, mientras que para las acciones con rangos estrechos, se puede apretar. Esto permite ajustes flexibles para diferentes productos comerciales.

Los riesgos

  1. Sobreajuste potencial

La configuración de parámetros tiene algunas limitaciones inherentes. Diferentes productos y períodos de tiempo pueden requerir ajuste de parámetros. El uso de configuraciones fijas puede provocar problemas de sobreajuste.

  1. Baja precisión en la identificación de las curvas

El RSI en sí tiene algunas propiedades de retraso. Combinándose con la expansión del cuerpo, las posiciones salen prematuramente. Por lo tanto, la precisión de capturar los fondos o los picos exactos generalmente no es muy alta.

  1. Periodo de tenencia potencialmente largo en mercados variados

En los mercados de rango, el RSI puede desencadenar señales de compra y venta frecuentes, lo que resulta en largos períodos de retención.

  1. Necesita estrategias adecuadas de dimensionamiento de la posición

Como estrategia de negociación a corto plazo, se deben combinar estrategias adecuadas de dimensionamiento de posiciones, como mover el stop loss, tomar ganancias, etc., para asegurar las ganancias y controlar los riesgos.

Ideas para mejorar

  1. Prueba de diferentes conjuntos de parámetros

Se pueden probar diferentes combinaciones de parámetros del RSI, como el período, los niveles de sobrecompra / sobreventa y los filtros de velas, para encontrar parámetros optimizados para diferentes productos.

  1. Agregue stop loss y take profit

El movimiento o el porcentaje de stop loss se pueden agregar para bloquear las ganancias. o establecer stop loss basado en valores ATR o canales Donchain, etc.

  1. Combinar otros indicadores como filtros

Se pueden añadir condiciones basadas en el MACD, KDJ y otros indicadores para evitar señales erróneas de rupturas no válidas.

  1. Añadir tendencia sesgada

Utilice promedios móviles para medir el sesgo de tendencia. Considere solo las señales comerciales que se alineen con la tendencia. La estrategia puede ser detenida durante los mercados de rango. Los indicadores de fuerza de tendencia también se pueden usar como filtros.

Conclusión

En resumen, esta estrategia de reversión del RSI es una estrategia comercial típica a corto plazo con sus propios pros y contras. La principal ventaja radica en capturar retrocesos después de los extremos, mientras que el principal riesgo proviene de la baja precisión de la señal y los largos períodos de retención en rangos. Podemos mejorar la estrategia ajustando parámetros, agregando filtros, optimizando paradas, etc., para adaptarnos a más productos y condiciones de mercado y lograr resultados más constantes.


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

//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)

//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    sps := 1

if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()
    sps := 0
    

Más.