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

如何让表格实现鼠标位置联动的动态显示?

在Pine Script中实现表格随鼠标动态显示对应K线数值

要让表格跟随鼠标悬停的K线动态更新数值,核心思路是仅在最后一根可渲染表格的K线时,获取鼠标所在的K线索引,回溯提取该K线的目标指标值,再更新表格内容。具体实现步骤如下:

  • 获取鼠标悬停的K线索引:使用ta.mouse_bar_index()函数(Pine Script v5支持),它会返回当前鼠标指向K线的bar_index值。
  • 回溯提取对应K线的指标值:用valuewhen()函数,根据鼠标K线索引,定位并提取该位置的Range数值。
  • 限定表格更新时机:Pine Script的表格仅能在barstate.islast状态下渲染,因此需把表格更新逻辑放在该条件判断内。

修改后的代码示例:

//@version=5
indicator("动态表格示例", overlay=true)

// 替换为你实际的Range指标计算逻辑
Range = high - low

// 仅初始化一次表格
var table sizeDisplay = table.new(position.top_right, 1, 1)

if barstate.islast
    // 获取鼠标悬停的K线索引
    mouseBar = ta.mouse_bar_index()
    // 鼠标未悬停时用最新值兜底,否则取对应K线的Range值
    rangeAtMouse = na(mouseBar) ? Range : valuewhen(bar_index == mouseBar, Range, 0)
    // 更新表格单元格内容
    table.cell(table_id = sizeDisplay, column = 1, row = 1, text = str.tostring(rangeAtMouse), text_color = color.black, bgcolor = color.white)

关键说明:

  • ta.mouse_bar_index():鼠标未悬停在K线上时会返回na,通过na(mouseBar)做兜底判断,此时显示最新K线的Range值。
  • valuewhen(bar_index == mouseBar, Range, 0):从历史序列中匹配鼠标指向的K线索引,提取对应的Range值,0表示取最近的匹配项。
  • var table:确保表格仅初始化一次,避免重复创建造成资源浪费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:10:33