如何用PineScript绘制每日特定小时开盘价的水平线?
在PineScript中绘制每日特定时段开盘价水平线的实现方案
核心思路
要实现这个需求,关键是捕捉每日目标时段K线的开盘价,并将该价格值保留到次日同一时段更新,最后用水平线绘制出来。
完整代码示例
//@version=5 indicator("每日特定时段开盘价水平线", overlay=true) // 配置参数:目标时段的小时和分钟(可自行修改) targetHour = input.int(8, title="目标小时", minval=0, maxval=23) targetMinute = input.int(0, title="目标分钟", minval=0, maxval=59) // 判断当前K线是否是目标时段的K线 isTargetBar = hour == targetHour and minute == targetMinute // 存储目标开盘价:当日首次触发目标时段时更新,之后保持到次日 var float dailyOpenPrice = na if isTargetBar dailyOpenPrice := open // 绘制水平线,仅在有有效价格时显示 plot(dailyOpenPrice, color=color.new(color.blue, 0), linewidth=2, title="每日目标时段开盘价线") // 可选:标记目标时段的K线(方便验证) bgcolor(isTargetBar ? color.new(color.green, 80) : na)
代码解释
- 参数配置:通过
input.int让你可以自由调整目标时段的小时和分钟,不用修改代码核心逻辑。 - 目标K线判断:
hour == targetHour and minute == targetMinute精准定位到目标时间的K线(注意:PineScript默认使用交易所时区,如果需要用本地时区,需替换为hour(timezone="Asia/Shanghai")这类指定时区的写法)。 - 价格存储:用
var声明变量dailyOpenPrice,确保它只会初始化一次,只有当触发目标K线时才更新为该K线的开盘价,否则保持之前的值,实现“次日更新”的效果。 - 绘制水平线:
plot函数绘制存储的价格,overlay=true让线条直接显示在K线图上。 - 可选标记:
bgcolor给目标时段的K线添加背景色,方便你验证是否正确捕捉到了目标K线。
注意事项
- 周期适配:代码适用于分钟级、小时级等周期,但如果用日线周期,目标时段设置会无效(因为日线K线的时间是开盘时间,需根据实际使用的周期调整判断逻辑)。
- 时区问题:如果你的交易时段是本地时区,一定要在
hour()和minute()中指定对应的时区参数,比如hour(timezone="Europe/London")。
内容的提问来源于stack exchange,提问作者Tecleador
相关产品推荐
相关产品推荐

