脚本不会在每次迭代时正确保存值,并且始终显示 n/a
Script will not save value correctly on each iteration and always shows n/a
我目前正在研究一个相当简单的指标脚本,我认为是这样。
不幸的是,我无法从我的脚本中获取有效值,我也不知道为什么。
这个想法类似于 Renko-Charts 并且是这样的。
我将配置一个步长,然后计算从一根蜡烛到另一根蜡烛的步数。
这是一个例子:
蓝线显示收盘价,红线应该是我的指标。
步长为 5.
所以对于第二根蜡烛,计算应该是这样的:
更改的步数。
当前收盘价 - 最后指标水平 = 16 - 10 = 6
差异/步长 = 6 / 5 = 1,2
因为只有整步才算剩余的部分,所以 = 1
当前指标水平=上一个指标水平+(步长*变化步数)
= 10 + ( 5 * 1 ) = 15
所以我的代码是这样的:
//@version=4
study("My Script", overlay = false)
float myIndicator = 0
float stepSize = 5
int stepNumber = 0
stepNumber := int( ( close - myIndicator[1] ) / stepSize )
myIndicator := myIndicator[1] + ( stepNumber * stepSize )
plot( myIndicator )
但它总是显示“n/a”
如果我将最后一行更改为 myIndicator = close
我可以在某种程度上验证至少在 stepNumber
计算之前一切似乎都有效。在那之后有些东西会变得无效,但我看不出我在哪里犯了错误...
有人知道我忽略了什么吗?
提前致谢:)
此致
埃沃克斯
在第一个柱上,没有柱历史记录,因此 myIndicator[1]
计算为 na
。
na
的计算结果总是 na
.
因此,您的所有结果都是 na
.
您可以使用 nz() 函数将 na
值替换为零(这是默认替换值)或给定值。
这将绘制您正在寻找的内容:
//@version=4
study("My Script", overlay = true)
var float stepSize = input(5, "stepSize", minval=0)
var int stepNumber = input(0, "stepNumber", minval=0)
var float myIndicator = na
stepNumber := int( ( close - nz( myIndicator[1] ) ) / stepSize )
myIndicator := nz( myIndicator[1] ) + ( stepNumber * stepSize )
plot( myIndicator, style=plot.style_stepline )
上产生这个
我目前正在研究一个相当简单的指标脚本,我认为是这样。 不幸的是,我无法从我的脚本中获取有效值,我也不知道为什么。
这个想法类似于 Renko-Charts 并且是这样的。
我将配置一个步长,然后计算从一根蜡烛到另一根蜡烛的步数。 这是一个例子:
蓝线显示收盘价,红线应该是我的指标。 步长为 5.
所以对于第二根蜡烛,计算应该是这样的:
更改的步数。
当前收盘价 - 最后指标水平 = 16 - 10 = 6 差异/步长 = 6 / 5 = 1,2
因为只有整步才算剩余的部分,所以 = 1
当前指标水平=上一个指标水平+(步长*变化步数) = 10 + ( 5 * 1 ) = 15
所以我的代码是这样的:
//@version=4
study("My Script", overlay = false)
float myIndicator = 0
float stepSize = 5
int stepNumber = 0
stepNumber := int( ( close - myIndicator[1] ) / stepSize )
myIndicator := myIndicator[1] + ( stepNumber * stepSize )
plot( myIndicator )
但它总是显示“n/a”
如果我将最后一行更改为 myIndicator = close
我可以在某种程度上验证至少在 stepNumber
计算之前一切似乎都有效。在那之后有些东西会变得无效,但我看不出我在哪里犯了错误...
有人知道我忽略了什么吗?
提前致谢:)
此致 埃沃克斯
在第一个柱上,没有柱历史记录,因此 myIndicator[1]
计算为 na
。
na
的计算结果总是 na
.
因此,您的所有结果都是 na
.
您可以使用 nz() 函数将 na
值替换为零(这是默认替换值)或给定值。
这将绘制您正在寻找的内容:
//@version=4
study("My Script", overlay = true)
var float stepSize = input(5, "stepSize", minval=0)
var int stepNumber = input(0, "stepNumber", minval=0)
var float myIndicator = na
stepNumber := int( ( close - nz( myIndicator[1] ) ) / stepSize )
myIndicator := nz( myIndicator[1] ) + ( stepNumber * stepSize )
plot( myIndicator, style=plot.style_stepline )
上产生这个