The Volatility Based Momentum (VBM) indicator is a variation on the rate-of-change ( ROC ) indicator. Instead of expressing momentum in a percentage gain or loss, VBM normalizes momentum using the historical volatility of the underlying security...The calculation for a volatility based momentum (VBM) indicator is very similar to ROC , but divides by the security’s historical volatility instead. The average true range indicator (ATR) is used to compute historical volatility.
For example, on a daily chart , VBM(22,65) calculates how many MoV price has increased or decreased over the last 22 trading days (approximately one calendar month). The second parameter is the number of periods to use with the ATR indicator to normalize the momentum in terms of volatility.
For more details, there is an article further describing VBM and its applicability versus ROC.
thinkScript Code
Code:
declare lower;
input rocPeriod = 22;
input atrPeriod = 65;
def rateOfChange = close[0] - close[rocPeriod];
def normalizationATR = atr(atrPeriod)[0];
def volatilityBasedMomentum = rateOfChange / normalizationATR;
plot VBM = volatilityBasedMomentum;
plot ZeroLine = 0;
ZeroLine.AssignValueColor(GetColor(0));