Indicators: Price Rate of Change (ROC)

 

Price Rate of Change (ROC):

As you know, prices drop and grow in ondulatory way, in cycles. This cyclic movement is a result of change in investors' expectations and the price control fight between bulls and bears.

Price Rate of Change (ROC) reflects this ondulatory movement like an oscillator, measuring the difference in prices in a certain period. ROC grows if prices grow and drops along with them. The more the price change is, the more ROC changes.

12- and 25-day ROC are most widely spread. A 12-day ROC is a perfect short-term and medium-term indicator of overbought/oversold.

The higher ROC is, the more probable the rise. However, like in the case of using all other overbought/oversold indicators, you should not hurry to open a position until the market changes its direction (turns up or down). The market that seems to be outbidden can remain so for some time. In general, the state of utmost overbought/oversold usually assumes an extension of the current trend.

Price Rate of Change indicator

Author: MetaQuotes Software Corp.

 
Rate of Change (ROC)

The Rate of Change (ROC) indicator measures the percentage change of the current price as compared to the price a certain number of periods ago. The ROC indicator can be used to confirm price moves or detect divergences; it can also be used as a guide for determining overbought and oversold conditions. The formula for Rate of Change is expressed below:
  • [(Current Price / Price n periods ago) - 1] x 100

Generally, the Rate of Change is calculated based on 14-periods for input n, but of course can be modified to any trader preferred period. A chart of the Nasdaq 100 ETF (QQQQ) is shown below with the 14-day Rate of Change indicator:


Calculating Rate of Change

The right side of the chart of the QQQQ's shows how the Rate of Change is calculated. The closing price on Day #14 was divided by the closing price 14-days ago on Day #1 which netted 1.0467. One was then subtracted to get .0467 and then it was multiplied by 100 to get 4.67. That means there was a 4.67% increase in the price of the QQQQ's over the 14-day period highlighted in the chart.

Numerous Uses of the Rate of Change Indicator

The Rate of Change indicator can be used to confirm price moves or detect divergences and can be used as a guide for determining overbought and oversold conditions.

Rate of Change as a Confirmation Tool

An example of the ROC indicator confirming price action occurred from Low #1 to Low #2: the stock price of the QQQQ's made higher lows, generally a bullish sign; likewise, the Rate of Change indicator confirmed price action and made higher lows as well.

Rate of Change as an Overbought & Oversold Indicator

In the chart above, when the Rate of Change indicator surpassed the +3% mark, it would have been inadvisable to buy, as prices were in an overbought area; looking for sell signals would be more advisable. Similarly when the ROC entered oversold areas, it would not be smart to sell, as most of the downward move had been made, rather buy signals should be sought.

The Rate of Change (ROC) indicator is a helpful technical analysis tool for confirming price movements, detecting divergences, and determing levels of overbought and oversold. A similar indicator that should be investigated is the Momentum indicator
 

Why it give a wrong calculation much diferent than other platform. For example in TSLA CFD in output -110% in the period on the March crash. Same happens with COFFEE to lower degree.

Not reliable

 

Please check this instruction in the indicator source program.

ExtRocBuffer[i]=(price[i]-price[i-ExtRocPeriod])/price[i]*100;

According to the definition of the formula:  

ROC = ((CLOSE (i) - CLOSE (i - n)) / CLOSE (i - n)) * 100

then, I think it should be

ExtRocBuffer[i]=(price[i]-price[i-ExtRocPeriod])/ price[i-ExtRocPeriod] *100;
Documentation on MQL5: Python Integration / order_calc_margin
Documentation on MQL5: Python Integration / order_calc_margin
  • www.mql5.com
order_calc_margin - Python Integration - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
Reason: