Linear regression fits the following equation of a straight line to price data:
y[x] = y0 + b*x
The linear regression slope, given by this indicator, is equal to a normalized version of the coefficient b.
The formula for b is:
b = (n*Sxy - Sx*Sy)/(n*Sxx - Sx*Sx)
The denominator of b can be simplified to:
n*Sxx - Sx*Sx = n*n*(n-1)*(n+1)/12
Finally, the whole equation for b can be simplified to
b = 6*(2*Sxy/(n + 1) - Sy)/n/(n - 1)
The coefficient b is not normalized. It has to be normalized if we want LRS to have a roughly the same range for different currency pairs. It is convenient to normalize b by dividing it by either a simple moving average (SMA) or a linear weighted moving average (LWMA), which are given by:
SMA = Sy/n
LWMA = 2*Sxy/n/(n + 1)
The corresponding versions of LRS are given by
LRS_LWMA = b/LWMA = 6*(1 - (n + 1)*Sy/Sxy/2)/(n + 1)
These two versions of normalization are almost indistinguishable. So, the SMA normalization was chosen for the indicator. Also, because of very small values of the LRS, the indicator values are calculated and plotted in parts per 100 thousand to fit roughly into the range of -100 to +100.
This is a simple Expert Advisor, that uses a specified custom RKD indicator.Export historical data
The script purpose is to export historical rates data to format, convenient for analysis in external programs.