Pine script PineScript v4中的另一个重新绘制错误:自适应最小二乘移动平均

Pine script PineScript v4中的另一个重新绘制错误:自适应最小二乘移动平均,pine-script,Pine Script,多亏了这个论坛,我才能够将其更新到第4版,但我再次检查,第2版实际上是重新喷漆的罪魁祸首。这是亚历克斯·格罗弗(Alex Grover)最早的算法之一,尽管讽刺的是,这是迄今为止最好的算法之一,但实际上它确实重新绘制了,而他的算法中很少有人这样做。我不知道它会有多大的用处,当它总是被迫通过修复重绘来延迟时,但他从未产生过另一个自适应LSMA,这是我所知道的唯一一个自适应LSMA。所以,如果这里有人能够确定是什么原因导致它重新喷漆,我愿意使用它的一个降低效率的版本。 我怀疑这是barindex,但

多亏了这个论坛,我才能够将其更新到第4版,但我再次检查,第2版实际上是重新喷漆的罪魁祸首。这是亚历克斯·格罗弗(Alex Grover)最早的算法之一,尽管讽刺的是,这是迄今为止最好的算法之一,但实际上它确实重新绘制了,而他的算法中很少有人这样做。我不知道它会有多大的用处,当它总是被迫通过修复重绘来延迟时,但他从未产生过另一个自适应LSMA,这是我所知道的唯一一个自适应LSMA。所以,如果这里有人能够确定是什么原因导致它重新喷漆,我愿意使用它的一个降低效率的版本。 我怀疑这是barindex,但在我跪下之前,我想听听大家对如何改变它的看法

    study("Adaptive Least Squares", overlay=true)
    src = input(title="EMA Source", type=input.source, defval=close)
    length = input(500)
    smooth = input(1.5)
    //
    alpha = pow(tr / highest(tr, length), smooth)
    m(a, prevVal) =>
    alpha * a + (1 - alpha) * nz(prevVal, a)
    //
    x = bar_index
    y = src
    x_ = 0.0
    x_ := m(x, x_[1])

    y_ = 0.0
    y_ := m(y, y_[1])
    //
    dx = abs(x - x_)
    dy = abs(y - y_)

    mx = 0.0
    mx := m(dx, mx[1])
    my = 0.0
    my := m(dy, my[1])
    //

    xx = 0.0
    xx := m(x * x, xx[1])

    xy = 0.0
    xy := m(x * y, xy[1])

    yy = 0.0
    yy := m(y * y, yy[1])

    a1 = pow(2 / alpha + 1, 2) * xy - (2 / alpha + 1) * x_ * (2 / alpha + 1) * y_
    b1 = sqrt((pow(2 / alpha + 1, 2) * xx - pow((2 / alpha + 1) * x_, 2)) * (pow(2 / alpha + 1, 2) * yy 
    - pow((2 / alpha + 1) * y_, 2)))
    r = a1 / b1
    //
    a = r * (my / mx)
    b = y_ - a * x_
    reg = x * a + b
    //
    plot(reg, color=color.red, transp=0)

我没有用这个微小的改变来重新绘制,但是当然,这个改变使轨迹发生了巨大的变化。不确定与重新绘制版本x=close y=close[1]x_=0.0 x_=m(x,x_[1])相比,什么会使其具有可比的平滑度。任何使用
close
的指示器都会在实时栏中重新绘制,与标题相反,这不是一个错误,只是研究中实时栏的正常行为,因为它会在每次实时栏更新时重新计算。你来这里的目的是什么?你不想让线在实时栏中的图表上移动吗?您希望警报可靠吗?有关选项的讨论和说明,请参见此处: