Pine Script不起作用.情况似乎不起作用



下面的脚本总是为我的标签颜色返回红色。我在这里做错了什么?感谢任何反馈(对pine来说很新鲜(。

study("Info Labels", overlay = true)
// Variables and Conditions
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema34h = ema(high, 34)
sc1 = ema8 >= ema13
sc2 = ema13 > ema21
sc3 = ema21 > ema34
sc4 = close > ema34h
colorlabel1 = sc1 ? color.green : color.red
colorlabel2 = sc4 ? color.green : color.red
var label1 = label.new(bar_index, high, text = "8:13:21", style = label.style_label_lower_right, color = 
colorlabel1, size = size.small)

var label2 = label.new(bar_index, low, text = "Wave   ", style = label.style_label_lower_left, color = colorlabel2, size = size.small)

label.set_xy(label1, bar_index[1], high[1] + atr(21))
label.set_xy(label2, bar_index[1], high[1] + atr(21))

您使用var关键字声明了标签
这意味着这些变量只在第一个栏上初始化一次
在第一个栏上,sc1sc4条件都为false,因此标签将使用颜色red创建,并且不再更改。

条件colorlabel1colorlabel2正确地改变
您只需要更新标签的颜色即可反映这一点
就像用label.set_xy()设置标签的位置一样,也可以用label.set_color()设置颜色。

您可以在手册的表达式、声明和语句下阅读更多关于var如何工作的信息

这将按您的意愿工作。

//@version=4
study("Info Labels", overlay = true)
// Variables and Conditions
var label1 = label.new(bar_index, high, text = "8:13:21", style = label.style_label_lower_right, size = size.small)
var label2 = label.new(bar_index, low,  text = "Wave   ", style = label.style_label_lower_left,  size = size.small)
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema34h = ema(high, 34)
sc1 = ema8 >= ema13
sc2 = ema13 > ema21
sc3 = ema21 > ema34
sc4 = close > ema34h
colorlabel1 = sc1 ? color.green : color.red
colorlabel2 = sc4 ? color.green : color.red
label.set_xy(label1, bar_index[1], high[1] + atr(21))
label.set_xy(label2, bar_index[1], high[1] + atr(21))
label.set_color(label1, colorlabel1)
label.set_color(label2, colorlabel2)

最新更新