Pine 编辑器仍然没有内置功能来绘制线条(如支撑线、趋势线)。我找不到任何直接或间接的方法来画线。我想构建如下所示的函数(仅作为示例)
draw_line(price1, time1,price2, time2)
任何想法或建议?
Pine 编辑器仍然没有内置功能来绘制线条(如支撑线、趋势线)。我找不到任何直接或间接的方法来画线。我想构建如下所示的函数(仅作为示例)
draw_line(price1, time1,price2, time2)
任何想法或建议?
不幸的是,我不认为这是他们想要提供的东西。注意到 4 年前的几个有前途的帖子,但从未通过。唯一的另一种方法似乎涉及一些计算,通过用一些线图来近似你的线,你隐藏不相关的部分。
例如:_
...
c = close >= open ? lime : red
plot(close, color = c)
会产生这样的东西:
然后,您可以尝试替换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 )
更新: 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
至于其他“新”行功能,我还没有测试过。
现在可以在Pine Script v4中实现:
//@version=4
study("Line", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])
这是 midtownsk8rguy 在 TradingView 上的垂直线功能:
vline(BarIndex, Color, LineStyle, LineWidth) => // Verticle Line Function, ≈50-54 lines maximum allowable per indicator
// return = line.new(BarIndex, 0.0, BarIndex, 100.0, xloc.bar_index, extend.both, Color, LineStyle, LineWidth) // Suitable for study(overlay=false) and RSI, Stochastic, etc...
// return = line.new(BarIndex, -1.0, BarIndex, 1.0, xloc.bar_index, extend.both, Color, LineStyle, LineWidth) // Suitable for study(overlay=false) and +/-1.0 oscillators
return = line.new(BarIndex, low - tr, BarIndex, high + tr, xloc.bar_index, extend.both, Color, LineStyle, LineWidth) // Suitable for study(overlay=true)
if(bar_index%10==0.0) // Generically plots a line every 10 bars
vline(bar_index, #FF8000ff, line.style_solid, 1) // Variable assignment not required
如果您只绘制一次线条而不是在每根蜡烛上绘制线条,您也可以使用if barstate.islast
,这样您就不需要delete
之前的线条。
更紧凑的画线代码:
//@version=3
study("Draw line", overlay=true)
plot(n, color=na, style=line)
AB(x1,x2,y1,y2) => n < x1 or n > x2 ? na : y1 + (y2 - y1) / (x2 - x1) * (n - x1)
plot(AB(10065,10136,3819,3893), color=#ff00ff, linewidth=1, style=line,
transp=0)
plot(AB(10091,10136,3966.5,3931), color=#ff00ff, linewidth=1, style=line,
transp=0)