Indice de fortaleza relativa y estrategia de cruce de la media móvil

El autor:¿ Qué pasa?, Fecha: 2023-12-21 11:30:27
Las etiquetas:

img

Resumen general

El índice de fuerza relativa (RSI) y la estrategia de cruce de promedio móvil combinan el indicador RSI y las medias móviles para tomar decisiones comerciales cuantitativas. Utiliza los niveles de sobrecompra y sobreventa indicados por el RSI para determinar entradas y salidas, junto con las señales de cruz dorada y cruz de muerte generadas cuando el RSI cruza su línea de promedio móvil.

Estrategia lógica

  1. Calcule el valor del indicador RSI. RSI mide la magnitud de los cambios recientes de precios para evaluar si un activo está sobrecomprado o sobrevendido.

  2. Calcular una línea de media móvil (MA) del RSI, utilizando una media móvil exponencial (EMA) o una media móvil simple (SMA).

  3. Cuando el RSI cruza por encima de su línea MA, se genera una señal de compra de cruz dorada.

  4. Cuando el RSI se eleva por encima del umbral de sobrecompra, el activo se considera sobrecomprado y se puede iniciar una posición corta.

Análisis de ventajas

  1. La combinación de señales cruzadas de indicadores con los niveles de sobrecompra/sobreventa del RSI mejora la precisión de las decisiones comerciales.

  2. Los umbrales de sobrecompra y sobreventa del RSI determinan las entradas y salidas óptimas.

  3. Captura de inversiones de tendencia mediante la acción de señales cruzadas de indicadores.

Análisis de riesgos

  1. El RSI puede generar señales incorrectas durante los mercados agitados o laterales.

  2. La regulación incorrecta de los umbrales de sobrecompra o sobreventa podría dar lugar a señales demasiado sueltas o demasiado estrictas.

  3. Los promedios móviles son sensibles a las anomalías a corto plazo y a los picos de volatilidad, lo que aumenta la probabilidad de que se detengan prematuramente.

Direcciones de optimización

  1. Optimizar el parámetro RSI probando diferentes períodos de longitud.

  2. Encontrar los períodos de media móvil óptimos mediante la evaluación de las diferentes longitudes MA.

  3. Prueba varios niveles de umbral de sobrecompra y sobreventa para refinar las señales de entrada.

  4. Incorpore filtros adicionales para validar las señales y evitar operaciones falsas.

Conclusión

La estrategia de cruce del RSI y del promedio móvil combina los niveles de sobrecompra / sobreventa del RSI con las señales de cruce del MA para identificar los puntos de inflexión del mercado y capturar las reversiones.


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

//@version=3
//dfurrer45
strategy(title="Relative Strength Index", shorttitle="RSI", overlay=true)
src = close, len = input(13, minval=1, title="Length"), maLen = input(9, minval=1, title="MA Lenght"), exponential = input(false, title="Exponential")

// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay   = input(defval = 3, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)
// ===  BACKTEST END  ===
backtestdaterange = (time > timestamp(FromYear, FromMonth, FromDay, 00, 00))

rsioverbought = input(90, minval=1, title="RSI % start overbought")
rsioversold = input(10, minval=1, title="RSI % start oversold")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = exponential ? ema(rsi, maLen) : sma(rsi, maLen)
rsimacrossup = cross(rsi,ma) and rsi > ma
rsimacrossdown = cross(rsi,ma) and rsi < ma
plotchar(rsimacrossup, char='⇧', location = location.belowbar, color = green, text = "", textcolor = green, size=size.small)
plotchar(rsimacrossdown, char='⇩', location = location.abovebar, color = red, text = "", textcolor = red, size=size.small)
plotchar(rsi > rsioverbought, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
plotchar(rsi < rsioversold, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)


closetrade = rsimacrossup or rsimacrossdown
strategy.close_all(closetrade)
strategy.close_all((rsi > rsioverbought) or (rsi < rsioversold))
strategy.entry("Short Overbought",strategy.short, when=(rsi > rsioverbought) and backtestdaterange)
strategy.entry("Buy Overbought",strategy.long, when=(rsi < rsioversold) and backtestdaterange)
strategy.entry("Long Cross", strategy.long, when=rsimacrossup and backtestdaterange)
strategy.entry("Short Cross", strategy.short, when=rsimacrossdown and backtestdaterange)


Más.