You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script用for循环生成水平线仅最高值有标签,如何给5条线全加标签

问题根因

你当前的代码仅创建了1个标签实例,且标签属性的赋值逻辑写在了for循环之外,循环执行完成后roundNumberLine变量只会保留最后一次循环计算出的最高值,因此最终只有最高位的水平线有对应的价格标签。

修正代码

你需要创建和水平线数量匹配的标签数组,将标签配置逻辑移入循环内,每生成一条线就同步设置对应标签的位置和文本,修正后可运行的完整代码如下:

//@version=4
study(title="Round Numbers 2", overlay=true)

StepSize = 500
nbarsforward = input(title="Extend bar", defval = 70)
dt = time - time[1]

var number_of_lines = 5
var step = syminfo.mintick*StepSize
var float roundNumberLine = na
// 创建标签数组存储5条线对应的标签
var label[] lineLabels = array.new_label(number_of_lines)

// 初始化标签数组
for idx = 0 to number_of_lines - 1
    array.set(lineLabels, idx, label.new(x=na, y=na, xloc=xloc.bar_time, style=label.style_none, textcolor=color.black))

for counter = 0 to number_of_lines - 1
    roundNumberLine := ceil(close / step) * step + (counter * step)
    line.new(bar_index, roundNumberLine, bar_index - 1, roundNumberLine, xloc=xloc.bar_index, extend=extend.both, color=color.black, width=2)
    // 给当前线条对应的标签设置属性
    currLabel = array.get(lineLabels, counter)
    label.set_y(currLabel, roundNumberLine)
    label.set_x(currLabel, x=time + nbarsforward * dt)
    label.set_text(currLabel, text=tostring(roundNumberLine))

原问题效果参考

代码运行后的问题效果图

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:45:05