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

Pine Script:如何在图表顶部指定时间范围显示居中文字并调整标签位置

解决方案:在图表顶部指定时间范围显示居中无框文字

要实现将文字固定在图表顶部,核心是获取图表窗口的最高价格位置来定位标签,同时优化时间范围判断和标签的创建逻辑:

修正后的代码

//@version=5
indicator("顶部时间范围文字", overlay=true)

// 定义目标时间范围(格式HHMM-HHMM,可根据需求调整时区参数)
target_time_range = time(timeframe.period, "0800-1000", "GMT+8")

// 获取当前图表窗口的最高价格,用于定位到顶部
chart_top_price = chart_info.window_max

// 用var声明标签,避免每根K线重复创建
var label top_label = label.new(na, na, text="SB", textcolor=color.white, style=label.style_none, textalign=text.align_center, size=size.normal)

// 在目标时间范围内显示标签,其余时间隐藏
if not na(target_time_range)
    // 更新标签位置:K线中心x坐标,图表顶部y坐标
    label.set_xy(top_label, bar_index, chart_top_price)
    label.set_visible(top_label, true)
else
    label.set_visible(top_label, false)

关键优化点

  • 图表顶部定位:使用chart_info.window_max获取当前图表窗口的最高价格,确保标签始终处于可视区域顶部;
  • 标签复用:用var关键字声明标签,仅初始化一次,避免频繁创建销毁标签导致性能问题;
  • 时间范围控制:明确指定时区(示例为GMT+8),避免因平台默认时区差异导致时间判断错误;
  • 动态显示:通过label.set_visible控制标签在目标时间范围内显示,其余时间隐藏。

额外说明

如果希望标签始终固定在图表顶部(不受窗口缩放影响),可以替换chart_top_price为一个远高于当前价格的固定值,例如:

chart_top_price = ta.highest(ta.highest(close, 1000)) * 1.1 // 取最近1000根K线最高价格的1.1倍

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:45:57