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

PineScript需求:将绘制水平位扩展至当前交易时段末端

解决方案

要让水平位从当前交易日开始就显示并贯穿整个时段,我们可以通过在每日开盘时锁定水平位数值,并持续绘制该数值的方式实现,同时保留原代码的防重绘逻辑。修改后的代码如下:

//@version=5
indicator(title="fff", overlay=true)

// 用户输入
disableRepaint = input.bool(title ="Disable Repainting?", defval=true)

// 获取当日高低价(防重绘处理)
pdl = request.security(syminfo.tickerid, "D", low[disableRepaint and barstate.isconfirmed ? 0 : 1]) 
pdh = request.security(syminfo.tickerid,"D", high[disableRepaint and barstate.isconfirmed ? 0 : 1])

// 计算水平位
P1 = pdh - (pdh - pdl) * 0.756
P2 = pdl + (pdh - pdl) * 0.790

// 用var变量存储当日的水平位,避免每根bar重置
var float daily_P1 = na
var float daily_P2 = na

// 检测每日第一个K线,更新当日水平位
is_new_day = ta.change(time("D"))
if is_new_day
    daily_P1 := P1
    daily_P2 := P2

// 绘制贯穿全日的水平位
plot(daily_P1, style=plot.style_line, color=color.white, linewidth=2)
plot(daily_P2, style=plot.style_line, color=color.white, linewidth=2)

关键修改点

  • 使用var关键字声明daily_P1和daily_P2:这两个变量只会初始化一次,后续不会被自动重置,确保当日的水平位数值能被持续保留。
  • 新增is_new_day判断:通过ta.change(time("D"))检测每日的第一个K线,此时更新当日的水平位数值,保证每个交易日的水平位基于当日开盘后的高低价计算。
  • 直接绘制daily_P1和daily_P2:替换原代码中仅当数值不变时才绘制的逻辑,让水平位从交易日开始就显示,并持续到当日结束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:25:23