# Implementing Technical Indicators: ROC

* Programming*
*Technical Indicators*
*R*
*ROC*

*December 22, 2017*

#### Introduction

In this part of my series Implementing Technical Indicators I provide you with the R implementation of another technical indicator. Please refer to my article Technical Indicators: An Introduction for an overview of the concept of technical indicators and for details on the particular one presented in this article.

DISCLAIMER: None of the below is intended to be considered as any kind of investment advice. All examples serve as illustrative material only.

#### Implementation

For an implementation of the rate of change (ROC) please see the R code below. The function `ROC`

calculates the indicator values, which may afterwards be plotted with help of the function `plotROC`

. Note that both function use tools introduced in my article Implementing Technical Indicators: Tools.

```
#
# RATE OF CHANGE
#
source("Indicators/IndicatorHelperFunctions.R")
source("Indicators/IndicatorPlottingFunctions.R")
# indicator calculation
ROC = function(v_values, i_lag)
{
checkWindow(v_values, i_lag)
i_length = length(v_values)
v_roc = rep(0, i_length)
v_roc[1] = 0
for (i in 2 : i_length) {
if (i <= i_lag) {
v_roc[i] = v_values[i] / v_values[1] - 1
} else {
v_roc[i] = v_values[i] / v_values[i-i_lag] - 1
}
}
df_roc = data.frame(v_roc, v_values)
colnames(df_roc) = c("ROC", "Price")
return(df_roc)
}
# indicator plotting
plotROC = function(v_date, df_roc, s_path)
{
isDataFrame(df_roc)
dateMatch(v_date, df_roc)
v_colors = c("black", "blue")
v_legend = c("ROC", "Price")
plotIndicator2(v_date, df_roc$ROC, data.frame(df_roc[, -1]), v_colors, v_legend, s_path)
}
```