OPEN-SOURCE SCRIPT

ROC (Rate of Change) Refurbished

Updated
▮ Introduction

The Rate of Change indicator (ROC) is a momentum oscillator.
It was first introduced in the early 1970s by the American technical analyst Welles Wilder.

It calculates the percentage change in price between periods.
ROC takes the current price and compares it to a price 'n' periods (user defined) ago.
The calculated value is then plotted and fluctuates above and below a Zero Line.

A technical analyst may use ROC for:
- trend identification;
- identifying overbought and oversold conditions.

Even though ROC is an oscillator, it is not bounded to a set range.
The reason for this is that there is no limit to how far a security can advance in price but of course there is a limit to how far it can decline.
If price goes to $0, then it obviously will not decline any further.
Because of this, ROC can sometimes appear to be unbalanced.

(TradingView)

▮ Improvements

The following features were added:

1. Eight moving averages for the indicator;
2. Dynamic Zones;
3. Rules for coloring bars/candles.

▮ Motivation

Averages have been added to improve trend identification.
For finer tuning, you can choose the type of averages.
You can hide them if you don't need them.

The Dynamic Zones has been added to make it easier to identify overbought/oversold regions.
Unlike other oscillators like the RSI for example, the ROC does not have a predetermined range of oscillations.
Therefore, a fixed line that defines an overbought/oversold range becomes unfeasible.
It is in this matter that the Dynamic Zone helps.
It dynamically adjusts as the indicator oscillates.

▮ About Dynamic Zones

'Most indicators use a fixed zone for buy and sell signals.
Here's a concept based on zones that are responsive to the past levels of the indicator.'

The concept of Dynamic Zones was described by Leo Zamansky (Ph.D.) and David Stendahl, in the magazine of Stocks & Commodities V15:7 (306-310).
Basically, a statistical calculation is made to define the extreme levels, delimiting a possible overbought/oversold region.

Given user-defined probabilities, the percentile is calculated using the method of Nearest Rank.
It is calculated by taking the difference between the data point and the number of data points below it, then dividing by the total number of data points in the set.
The result is expressed as a percentage.

This provides a measure of how a particular value compares to other values in a data set, identifying outliers or values that are significantly higher or lower than the rest of the data.

▮ Thanks and Credits

- TradingView: for ROC and Moving Averages
- allanster: for Dynamic Zones

Release Notes
- Added "Volume Rate of Change" option, in which volume is used instead of price. Useful for checking sudden volume changes:
snapshot

- Modified Dynamic Zone default colors, aiming to give more emphasis to the indicator.

- Added 4 alerts:
1. When entering the Dynamic Zone from top to bottom;
2. When entering the Dynamic Zone from bottom to top;
3. Upon exiting the Dynamic Zone at the top;
4. Upon exiting the Dynamic Zone at the bottom.

- Improved readability of the source code.
dynamiczonesoverboughtoversoughtrate_of_changeRate of Change (ROC)ROCtrend_analysisTrend Analysis

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?


To contribute to my work:
⚡Bitcoin Lightning: forwardocean64@walletofsatoshi.com
🟠Bitcoin: bc1qv0j28wjsg6l8fdkphkmgfz4f55xpph893q0pdh
🔵PayPal: paypal.com/donate/?hosted_button_id=D9KRKY5HMSL9S
Also on:

Disclaimer