La estrategia del índice de impulso relativo (RMI) es una versión mejorada basada en el índice de impulso. Calcula el impulso de precios durante un período para determinar si el mercado está sobrecomprado o sobrevendido, con el fin de capturar oportunidades de reversión.
La fórmula de cálculo del IMR es la siguiente:
xMom = xPrice - xPrice[Length] // Price change over Length periods
xMU = If xMom >= 0: previous xMU minus xMU/Length plus xMom; else: previous xMU
xMD = If xMom <= 0: previous xMD minus xMD/Length plus absolute value of xMom; else: 0
RM = xMU / xMD
RMI = 100 * (RM / (1 + RM))
Primero calcular el cambio de precio xMom en períodos de longitud. Si xMom>=0, es decir, el precio aumenta, acumularlo en xMU; si xMom<0, es decir, la caída del precio, acumular su valor absoluto en xMD. RM es la relación entre xMU y xMD, que representa el impulso de subidas y bajadas.
Cuando el RMI es superior al umbral SellZone, el mercado está sobrecomprado, vaya corto.
Los riesgos pueden reducirse ampliando el stop loss, optimizando los parámetros, combinándolos con estrategias de tendencia, etc.
La estrategia RMI puede mejorarse en los siguientes aspectos:
La estrategia RMI captura oportunidades de retroceso a corto plazo midiendo el cambio de impulso del precio. En comparación con el RSI, el RMI es más sensible y robusto a la consolidación. Pero existen riesgos de ser detenido. Los parámetros deben optimizarse y combinarse con estrategias de tendencia para maximizar el rendimiento.
/*backtest start: 2023-10-02 00:00:00 end: 2023-10-21 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 19/10/2017 // The Relative Momentum Index (RMI) was developed by Roger Altman. Impressed // with the Relative Strength Index's sensitivity to the number of look-back // periods, yet frustrated with it's inconsistent oscillation between defined // overbought and oversold levels, Mr. Altman added a momentum component to the RSI. // As mentioned, the RMI is a variation of the RSI indicator. Instead of counting // up and down days from close to close as the RSI does, the RMI counts up and down // days from the close relative to the close x-days ago where x is not necessarily // 1 as required by the RSI). So as the name of the indicator reflects, "momentum" is // substituted for "strength". // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Relative Momentum Index", shorttitle="RMI") xPrice = close Length = input(20, minval=1) BuyZone = input(40, minval=1) SellZone = input(70, minval=1) reverse = input(false, title="Trade reverse") // hline(0, color=gray, linestyle=dashed) // hline(SellZone, color=red, linestyle=line) // hline(BuyZone, color=green, linestyle=line) xMom = xPrice - xPrice[Length] xMU = iff(xMom >= 0, nz(xMU[1], 1) - (nz(xMU[1],1) / Length) + xMom, nz(xMU[1], 1)) xMD = iff(xMom <= 0, nz(xMD[1], 1) - (nz(xMD[1],1) / Length) + abs(xMom), nz(xMD[1], 0)) RM = xMU / xMD nRes = 100 * (RM / (1+RM)) pos = iff(nRes < BuyZone, 1, iff(nRes > SellZone, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nRes, color=blue, title="RMI")