(Tradingview - Pine Script) Convert iff Function to v5 错误

(Tradingview - Pine Script) Convert iff Function to v5 error

我尝试将 pine v2 iff 函数转换为 v5,但我一直收到此错误:

line 32: Undeclared identifier 'vwapsum';
line 33: Undeclared identifier 'volumesum';
line 34: Undeclared identifier 'v2sum'

这是原始的 v2 脚本:

newSession = iff(change(start), 1, 0)
vwapsum = iff(newSession, hl2*volume, vwapsum[1]+hl2*volume)
volumesum = iff(newSession, volume, volumesum[1]+volume)
v2sum = iff(newSession, volume*hl2*hl2, v2sum[1]+volume*hl2*hl2)
myvwap = vwapsum/volumesum
dev = sqrt(max(v2sum/volumesum - myvwap*myvwap, 0))

这是我尝试创建但出现错误的 v5

newSession = ta.change(start) ? 1 : 0
vwapsum     = newSession    ?   hl2*volume      : vwapsum[1]+hl2*volume
volumesum   = newSession    ?   volume          : volumesum[1]+volume
v2sum       = newSession    ?   volume*hl2*hl2  : v2sum[1]+volume*hl2*hl2
myvwap      = vwapsum/volumesum
dev         = math.sqrt(math.max(v2sum/volumesum - myvwap*myvwap, 0))

您的转换是正确的,但是,从 v2 升级时,您还需要了解一项更改。也就是说,您不能在声明该变量时在计算中使用任何变量。所以,你需要先声明它,然后再给它一个新的值。

float vwapsum = 0.0
vwapsum := newSession ? hl2*volume : vwapsum[1]+hl2*volume