在松脚本中添加系列和浮动总是 returns n/a
Addition of series and float always returns n/a in pine script
基本示例
var cur_val = 0.0
cur_val:= cur_val + (close/close[1])
cur_val
将是 n/a
,这是为什么?
使用 var 保存一个值并 := 将其设置为另一个值。在 运行 时间,第一个柱上的语句 (close/close[1]) returns na,因此有效计算结果为:
cur_val = 0.0 + na
var 保留值,我们将其设置为 na
避免这种情况的一种方法是删除 var,或者将 cur_val:= cur_val + (close/close[1]) 放在 if 语句的局部范围内以进行赋值有条件的新值
干杯!
我遇到了类似的问题,但没弄明白...
不起作用(下面的解决方案):
myLow() =>
result = low
result := low < result[1] ? low : result[1] // just infinitely copies n/a
result
mMyLow = myLow()
plot(mMyLow)
plotchar(mMyLow, title='myLow', char='')
解决方案:使用函数 na() 检测 n/a(n/a 可能来自第一个柱)
putMyLow() =>
result = low
if not na(result[1])
result := low < result[1] ? low : result[1]
else
low
result
mMyLow = putMyLow()
plot(mMyLow)
plotchar(mMyLow, title='myLow', char='')
基本示例
var cur_val = 0.0
cur_val:= cur_val + (close/close[1])
cur_val
将是 n/a
,这是为什么?
使用 var 保存一个值并 := 将其设置为另一个值。在 运行 时间,第一个柱上的语句 (close/close[1]) returns na,因此有效计算结果为:
cur_val = 0.0 + na
var 保留值,我们将其设置为 na
避免这种情况的一种方法是删除 var,或者将 cur_val:= cur_val + (close/close[1]) 放在 if 语句的局部范围内以进行赋值有条件的新值
干杯!
我遇到了类似的问题,但没弄明白... 不起作用(下面的解决方案):
myLow() =>
result = low
result := low < result[1] ? low : result[1] // just infinitely copies n/a
result
mMyLow = myLow()
plot(mMyLow)
plotchar(mMyLow, title='myLow', char='')
解决方案:使用函数 na() 检测 n/a(n/a 可能来自第一个柱)
putMyLow() =>
result = low
if not na(result[1])
result := low < result[1] ? low : result[1]
else
low
result
mMyLow = putMyLow()
plot(mMyLow)
plotchar(mMyLow, title='myLow', char='')