@vitruvius 的回答很好,但我想补充一点。
无需画线和删除旧线。您可以只定义一次,然后将它们移动到最后一根柱线上。此外,可以在一个security() 调用中请求这些值。
//@version=5
indicator("Plot Lines", overlay=true)
f_newLine(_color) => line.new(na, na, na, na, xloc.bar_time, extend.right, _color)
f_moveLine(_line, _x, _y) =>
line.set_xy1(_line, _x, _y)
line.set_xy2(_line, _x+1, _y)
var line line_open = f_newLine(color.yellow)
var line line_high = f_newLine(color.red)
var line line_low = f_newLine(color.green)
[pdo,pdh,pdl] = request.security(syminfo.tickerid,"D", [open,high,low])
if barstate.islast
f_moveLine(line_open, time, pdo)
f_moveLine(line_high, time, pdh)
f_moveLine(line_low , time, pdl)
编辑 1
//@version=5
indicator("Plot Lines", overlay=true)
f_newLine(_color) => line.new(na, na, na, na, xloc.bar_time, extend.right, _color)
f_moveLine(_line, _x, _y) =>
line.set_xy1(_line, _x, _y)
line.set_xy2(_line, _x+1, _y)
var line line_open = f_newLine(color.yellow)
var line line_high = f_newLine(color.red)
var line line_low = f_newLine(color.green)
[pdo,pdh,pdl,pdt] = request.security(syminfo.tickerid,"D", [open[1],high[1],low[1],time[1]])
if barstate.islast
f_moveLine(line_open, pdt, pdo)
f_moveLine(line_high, pdt, pdh)
f_moveLine(line_low , pdt, pdl)