一开始就声明变量

Declaring variable at the very beginning

我在 Pine 脚本中遇到了一个普遍问题。我不知道如何在策略的最开始声明一个变量并用每根蜡烛更新它。当你宣布它时,它就会在每个蜡烛上宣布!

逻辑应该是这样的:

如果某个事件发生,则变量值应设置为x。变量应保持 x 直到另一个事件发生。

我看到的问题是,由于脚本开头的声明,变量将始终重置为其原始值。

我的(示例)代码:

    a = 20 

    if crossover(ma1, ma2)
         a:=30
    
    if crossunder(ma1, ma2)
         a:=40

对于触发 ma 的蜡烛,变量“a”仅为 30 或 40 crossover/under,但我希望从交叉点到下交叉点的值为 30。

PS:变量保持其值并不是绝对必要的。我只需要“移动平均线的最后一次交叉是交叉”(分别是交叉)的信息。

PPS:我知道在这种情况下您可以简单地使用 ma1 > ma2,但这只是解释我的问题的示例。

谢谢大家! BR

您需要使用变量。示例:

var a = 0
a:=valuewhen(crossover(ma1, ma2), close, 1)

https://www.tradingview.com/pine-script-docs/en/v4/language/Expressions_declarations_and_statements.html