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

Pine Script技术需求:绘制当日特定日内K线开盘价全日水平线

解决Pine Script绘制当日第二根30分钟K线开盘价全日水平线问题

需求:获取当日第二根30分钟K线(10:30收盘的那根)的开盘价,绘制一条仅覆盖当日全天的水平线,不能延伸到次日。

原代码存在的问题:

  • v1(黄线):每根K线都创建新线条,很快达到max_lines_count=500上限,后续无法显示
  • v2、v3(橙线、绿线):逻辑错误,没正确捕获目标K线的开盘价,也没控制线条的覆盖范围

修正后的代码

//@version=5
indicator('Custom Gap Indicator', shorttitle='CGI', overlay=true)

// 定义当日第二根30分钟K线的收盘时刻条件
is_target_bar = hour == 10 and minute == 30

// 存储目标K线的开盘价,每日重置
var float target_open = na
if ta.change(time("D"))
    target_open := na
if is_target_bar
    target_open := open

// 存储线条对象,每日更新而非新建
var line day_line = na
if ta.change(time("D"))
    // 新交易日删除旧线条
    if not na(day_line)
        line.delete(day_line)
    day_line := na

// 目标K线收盘后创建线条,初始设置覆盖到当日剩余K线
if is_target_bar
    day_line := line.new(x1=bar_index - 1, y1=target_open, x2=bar_index, y2=target_open, 
                        width=3, color=color.new(color.blue, 0))

// 实时更新线条终点,确保覆盖到当日最新K线
if not na(day_line) and not is_target_bar
    line.set_x2(day_line, bar_index)

关键逻辑说明

  • 避免线条数量超限:用var line day_line存储单条线条对象,每个交易日仅删除旧线条、更新新线条,不会触发创建上限
  • 精准捕获目标开盘价:通过hour == 10 and minute == 30判断第二根30分钟K线的收盘时刻,此时记录该K线的开盘价
  • 控制覆盖范围:目标K线收盘后创建线条,后续每根K线实时更新线条终点为当前bar_index,确保线条只覆盖当日K线,不会延伸到次日

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:58:50