HPotter

Relative Momentum Index

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".
Remove from Favorite Scripts Add to Favorite Scripts
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/09/2014
// 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".    
////////////////////////////////////////////////////////////
study(title="Relative Momentum Index", shorttitle="RMI")
xPrice = close
Length = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
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))
plot(nRes, color=blue, title="RMI")
DONATE/TIP

BTC: 1Lo1GoTNsPbrjGAgPgF4MYZPhBFdoVHaTm
Here's a colorized version if you want to pretty yours up...



Props to Lark - https://www.tradingview.com/u/TheLark/
Reply
FYI: Here is the RMI created by user TheLark

Reply
I found a small issue with your script. The zero line doesn't work. It has to be set to 50 not 0 :)
Reply
ChartArt ChartArt
I mean it seems to 55 not 50.
Reply
HPotter PRO ChartArt
What about script do you speak?
Reply
ChartArt HPotter
RMI has three levels: 0 (zero line), 70 (overbought), 40 (oversold).

The first level (hline) needs to be 55 not 0.
Reply
HPotter PRO ChartArt
Oh, I understood. I do not know how work this versions of the scripts for fix. I hope that peoples will fix it yourself. Thank you.
Reply
The RMI seems to be one of the many indicators which sound awesome in theory but produce many false signals in reality.

snapshot
Reply
ChartArt ChartArt
RSI vs RMI (both with a period length of 20 days)

snapshot
Reply
United States
United Kingdom
India
Deutschland
France
España
Italia
Polska
Türkiye
Россия
Brasil
Indonesia
Malaysia
ประเทศไทย
Việt Nam
日本
한국
简体
繁體
Home Stock Screener Forex Signal Finder Cryptocurrency Signal Finder Economic Calendar How It Works Chart Features House Rules Moderators Website & Broker Solutions Widgets Stock Charting Library Feature Request Blog & News FAQ Help & Wiki Twitter
Profile Profile Settings Account and Billing My Support Tickets Contact Support Ideas Published Followers Following Private Messages Chat Sign Out