已经定义或不匹配的输入 ':=' 期望 '=' 错误

Already defined or Mismatched input ':=' expecting '=' errors

我正在尝试绘制此指标,但当我尝试分配给元组

    lb( x, a0, a1, a2, a3, c ) =>
        if( x == 1 and c > a3 )
            [x, a1, a2, a3, c]
        else if( x == 1 and c < a0 )
            [-1, a3, a3, a2, c]
        else if( x == -1 and c < a3 )
            [x, a1, a2, a3, c]
        else if( x == -1 and c > a0 )
            [ 1, a3, a3, a2, c ]
            

    f_x  = 1
    f_a0 = 0.0
    f_a1 = 0.0
    f_a2 = 0.0
    f_a3 = 0.0

    [f_x, f_a0, f_a1, f_a2, f_a3] := lb( f_x, f_a0, f_a1, f_a2, f_a3, close ) 


    plot( f_a0 , color=color.red ) 

谢谢!

您不能使用 := 为元组赋值。
只允许 =,这意味着您不能预先定义那些目标元组变量。

像这样的东西会起作用:

//@version=5
indicator("My Script", overlay=true)

lb( x, a0, a1, a2, a3, c ) =>
    if( x == 1 and c > a3 )
        [x, a1, a2, a3, c]
    else if( x == 1 and c < a0 )
        [-1, a3, a3, a2, c]
    else if( x == -1 and c < a3 )
        [x, a1, a2, a3, c]
    else if( x == -1 and c > a0 )
        [ 1, a3, a3, a2, c ]

var float f_x = na
var float f_a0 = na
var float f_a1 = na
var float f_a2 = na
var float f_a3 = na

if barstate.isfirst
    f_x  := 1
    f_a0 := 0.0
    f_a1 := 0.0
    f_a2 := 0.0
    f_a3 := 0.0

[f_x_dummy, f_a0_dummy, f_a1_dummy, f_a2_dummy, f_a3_dummy] = lb( f_x, f_a0, f_a1, f_a2, f_a3, close ) 

f_x  := f_x_dummy
f_a0 := f_a0_dummy
f_a1 := f_a1_dummy
f_a2 := f_a2_dummy
f_a3 := f_a3_dummy

plot( f_a0 , color=color.red )