La estrategia RSI Momentum Long Short es una estrategia de impulso típica basada en el indicador RSI de Larry Connors, que utiliza las señales de sobrecompra y sobreventa del RSI para determinar entradas y salidas.
La estrategia construye el indicador RSI calculando el impulso al alza y el impulso a la baja de los precios durante un período de retroceso. RSI por debajo de la línea de sobreventa 10 se considera sobreventa, mientras que RSI por encima de la línea de sobrecompra 90 se considera sobrecomprada. La estrategia genera señales largas cuando RSI cruza la línea de sobreventa desde abajo, y genera señales cortas cuando RSI cruza la línea de sobrecompra desde arriba.
Se agregan filtros adicionales de promedio móvil, que solo permiten señales largas cuando el MA de 5 días está por encima del MA de 200 días y señales cortas cuando el MA de 5 días está por debajo del MA de 200 días. Esto ayuda a filtrar señales falsas de rebotes a corto plazo.
También se introducen mecanismos de toma de ganancias. Las posiciones largas existentes se cerrarán cuando el RSI cruce por encima de la línea 90 de sobrecompra. Las posiciones cortas existentes se cerrarán cuando el RSI cruce por debajo de la línea 10 de sobreventa. Esto bloquea las ganancias y evita el aumento de las pérdidas.
El uso de RSI para identificar los niveles de sobrecompra / sobreventa capta los momentos de reversión de precios.
La adición de filtros MA reduce las señales falsas del ruido a corto plazo.
Los mecanismos de obtención de ganancias ayudan a controlar los riesgos y limitar las pérdidas.
Reglas simples y claras, fáciles de entender y aplicar.
El RSI es un indicador muy utilizado y práctico, adecuado para muchos instrumentos.
El RSI sobrecomprado/sobrevendido no siempre puede dar lugar a una reversión.
Los filtros MA también podrían filtrar buenas oportunidades comerciales.
Los ajustes inadecuados para obtener ganancias abandonan las tendencias demasiado pronto.
Los parámetros como el RSI lookback, los niveles de sobrecompra / sobreventa, la configuración de MA necesitan ajuste.
Los riesgos pueden reducirse mediante la optimización de parámetros, la combinación de otros indicadores, la obtención de beneficios flexibles, etc.
Prueba RSI con diferentes períodos de retroceso.
Agregue otros indicadores como KDJ, MACD para complementar el RSI.
Ajustar los niveles de sobrecompra/sobreventa en función de los regímenes de mercado.
Niveles de RSI de obtención de beneficios ajustados basados en el período de retención.
Incorporar estrategias de stop loss basadas en el porcentaje máximo de pérdidas.
Optimiza el sistema MA, usa el stop de pérdida dinámico.
La estrategia RSI Momentum Long Short captura oportunidades de reversión a corto plazo mediante el uso de RSI para identificar los niveles de sobrecompra / sobreventa, filtrados por MAs y reglas de toma de ganancias.
/*backtest start: 2023-09-25 00:00:00 end: 2023-10-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //authour: SudeepBisht //@version=3 //Based on Larry Connors RSI-2 Strategy - Lower RSI strategy("SB_CM_RSI_2_Strategy_Version 2.0", overlay=true) src = close entry= input(defval=0,title="Entry area") entry:=nz(entry[1]) overBought=input(90) overSold=input(10) //RSI CODE up = rma(max(change(src), 0), 2) down = rma(-min(change(src), 0), 2) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //Criteria for Moving Avg rules ma5 = sma(close,5) ma200= sma(close, 200) //Rule for RSI Color col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver chk= col==red?-1:col==lime?1:0 if (not na(rsi)) if (crossover(rsi, overSold)) if(chk[1]==1) strategy.entry("RsiLE", strategy.long, comment="RsiLE") entry:=1 if (crossunder(rsi, overBought)) if(chk[1]==-1) strategy.entry("RsiSE", strategy.short, comment="RsiSE") entry:=-1 if (not na(rsi)) if (crossover(rsi, overSold) and entry==-1) strategy.close_all() //strategy.entry("RsiLE", strategy.long, comment="RsiLE") entry:=0 if (crossunder(rsi, overBought) and entry==1) strategy.close_all() //strategy.entry("RsiSE", strategy.short, comment="RsiSE") entry:=0