Метка (текст) рядом со скользящими средними

#pine-script

Вопрос:

Я искал в документации и нашел только то, как писать этикетки над свечами и тому подобное.

чего я хочу добиться, так это написать какой-нибудь текст рядом со скользящей средней. Например, у меня есть скрипт с несколькими скользящими средними, я хотел бы поставить рядом с каждой строкой, какая это MA

что-то вроде этого: введите описание изображения здесь

есть какие-нибудь указания, как это сделать?

 plot(show25SMA ? security(syminfo.tickerid, tf, sma(src, 25)) : na, title="25 SMA", color=color.white, linewidth=1)
 

Ответ №1:

 SMA25 = sma(close, 25)

var SMA25Label = label.new(x = bar_index, y = SMA25, style = label.style_label_left, color = color.rgb(0, 0, 0, 100), textcolor = color.yellow, text = "SMA25")

label.set_xy(SMA25Label, x = bar_index, y = SMA25)
 

Создавая var объявленную метку, мы создаем метку один раз, а затем label.set_xy() перемещаем эту метку при каждом обновлении бара, чтобы следовать значению MA.

С его помощью style = label.style_label_left метка перемещается вправо,потому что точка формы этой метки слева используется в качестве начала координат x, y метки.

Затем вы можете сделать саму метку невидимой, сделав ее полностью прозрачной с color.rgb(0, 0, 0, 100) помощью .

Ответ №2:

 //@version=4
study("My Script", overlay = true)

ema1 = ema(close, 9)
ema2 = ema(close, 200)

plot(ema1, color = color.aqua)
plot(ema2, color = color.yellow)

distance = input(3, "Label distance")
r1_x = time   round(change(time)*distance)

r1_label = label.new(x=r1_x, y=ema1, text="...EMA", xloc=xloc.bar_time, yloc=yloc.price, color=color.new(color.aqua, 70), style=label.style_label_left, textcolor=color.white, size=size.normal)
label.delete(r1_label[1])

r2_label = label.new(x=r1_x, y=ema2, text=tostring(ema2, "#.#####"), xloc=xloc.bar_time, yloc=yloc.price, color=color.new(color.yellow, 70), style=label.style_label_left, textcolor=color.white, size=size.normal)
label.delete(r2_label[1])
 

Вы можете перемещать метки по x оси с time помощью формулы.
Если вам нужен только текст, без надписей, вы можете либо установить прозрачность на 100 от color.new(...., 70) , либо использовать style=label.style_none .