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

如何将自定义Volume Profile锁定至图表侧边,避免随滚动缩放移动?

自定义Volume Profile锁定到图表左右侧的实现方法

核心原理

要让自定义Volume Profile不随滚动、缩放操作移动,不能使用基于时间的坐标(xloc.bar_time),必须切换为固定位置的坐标体系——要么用基于K线索引的xloc.bar_index,要么用屏幕像素坐标xloc.pixel。

具体实现方案

1. 锁定到图表右侧

  • 把vp_x_loc设为当前最后一根K线的索引bar_index,这会让Volume Profile固定在图表最右侧的K线位置。
  • 修改f_setup_bar里的坐标计算逻辑,去掉时间相关的偏移,直接基于K线索引计算宽度。

修改后的代码片段:

// 固定到右侧的核心设置
vp_x_loc = bar_index  // 绑定到最后一根K线的索引,始终在图表右侧

f_setup_bar(n) =>
    ys = array.get(vp_a_P, n)
    bar_width_val = array.get(vp_a_W, n)
    x1 = vp_x_loc - bar_width_val  // 从右侧向左延伸对应宽度
    line.new(x1     = x1, 
             y1     = ys, 
             x2     = vp_x_loc, 
             y2     = ys, 
             xloc   = xloc.bar_index,  // 使用K线索引坐标,替代时间坐标
             extend = extend.none, 
             color  = (vp_VmaxId == n ? vp_poc_color : vp_bar_color), 
             style  = line.style_solid, 
             width  = vp_bar_width)

if barstate.islast
    for i = 0 to (vp_N_BARS - 1) by 1
        f_setup_bar(i)

2. 锁定到图表左侧

  • 只需将vp_x_loc设为固定的K线索引值,比如0(对应图表最左侧的K线),或者根据需求设置固定偏移量。
  • 调整x1的计算为vp_x_loc + bar_width_val,从左侧向右延伸宽度即可。

关键细节说明

  • xloc.bar_index是基于K线的序列索引,而非时间轴,所以滚动、缩放时不会跟随时间移动,只会固定在指定的K线位置。
  • 如果需要更精准的屏幕级控制,可以使用xloc.pixel:通过chart.pixel_width获取图表宽度,右侧设为chart.pixel_width,左侧设为0,但需要额外处理不同分辨率下的适配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:50:33