Pine script 为什么我的label.new函数只能追溯到几个月前?

Pine script 为什么我的label.new函数只能追溯到几个月前?,pine-script,Pine Script,我正在学习文档中的label.new函数。当我将示例代码应用于图表时,它只会追溯到大约2.5个月前: //@version=4 study("Bar Labels", overlay=true) label.new(bar_index, high, style=label.style_none, text="x=" + tostring(bar_index) + "\ny=" + tostring(high)) 我已尝试使用一些条件来覆盖此问题: bi = bar_index &

我正在学习文档中的label.new函数。当我将示例代码应用于图表时,它只会追溯到大约2.5个月前:

//@version=4
study("Bar Labels", overlay=true)

label.new(bar_index, high, style=label.style_none,
      text="x=" + tostring(bar_index) + "\ny=" + tostring(high))
我已尝试使用一些条件来覆盖此问题:

bi = bar_index < 7572?1:0
label.new(bi, na, style=label.style_none,
          text="x=" + tostring(bar_index) + "\ny=" + tostring(high), yloc=yloc.belowbar)
bi=bar\u指数<7572?1:0
label.new(bi,na,style=label.style\u无,
text=“x=“+tostring(条形索引)+”\ny=“+tostring(高),yloc=yloc.belowbar)

在这种情况下,如果bar_index低于2.5个月前的日期,则不会在图表上打印任何内容。

您的第二个代码段将无法工作,因为它正在尝试从bar_index==1的0条打印标签,而bar_index==1是在未来的时间。标签和线条只能在以后使用
xlox=xloc.bar\u time
时绘制。这将有助于:

//@version=4
study("")
if bar_index < 7572
    label.new(bar_index, na, style=label.style_none,
      text="x=" + tostring(bar_index) + "\ny=" + tostring(high), yloc=yloc.belowbar)

谢谢你的回复。实际上,我看不出我在哪里试图从0栏打印一个位于bar_index==1的标签。你能指出我在代码中的什么地方做的吗?如果是这样的话,那是我的疏忽。在你的第二个代码片段中,你有三元表达式
bar\u index<7572?1:0
。当脚本第一次在条形图0上运行时,该表达式的计算结果将为1,因此下面的
label.new()
行将尝试在条形图索引
bi
(将等于1)处从条形图0创建一个标签。我认为在三元条件运算符中使用1和0将返回true或false。我过去就这样用过。但是,在这种情况下,1和0表示系列中的实际条。任何关于这个结构的布尔用法与这里发生的事情的澄清都是非常好的。还有一点关于计算条形图的困惑:当计算条形图索引中的条形图时,第一个条形图是0还是1?为什么在其他情况下,条形图的编号会朝相反的方向移动,从当前条形图上的0开始,返回时向上移动?如果你看看Pine的,你会发现它们在转换为布尔值时非常慷慨。任何浮点或int都可以用作布尔值,其中0将被视为false,na将被视为既不为true也不为false(更多关于布尔值中的na特例,以及任何其他不同于零的数值都将被视为正确。添加了代码以显示示例。对于bar_索引值,它们从第一个栏开始,一直增加到数据集中的最后一个栏。但是,不要将其与用于引用中过去元素的索引混淆。)一个系列,其中索引从当前条的0变为前一条的1,等等,返回到条索引以引用数据集中的第一条。第一个示例数字从左向右增加,第二个从右向左增加。
//@version=4
study("")
cond1Bool   = bar_index < 7572
cond2Int    = bar_index < 7572 ? 1 : 0
cond3Float  = bar_index < 7572 ? 100.99 : 0
cond4Bool   = bar_index < 7572 ? true : false
cond5Na     = bar_index < 7572 ? na : na
if cond1Bool
    label.new(bar_index, na, style=label.style_none,
      text="x=" + tostring(bar_index) + "\ny=" + tostring(high), yloc=yloc.belowbar)