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

PineScript v6绘制矩形覆盖全图表高度问题求助

London Session Highlight 指标问题排查与修复

核心问题原因

矩形覆盖全图表高度、缩放时异常变化,主要是两个常见错误导致:

  • 矩形y轴参数误用:大概率是绘制时传入了全局图表的高低极值(比如ta.highest(9999)),而非目标K线的high[1]/low[1];或者xloc参数设置错误,导致缩放时坐标偏移。
  • 时区触发逻辑偏差:虽然你设置了UTC+2时区,但time函数的时区参数未正确指定,导致触发绘制的K线并非预期时段,不过你提到日志显示高低值正确,这条可能性稍低,但仍需验证。

修复方案与代码示例

1. 修正时区触发条件

Pine Script v6中,要基于图表时区(UTC+2)判断触发时间,明确指定time函数的时区参数:

//@version=6
indicator("London Session Highlight", overlay=true)

// 触发条件:UTC+2时区的9:15(对应UTC 8:15)的M15 K线
isTrigger = time(timeframe.period, "0915-0915", "GMT+2") != na

2. 正确绘制矩形

确保矩形的top/bottom严格使用前一根K线的高低值,且用xloc.bar_index固定K线位置,避免缩放偏移:

if isTrigger
    prev_high = high[1]
    prev_low = low[1]
    // 绘制覆盖前一根M15 K线的矩形
    box.new(
        left=bar_index[1],
        top=prev_high,
        right=bar_index,
        bottom=prev_low,
        color=color.new(color.orange, 85),
        border_color=color.orange,
        xloc=xloc.bar_index  // 按K线索引定位,缩放不位移
    )

3. 关键排查点

  • 绝对不要在box.new的top/bottom中使用ta.highest/ta.lowest这类全局极值函数,除非你需要覆盖全图表高度。
  • 用标记验证触发时机:添加plotshape(isTrigger, style=shape.circle, location=location.abovebar, color=color.green),确认触发K线确实是UTC+2的9:15那根。
  • 确认图表周期为M15,否则high[1]对应的不是你要的15分钟蜡烛。

验证步骤

  • 保留日志输出:在触发条件内加入if isTrigger => label.new(bar_index, high, str.tostring(prev_high) + " | " + str.tostring(prev_low), color=color.white),实时确认高低值是否正确。
  • 缩放图表:如果用了xloc.bar_index,矩形会固定在对应K线位置,不会随缩放改变大小或位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:37:15