Relative Momentum Alternative Index

The author of the Relative Momentum Alternative Index (RMAIX) is unknown. The RMAIX uses momentum and feedback to create its oscillator value. Adjustable guides are given to fine tune the signals. The user may change the input (close), method (SMA), period lengths and guide values. This indicator’s definition is further expressed in the condensed code given in the calculation below.

Relative Momentum Alternative1

How To Trade Using Relative Momentum Alternative Index

Adjust the top and bottom guides to control the quantity and quality of the trading signals. RMAIX values above 70 to 90 are considered to be overbought and therefore offer an opportunity to sell. DSS values below 30 to 10 are considered oversold and present an opportunity to buy. If the RMAIX peaks above the top guide a sell signal will be generated. Conversely, if the RMAIX troughs below the bottom guide a buy signal will be given. The 50 line divides the bulls above from the bears below.

Relative Momentum Alternative2

How To Access in MotiveWave

Go to the top menu, choose Study>Welles Wilder>Relative Momentum Alternative Ind

or go to the top menu, choose Add Study, start typing in this study name until you see it appear in the list, click on the study name, click OK.

Important Disclaimer: The information provided on this page is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security. Please see our Risk Disclosure and Performance Disclaimer Statement.


//input = price, user defined, default is closing price
//method = moving average (ma), user defined, default is SMA
//period = user defined, default is 14
//lookBack = user defined, default is 10
//diff = difference, prev = previous
//avg = average, index = current bar number

maUp = 0, maDn = 0;
rmaix = 0;
diff = momentum(index, lookBack, input);
up = 0, down = 0;
if (diff moreThan 0) up = diff;
else down = abs(diff);
if (index == period + lookBack)
    maUp = ma(method, index, period, up);  //initial default value for prevAvgUp
    maDn = ma(method, index, period, down); //initial default value for prevAvgDn
prevAvgUp = ifNull(maUp, avgUp[index-1]);
prevAvgDn = ifNull(,maDn, avgDn[index-1]);
avgUp =  (prevAvgUp * (period - 1) + up) / period;
avgDn = (prevAvgDn * (period - 1) + down) / period;
if (avgUp + avgDn != 0) rmaix = 100 * avgUp / (avgUp + avgDn);
Plot: rmaix;
double prevR = rmaix[index-1];
highSell = rmaix for last sell signal, reset to max_negative at each  buy signal;
lowBuy = rmaix for last buy signal, reset to max_positive at each sell signal;
sell = (rmaix moreThan topGuide) AND (prevR moreThan rmaix) AND (rmaix moreThan highSell);
buy = (rmaix lessThan bottomGuide AND prevR lessThan rmaix) AND (rmaix lessThan lowBuy);