为什么这个 return "na" 作为结果?

Why does this return "na" as result?

我已经尝试将 barssince 函数与 valuewhen 函数结合使用,这样我就可以知道从 PL 更改为之前的 PL 时经过了多少个柱,但是它总是 returns 0 或 na。

我也试过将公式放在同一行

barssince(valuewhen(change(pl_ext)!=0, pl_ext, 2))

但是这个 return 结果是我 0。

尝试输入我正在寻找的 PL 的实际值似乎可行

barssince(pl_ext == 1.35885)

所以我随后尝试使用 plex2 做同样的事情,但是一旦我添加了变量,它就开始 return na。

我不明白为什么它没有给我想要的结果。我无法理解它。

如有任何帮助,我们将不胜感激。

//@version=4

study("test")

pl = pivotlow(low , 10, 10)

var pl_ext = pl

if (pl)
    pl_ext := pl

plex2 = valuewhen(change(pl_ext)!=0, pl_ext, 2)

plot(barssince(pl_ext == plex2))

您可以在触及一个低点时跟踪 bar_index,而在触及下一个点时,只需从当前 bar_index 中减去它即可得到柱数之间。

//@version=4
study("test")

var int prev_bar_index  = na
var int bar_count       = na

if pivotlow(low , 10, 10)
    bar_count      := bar_index - prev_bar_index
    prev_bar_index := bar_index

plot(bar_count, style=plot.style_stepline)

哪个产量