根据较高的时间框架及时绘制线条,并使用松脚本将它们保持在较低的时间框架中

Drawing lines back in time based on higher time frame and keeping them in lower time frame using pine script

当我们在 TradingView 中画线时,我们可以设置每日时间范围,完成绘图后我们可以转到更短的时间以达到更高的精度。我需要做的是利用更高的时间框架,并通过编码将它们保持在更短的时间框架内。有2个问题:

1- 当我在我的研究中设置 max_bars_back=5000 并在我的代码中设置 max_bars_back(time, 4000) 时,代码在较短的时间范围内给出错误。 2- 我必须向右滑动很多次才能回到过去并等待 TradingView 绘制它应该画的东西。

例如,将这些想象成附图中提到的线条,我们希望在较短的时间范围内(如 5 分钟)看到最后一根蜡烛(当前时间)的线条。

Pine 脚本中的任何解决方案

使用 time 而不是 bar_index 是将线的原点设置为超过 5000 根柱线限制的一种方法。例如

line.new(x1 = time[1], y1 = high, x2 = time, y2 = high, xloc = xloc.bar_time)

但是,电视图表会分块加载。如果您的线的起点位于尚未加载的历史块上,则不会呈现该线。这就是为什么直到您向后滚动到足够远时才显示您的行。

您可以通过仅在第一个块中绘制一段线来部分解决此问题。使用普通变量来跟踪您的 (x,y) 坐标,然后您可以计算出两组更接近实时柱的坐标,并使用这些新坐标来绘制您的线。不过,此公式仅适用于非对数图表。

f_y_given_x(_x1, _y1, _x2, _y2, _new_x) =>
    _m = (_y2 - _y1) / (_x2 - _x1)
    _b = _y1 - _m * _x1
    _new_y = _m * _new_x + _b
    _new_y