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

Pine Script问题:明日特定价位静态水平线未显示,求代码修正

修正Pine Script静态水平线不显示问题

问题根源

你的代码存在两个核心问题导致线条无法正常显示:

  • 重复创建线条:line.new()在每根K线周期都会执行,生成大量重叠线条,同时浪费脚本资源
  • 时间范围逻辑偏差:原代码中sessionend = sessionstart + 86400000会让线条跨度整整一天,且未限制只在目标时间段内绘制,同时缺少创建线条的条件判断,导致线条可能因时间范围不在可视区域或重复创建而无法正常显示

修正后的代码

indicator("指定时间段静态水平线", overlay = true)

// 可自定义参数:目标价格、日期、时间段
targetPrice = input.float(2915, title = "目标价格")
targetDate = input.time(timestamp("2024-08-09T00:00:00"), title = "目标日期")
sessionStartHour = input.int(9, title = "时段开始小时")
sessionStartMinute = input.int(15, title = "时段开始分钟")
sessionEndHour = input.int(15, title = "时段结束小时")
sessionEndMinute = input.int(20, title = "时段结束分钟")

// 计算目标时段的开始和结束时间戳
sessionStart = timestamp(year(targetDate), month(targetDate), dayofmonth(targetDate), sessionStartHour, sessionStartMinute)
sessionEnd = timestamp(year(targetDate), month(targetDate), dayofmonth(targetDate), sessionEndHour, sessionEndMinute)

// 仅在脚本初始化或首次满足条件时创建线条,避免重复生成
var line targetLine = na
if barstate.islast and not na(sessionStart) and not na(sessionEnd)
    // 先删除旧线条(如果存在)
    line.delete(targetLine)
    // 创建新的水平线
    targetLine = line.new(sessionStart, targetPrice, sessionEnd, targetPrice, 
                         xloc = xloc.bar_time, color = color.blue, width = 2)

关键修正说明

  • 使用var关键字:确保线条对象只被初始化一次,避免每根K线重复创建
  • barstate.islast判断:仅在最后一根K线时创建/更新线条,保证脚本效率和线条唯一性
  • 可自定义参数:将价格、日期、时段改为输入参数,方便后续调整,无需修改代码
  • 时间戳精准计算:直接基于目标日期计算时段的开始和结束时间,逻辑更清晰
  • 线条删除机制:每次更新时先删除旧线条,避免多条线条重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:41:09