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

如何在Pine Script中为指定标的、时间及价位绘制图形?

在Pine Script中指定时间价位绘制形状的解决方案

要在EURUSD品种的2022年11月30日12:00、价位1.02903处精准绘制形状,核心是匹配目标时间戳并正确调用绘图函数,以下是两种可行方案:

方案一:使用label函数(精准定位任意时间点)

label函数可直接通过时间戳定位坐标,不受K线周期限制,适合精准标记单点:

//@version=5
indicator("指定位置标记", overlay=true)

// 定义目标时间(UTC时区,若图表用其他时区需调整)与价位
target_time = timestamp("2022-11-30T12:00:00")
target_price = 1.02903

// 在最后一根K线时创建标签(避免重复绘制)
if barstate.islast
    label.new(
        x=target_time,
        y=target_price,
        text="", // 无需文字可留空
        style=label.style_xcross, // 可选形状:label.style_circle/label.style_square等
        color=color.red,
        size=size.small
    )

关键说明:

  • timestamp默认使用UTC时区,若图表时区为伦敦/纽约等,需在函数中指定时区,例:timestamp("2022-11-30T12:00:00", timezone="Europe/London")
  • barstate.islast确保仅在图表加载完成后创建一次标签,避免重复生成

方案二:使用plotshape函数(基于K线周期绘制)

plotshape依赖K线周期,需先找到包含目标时间的K线,再在对应价位绘制:

//@version=5
indicator("指定位置绘制形状", overlay=true)

target_time = timestamp("2022-11-30T12:00:00")
target_price = 1.02903

// 判断当前K线是否为包含目标时间的第一根K线
time_match = time >= target_time and time[1] < target_time

// 绘制形状
plotshape(
     series=time_match,
     location=location.absolute,
     y=target_price,
     style=shape.xcross, // 可选形状:shape.circle/shape.square等
     color=color.blue,
     size=size.small
)

关键说明:

  • time_match通过对比当前K线与前一根K线的开盘时间,筛选出包含目标时间的K线
  • location=location.absolute指定使用绝对价位作为形状的Y坐标

常见问题排查

如果之前调用函数失败,大概率是以下原因:

  • 时区不匹配:图表时区与代码中timestamp的时区不一致,导致时间定位偏差
  • 未限制绘制次数:未使用barstate.islast或类似条件,导致形状被重复绘制覆盖
  • K线周期不匹配:使用plotshape时,目标时间不在当前图表的K线时间段内(比如用日线图标记1小时级时间点)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:20:32