php - pine-script linreg 函数如何工作

标签 php pine-script

我想将一个 pine 脚本的 linreg 函数传输到 php,我需要一些帮助,哪些值被准确地传递给了 linreg 函数。

即我在 pine-script 中的 linreg 函数如下所示:

linreg(close, 20, 0)

为了在 php 中计算线性回归,我有以下函数:

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);
    }

我现在的问题是我必须将哪些数据传递给我的 php 函数才能获得与 pine 脚本中相同的结果。

最佳答案

我已经根据您的 PHP 脚本创建了一个纯 Pine linreg 函数。这会产生与内置 ta.linreg 完全相同的结果。

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)

诀窍在于 x 数组是时间轴,并且总是 [0, 1, ..., len-1]。 y 数组是源。然后你应该使用的公式是 pine 函数的最后一行,也记录在 ta.linreg 的文档中。

关于php - pine-script linreg 函数如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65541564/

相关文章:

syntax-error - Pine 脚本问题第 10 行 : Syntax error at input 'end of line without line continuation'

php - PDF裁剪PHP库

pine-script - 如何在 TradingView Pine Script 中获取与当前值相等的最后一个值?

javascript - 如何使用javascript中的post方法将输入类型文件发送到图像上传文件

php - post php mysql 的拆分关键字

plot - Tradingview Pine Script plotshape函数不适用于条件序列-错误在哪里?

stock - 如何在某些天后从 `strategy.entry` 退出

pine-script - 策略警报输出 'open' 或 'close'

php - 在 php 实时回合制游戏中传递数据的正确方法

PHP - 停止并发用户登录