#pine-script
#pine-скрипт
Вопрос:
Приведенный ниже сценарий всегда возвращает красный цвет для моих цветов меток. Что я здесь делаю не так? Приветствуется любая обратная связь (довольно новая для 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))
Комментарии:
1. Заголовок вашего вопроса слишком неопределенный.
Ответ №1:
Вы объявили свои метки с var
ключевым словом.
Это означает, что эти переменные инициализируются только один раз, в первой строке.
В этой первой строке оба sc1
sc4
условия и имеют значение false , поэтому метка создается с цветом red
и больше никогда не меняется.
Условия colorlabel1
и colorlabel2
изменяйте правильно.
Вам просто нужно обновить цвет метки, чтобы отразить это.
точно так же, как вы устанавливаете положение метки с 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)