如何只显示某些绘图线的最新实例?

How to have only the latest instance of certain plotted lines visible?

首先:我很确定这是我对事物运作方式的理解不足

我正在尝试绘制一个“实心通道”,其中两条水平直线作为上限和下限(红线),两条水平直线分别标记范围的第一个和第四个“第四”在上限和下限之间(蓝线)。

我能够绘制它们。问题是:我只想在屏幕上显示这些行的最后一个实例(基于回溯期),但大多数时候它们很多。

下面是代码。在代码下方,您可以在第一个屏幕截图中看到我所期望的,在第​​二个和第三个屏幕截图中您可以看到它通常的样子。

问题是:我怎样才能在屏幕上始终只有该频道的一个实例(最新的一个)(即只有四个预期的行,两个红色和两个蓝色)?

非常感谢任何帮助!干杯!

lookBack = 24
range = 4

highestHigh = highest(high, lookBack)
lowestLow = lowest(low, lookBack)

xAxisStartAt = bar_index[lookBack]
xAxisFinishesAt = bar_index

uppperLimit = highestHigh
lowerLimit = lowestLow

upperRange = ((highestHigh - lowestLow)/range) + lowestLow
lowerRange = highestHigh - ((highestHigh - lowestLow)/range)

// PAINTBRUSH
line.new(xAxisStartAt, uppperLimit, xAxisFinishesAt, uppperLimit, color=color.red, width= 3, extend=extend.none)
line.new(xAxisStartAt, lowerLimit, xAxisFinishesAt, lowerLimit, color=color.red, width= 3, extend=extend.none)
line.new(xAxisStartAt, upperRange, xAxisFinishesAt, upperRange, color=color.blue, width= 1, extend=extend.none)
line.new(xAxisStartAt, lowerRange, xAxisFinishesAt, lowerRange, color=color.blue, width= 1, extend=extend.none)

您必须定义一次线条,然后移动带有 line.set_xy1()line.set_xy2()

的线条实例
//@version=4
study("TEST", overlay=true)

var ul = line.new(na, na, na, na, color=color.red,  width= 3, extend=extend.none)
var ll = line.new(na, na, na, na, color=color.red,  width= 3, extend=extend.none)
var ur = line.new(na, na, na, na, color=color.blue, width= 1, extend=extend.none)
var lr = line.new(na, na, na, na, color=color.blue, width= 1, extend=extend.none)

lookBack = 24
range = 4

highestHigh = highest(high, lookBack)
lowestLow = lowest(low, lookBack)

xAxisStartAt = bar_index[lookBack]
xAxisFinishesAt = bar_index

upperLimit = highestHigh
lowerLimit = lowestLow

upperRange = ((highestHigh - lowestLow)/range) + lowestLow
lowerRange = highestHigh - ((highestHigh - lowestLow)/range)

// PAINTBRUSH
line.set_xy1(ul, xAxisStartAt,    upperLimit)
line.set_xy2(ul, xAxisFinishesAt, upperLimit)

line.set_xy1(ll, xAxisStartAt,    lowerLimit)
line.set_xy2(ll, xAxisFinishesAt, lowerLimit)

line.set_xy1(ur, xAxisStartAt,    upperRange)
line.set_xy2(ur, xAxisFinishesAt, upperRange)

line.set_xy1(lr, xAxisStartAt,    lowerRange)
line.set_xy2(lr, xAxisFinishesAt, lowerRange)