Нарисуйте прямоугольник / прямоугольник с течением времени

#pine-script

#сценарий pine

Вопрос:

Я пытаюсь нарисовать прямоугольник по диапазону цен за определенный период времени. Я успешно рисую прямоугольник, однако мне трудно отслеживать цену.

Ключевые моменты:

  • Я хочу нарисовать только последний прямоугольник, а не всю историю
  • Использование max_lines_count не должно быть опцией, поскольку я использую это как часть более крупного индикатора.

Вот мой код

 //@version=4
study("Box over range", overlay=true)

showRange = input(title="Show Range", type=input.bool, defval=true)
rangeTime = input(title="Session Time", type=input.session, defval="1800-0259")
extendUntil = input(title="Session Time", type=input.session, defval="0300-1700")

resolutionInMinutes() => 
    resInMinutes = timeframe.multiplier * (
      timeframe.isseconds ? 1. / 60             :
      timeframe.isminutes ? 1.                  :
      timeframe.isdaily   ? 60. * 24            :
      timeframe.isweekly  ? 60. * 24 * 7        :
      timeframe.ismonthly ? 60. * 24 * 30.4375  : na)

f_timeFrom(_from, length, _units) =>
    int _timeFrom = na
    _unit = str.replace_all(_units, "s", "")
    _timeFrom := int(time   (resolutionInMinutes() * 60 * 1000 * length))

linelength = 9 //(temporary length)

inSession = not na(time(timeframe.period, rangeTime))

startTime = inSession and not inSession[1] ? time : na
endTime = f_timeFrom("bar", linelength, "chart")

line lowHLine = na
line topHLine = na
line leftVLine = na
line rightHLine = na

// Build the Box
if not na(startTime)
    highestPoint = high
    lowestPoint = low

    //x1, y1, x2, y2
    lowHLine = line.new(startTime, lowestPoint, endTime, lowestPoint, xloc=xloc.bar_time, color=color.blue, style=line.style_solid, width = 1)
    topHLine = line.new(startTime, highestPoint, endTime, highestPoint, xloc=xloc.bar_time, color=color.blue, style=line.style_solid, width = 1)
    leftVLine = line.new(startTime, highestPoint, startTime, lowestPoint, xloc=xloc.bar_time, color=color.blue, style=line.style_solid, width = 1)
    rightHLine = line.new(endTime, highestPoint, endTime, lowestPoint, xloc=xloc.bar_time, color=color.blue, style=line.style_solid, width = 1)

    line.delete(lowHLine[1])
    line.delete(topHLine[1])
    line.delete(leftVLine[1])
    line.delete(rightHLine[1])
    
//Track price
if inSession
    lineHigh = line.get_y2(topHLine)

    if high > lineHigh
        line.set_y1(topHLine, high)
        line.set_y2(topHLine, high)
 

Цена трека — это всего лишь приблизительный код, и, очевидно, я понимаю, почему он не работает, но я не могу найти элегантное решение. Спасибо