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

请求协助为Pine Script支撑阻力位添加价格标签

给Classic Levels指标添加支撑阻力位价格显示的解决方案

核心思路

这个指标是用line.new()绘制支撑阻力线的,别用line.get_price()绕弯路——直接在创建/更新线的同时,用label对象把价格显示出来就行,比调用line.get_price稳定得多,还能实时同步线的位置。

具体修改步骤

结合原指标逻辑,你可以按以下方式调整代码:

  1. 先定义标签存储容器:在脚本最开头添加两个数组,用来管理支撑和阻力的价格标签,避免后续界面混乱:
var label[] resistanceLabels = array.new_label()
var label[] supportLabels = array.new_label()
  1. 画线时同步创建价格标签:找到原代码中创建阻力线(或支撑线)的line.new()代码,紧跟其后添加标签创建逻辑:
// 原代码创建阻力线的示例(你代码里的变量名可能不同)
resLine = line.new(x1=bar_index[1], y1=resistanceLevel, x2=bar_index, y2=resistanceLevel, color=color.red, width=2)
// 添加价格标签,位置和样式可按需调整
resLabel = label.new(
    x=bar_index, 
    y=resistanceLevel, 
    text=str.tostring(resistanceLevel, format.mintick), // 保证价格精度匹配品种最小变动单位
    color=color.red, 
    textcolor=color.white, 
    style=label.style_label_left // 怕挡K线可改成label.style_label_right/up
)
// 将标签存入数组,方便后续更新/删除
array.push(resistanceLabels, resLabel)
  1. 线更新时同步更新标签:如果指标会动态调整支撑阻力线位置,找到line.set_y1/line.set_y2的代码,同步修改标签的位置和文本:
// 原代码更新阻力线位置的示例
line.set_y1(resLine, newResistanceLevel)
line.set_y2(resLine, newResistanceLevel)
// 同步更新对应标签
label.set_y(resLabel, newResistanceLevel)
label.set_text(resLabel, str.tostring(newResistanceLevel, format.mintick))
  1. 删除旧线时同步删除标签:若指标会移除过期的支撑阻力线,记得同步删除对应的标签,避免界面堆积无效元素:
// 原代码删除旧阻力线的示例
line.delete(oldResLine)
// 删除数组中对应的旧标签
label.delete(array.shift(resistanceLabels))

小提示

  • 支撑线的修改逻辑和阻力线完全一致,只需把变量名替换为support相关即可
  • 可以通过调整label.style_*参数改变标签位置,避免遮挡K线或指标元素
  • format.mintick必须保留,否则价格显示精度会和交易品种的最小变动单位不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:36