Этот код сохраняет номер бара, где условие впервые становится истинным, и всякий раз, когда оно снова становится истинным, он обновляет координаты линии:
//@version=4
study("", "", true)
// Use your condition here.
cond = rising(close, 5)
var int firstBar = na
var line ln = na
if cond
if na(firstBar)
// Save first bar where cond is true.
firstBar := bar_index
if na(ln)
// Line wasn't drawn yet; draw it.
ln := line.new(firstBar, high, bar_index, high, width = 5)
// Fudge return type of `if` block so compiler doesn't complain (thx midtownsk8rguy for the trick).
int(na)
else
// Line was already drawn a first time, change its coordinates.
line.set_xy2(ln, bar_index, high)
int(na)
plotchar(cond, "cond", "•", location.top)