0

我正在尝试绘制此指标,但是当我尝试分配给元组时,我得到“=”或“不匹配输入':='期望'='”的“已定义”错误:“:=”

    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 ) 

谢谢!

4

1 回答 1

1

您不能使用:=将值分配给元组。
Only=是允许的,这意味着您不能事先定义那些目标元组变量。

像这样的东西会起作用:

//@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 ) 
于 2021-12-13T12:18:54.913 回答