year
- это год бара, на котором работает скрипт. year(timenow)
текущий год. Происходило то, что вы рисовали линию на каждом баре, используя год, месяц и день этого бара, а сборка мусора оставляла только последние. Только 2 показало, но было наложено гораздо больше.
Этот код создает строку только на первом баре набора данных, а затем изменяет ее только тогда, когда скрипт достигает последнего бара, поэтому он использует дату этого бара:
//@version=4
study("FutureLine", overlay=true)
level1 = 3050
start = timestamp(year,month,dayofmonth,08,30)
stop = timestamp(year,month,dayofmonth,13,30)
var line ln = line.new(start, level1, stop, level1, xloc=xloc.bar_time)
if barstate.islast
line.set_x1(ln, start)
line.set_x2(ln, stop)
Более эффективно изменить существующую строку, чем удалить и создать новую, что необходимо для сохранения только последней.