【问题标题】:How to have only the latest instance of certain plotted lines visible?如何仅显示某些绘制线的最新实例?
【发布时间】:2021-04-14 13:57:30
【问题描述】:

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

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

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

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

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

任何帮助将不胜感激!干杯!

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)

【问题讨论】:

    标签: pine-script algorithmic-trading trading


    【解决方案1】:

    您必须定义一次行,然后使用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)
    

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 2021-08-14
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多