how does the pine-script linreg function work

Viewed 596

i want to transfer a pine-script linreg function to php, and i need some help which values are exactly passed to the linreg function.

i.e. my linreg function in pine-script looks like this:

linreg(close, 20, 0)

for calculating the linear regression in php, i have the following function:

public static function linear_regression($x, $y) {

        // calculate number points
        $n = count($x);

        // ensure both arrays of points are the same size
        if ($n != count($y)) {

          trigger_error("linear_regression(): Number of elements in coordinate arrays do not match.", E_USER_ERROR);

        }

        // calculate sums
        $x_sum = array_sum($x);
        $y_sum = array_sum($y);

        $xx_sum = 0;
        $xy_sum = 0;

        for($i = 0; $i < $n; $i++) {

          $xy_sum+=($x[$i]*$y[$i]);
          $xx_sum+=($x[$i]*$x[$i]);

        }

        // calculate slope
        $m = (($n * $xy_sum) - ($x_sum * $y_sum)) / (($n * $xx_sum) - ($x_sum * $x_sum));

        // calculate intercept
        $b = ($y_sum - ($m * $x_sum)) / $n;

        // return result
        return array("m"=>$m, "b"=>$b);
    }

my question now is what data i have to pass to my php function to get the same result as in the pine-script.

1 Answers

According to the reference manual, the result of the linreg function is calculated as linreg = intercept + slope * (length - 1 - offset), where intercept and slope are the values calculated with the least squares method on source series.

This question has also been asked here: Converting linreg function from pinescript to Python?. Have you tried the solution proposed there?

Related