如何在TradingView pine脚本中绘制垂直线?

时间:2017-12-02 17:38:32

标签: finance tradingview-api pine-script

我尝试使用基于网络的TradingView平台制作我自己的自定义脚本来显示各种金融市场属性。这可以通过其pine脚本引擎/解释器实现。

目前,我试图在主图表或指标图表上只显示一条垂直线。但是,除了使用情节的histogramcolumn类型之外,它们的脚本引擎似乎不支持垂直线。无论哪种方式,我都无法得到任何令人满意的台词。

某些测试

(1)我使用bgcolor()这样取得了一些小小的成功:

//@version=3
study(title="vbar1", overlay = false)
trange(res, sess) => not na(time(res, sess))
vlinecol = #000000 // black
plot(n, color = na) // check last value from plot but don't display
vline =  (n < 5710) ? na : trange("1", "0700-0701") ? vlinecol : na
bgcolor(vline, transp=0)

这导致:

enter image description here

(2)plot()style=histogram参数一起使用时效果更好:

//@version=3
study(title="vbar2", overlay = true) // scale=scale.none only for overlay=true
vlinecol = #000000 // black
cond = barstate.islast
bh = 10*high   // Use 10 x the window max price height for top of vbar (or use 1e20)
bo = -10       // Set offset from last bar
plot(cond ? bh : na, color=vlinecol, linewidth=2, offset=bo, style = histogram, transp=0)

具有以下结果:

enter image description here

5 个答案:

答案 0 :(得分:4)

这是一个旧帖子,但这可以帮助其他人。 您可以使用它来画一条线:

testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
plot((time==testPeriodStart)?10e20:na,color=black, linewidth=1, style=line)

虽然我无法绘制虚线

答案 1 :(得分:4)

如果有人对使用新的 v4 line.new() 函数感兴趣:

注意:根据需要调整 LineLengthMult

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © marketscripters

//@version=4
study("My Script", overlay=true)
LineLengthMult = 10
LineLength = atr(100) * LineLengthMult

drawVerticalLine(offset) =>
    line.new(bar_index[offset], low-LineLength, bar_index[offset], high+LineLength, color=color.new(color.yellow, 50), width=3)

if bar_index % 21 == 0
    drawVerticalLine(0)

tradingview chart showing vertical lines by marketscripters.com

编辑:答案已更新为自动缩放垂直线的代码。

答案 2 :(得分:1)

Dany的答案对我来说在图表上没有显示任何内容,但是将样式设置为直方图可以解决问题。

//@version=3
study("Vertical lines", overlay=true, scale=scale.none)

plot((time == timestamp(2019,01,01,0,0)) ? 10e20 : na, 
      color = red, linewidth = 10, title = "27", style = histogram)

plot((time == timestamp(2019,01,02,0,0)) ? 10e20 : na, 
      color = green, linewidth = 10, title = "28", style = histogram)

答案 3 :(得分:0)

使用bgcolor()color(),例如:

vline =  (n < 5710) ? na : trange("1", "0700-0701") ? vlinecol : na
bgcolor(vline ? color(black, 0) : color(white, 100))

它在每一列上绘制一条线,但是请注意,在false情况下,颜色的透明度值为100。除了true情况下的条形之外,什么都不会渲染。

答案 4 :(得分:0)

How To Show Vertical Linesallanster显示了如何在图表高度上绘制垂直线(如OP所示)。

他的脚本还允许在会话或时间边界上绘制线条。

enter image description here