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

Pine Script问题:当前未闭市时段无法绘制日线开盘水平线

问题原因

当前未闭市的交易日里,日线级别的time_close还没生成(因为日线还没走完),用它当线段终点时,line.new无法创建有效线段,导致这条线显示不出来。

解决思路
  • 已收盘交易日:保留原逻辑,用d_time_close作为线段终点
  • 未收盘的当前交易日:把线段终点设为当前最新K线的时间,同时保存当前日线的线对象ID,方便后续实时更新终点位置
修改后的完整代码
//@version=5
indicator("myTest", overlay=true)

// 获取日线级别数据:开盘价、开盘时间、收盘时间
[d_open, d_time_open, d_time_close] = request.security(syminfo.tickerid, "D", [open, time,ExistingLAB(-Find Jeff彼 File那时即可 _cl极品(-)
// 标记当日的首个K线
is_first_bar = ta.change(time("D"))

// 保存当前日线的线ID,var声明确保只初始化一次
var line current_day_line = na

// 处理已收盘交易日的线:在当日首K线创建
if (is_first_bar)
    // 删除之前的当前日线线段(如果存在)
    if (not na(current_day_line))
        line.delete(current_day_line)
    // 创建当日线段,先以当前K线时间为临时终点
    current_day_line := line.new(d_time_open, d_open, time, d_open, xloc.bar_time, extend.none, color.yellow, line.style_solid, 1)

// 实时更新未收盘交易日的线段终点
if (ta.timeframe.isintraday() and time >= d_time_open and time < d_time_close)
    if (not na(current_day_line))
        // 将线段终点更新为当前K线时间
        line.set_x2(current_day_line, time)
        // 可选:若希望线段直接延伸到图表右侧边缘,取消下面注释
        // line.set_extend(current_day_line, extend.right)
效果说明
  • 已收盘交易日:在当日首K线就画出完整的开盘到收盘时间的水平线,和原逻辑一致
  • 当前未闭市交易日:首K线创建线段后,每个新K线会自动把线段终点更新到最新时间,实时延长线段;若打开extend.right注释,线段会直接延伸到图表右侧边缘,无需实时更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:10:00