xxxxxxxxxx
pine_linreg(src, len, offset=0) =>
// These are constants, we need to calculate them only on the 1st bar
var float x_sum = 0.0
var float xx_sum = 0.0
if bar_index == 0
for i = 0 to len - 1
x_sum += i
xx_sum += i * i
y_sum = math.sum(src, len)
xy_sum = 0.0
for i = len - 1 to 0
xy_sum += i * src[len - 1 - i]
// slope
slope = (len * xy_sum - x_sum * y_sum) / (len * xx_sum - x_sum * x_sum)
// intercept
intercept = (y_sum - slope * x_sum) / len
linreg = intercept + slope * (len - 1 - offset)