Pine Script在条形右边绘制一条水平线

问题描述

我目前正在尝试在Pine Script中为TradingView编写脚本,并且难以绘制仅在最后收盘价/时间和图表结束之间绘制的水平线。随附图片供参考。 Link

我目前正在尝试使用line.set和line.new,以便可以接受自定义价格输入并将该语句放入if函数中。

任何帮助实现这一目标的方法,将不胜感激。

此处附有代码,可以选择在整个图表上画一条线,也可以仅如上所述。

show1 = input(true,title="|- Use Line1?")
dS1 = input(true,title="|- Short Line1")
price1 = input(title="Price1",type=input.integer,defval=0)

var line l1 = na
if show1 
    line.set_x2(l1,bar_index)
    line.set_extend(l1,extend.none)
    line.set_color(l1,color.green)
    line.set_style(l1,line.style_solid)
    line.set_width(l1,2)
    if dS1
        l1 := line.new(bar_index,price1,bar_index,extend=extend.right)
    else
        l1 := line.new(bar_index,extend=extend.both)

    label label1 = label.new(bar_index,"Line1",textcolor=color.green,style=label.style_none),label.delete(label1[1])

解决方法

原始代码存在一些问题,包括:

  • 覆盖不适用
  • 不删除以前打印的行(如标签所示)

这将通过一个警告完成您要查找的内容(它从上一栏开始绘制)。从当前的条形中绘制它会比较棘手。

//@version=4
study("Line Example [MS]",overlay=true)

show1 = input(true,title="|- Use Line1?")
dS1 = input(true,title="|- Short Line1")
price1 = close

var line l1 = na
if show1 
    l1 := line.new(bar_index[1],price1,bar_index,color=color.red,style=line.style_solid,width=2,extend=dS1 ? extend.right : extend.both)
    label label1 = label.new(bar_index,"Line1",textcolor=color.green,style=label.style_none)
    
    line.delete(l1[1])
    label.delete(label1[1])

我建议在线阅读更多内容。新内容:https://marketscripters.com/how-to-use-pine-scripts-v4-line-function/