Pine编辑器仍然没有内置功能来绘制线(例如支撑线,趋势线)。
我找不到任何直接或间接的方法来画线。
我想构建如下所示的函数(仅用于示例)

draw_line(price1, time1,price2, time2)

有什么想法或建议吗?

最佳答案

不幸的是,我认为这不是他们想要提供的。注意到4年前从未有过的一些有希望的帖子。唯一的其他方法似乎涉及一些计算,方法是用一些折线图逼近您的线,在其中隐藏不相关的部分。

对于example:

...
c = close >= open ? lime : red
plot(close, color = c)

会产生这样的事情:

line - 如何在Pine脚本(Tradingview)中画线?-LMLPHP

然后,您可以尝试将red替换为na,以仅获取绿色部分。

示例2

我做了更多的实验。显然,Pine太残废了,您甚至无法在函数中放置图,因此唯一的方法似乎是对直线使用点斜率公式,如下所示:

//@version=3
study(title="Simple Line", shorttitle='AB', overlay=true)

P1x = input(5744)
P1y = input(1.2727)
P2x = input(5774)
P2y = input(1.2628)
plot(n, color=na, style=line)   // hidden plot to show the bar number in indicator

// point slope
m = - (P2y - P1y) / (P2x - P1x)

// plot range
AB = n < P1x or n > P2x ? na : P1y - m*(n - P1x)
LA = (n == P1x) ? P1y : na
LB = (n == P2x) ? P2y : na

plot(AB, title="AB", color=#ff00ff, linewidth=1, style=line, transp=0)
plotshape(LA, title='A', location=location.absolute, color=silver, transp=0, text='A', textcolor=black, style=shape.labeldown)
plotshape(LB, title='B', location=location.absolute, color=silver, transp=0, text='B', textcolor=black, style=shape.labelup )

结果是相当不错的,但是使用起来很不方便。
line - 如何在Pine脚本(Tradingview)中画线?-LMLPHP

更新: 2019-10-01

显然,他们已经在Pinescript 4.0+中添加了一些新的行功能。
这是使用新的 vline() 函数的示例:

//@version=4
study("vline() Function for Pine Script v4.0+", overlay=true)

vline(BarIndex, Color, LineStyle, LineWidth) => // Verticle Line, 54 lines maximum allowable per indicator
    return = line.new(BarIndex, -1000, BarIndex, 1000, xloc.bar_index, extend.both, Color, LineStyle, LineWidth)

if(bar_index%10==0.0)
    vline(bar_index, #FF8000ff, line.style_solid, 1) // Variable assignment not required

至于其他"new"行功能,我还没有测试过。

09-27 10:35