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

Pine Script代码问题:1分钟K线图每15分钟竖线不显示排查

1分钟K线图15分钟整点竖线绘制问题排查与修复

问题根源分析

原代码的核心问题在于周期起始判断逻辑错误,导致isPeriodStart条件永远无法成立,因此不会触发竖线绘制:

  • 原判断式(hour * periodsInHour + math.round((minute - periodStartMinute) / minutesInPeriod)) % periodsInDay == 0存在逻辑漏洞:当设置periodStartMinute=0、minutesInPeriod=15时,只有当hour * 4是96(24*4)的倍数时条件才成立,但hour范围是0-23,hour*4最大为92,永远无法满足模96等于0的要求,所以条件始终为假。
  • 另外,LineLength用ATR乘以1000会导致线段长度过大,超出图表可视范围,即使条件成立也可能看不到线条。

修复后的代码

以下是修正后的代码,调整了判断逻辑并优化了线段显示:

//@version=5
indicator(title="15分钟整点竖线", shorttitle="15分钟竖线", overlay=true)

// 输入参数
minutesInPeriod = input.int(15, "周期长度(分钟)", minval=1)
periodStartMinute = input.int(0, "周期起始分钟(0-59)", minval=0, maxval=59)
lineColor = input.color(color.new(color.yellow, 30), "竖线颜色")

// 判断是否为15分钟整点的K线(仅在1分钟K线生效)
isPeriodStart = minute % minutesInPeriod == periodStartMinute

// 绘制垂直虚线的函数,使用图表可视范围的高低值
drawVerticalLine() =>
    // 获取当前图表的可视高低范围,避免线段过长
    chartLow = ta.lowest(low, 100)
    chartHigh = ta.highest(high, 100)
    line.new(bar_index, chartLow * 0.99, bar_index, chartHigh * 1.01, color=lineColor, style=line.style_dotted, width=1)

// 触发绘制
if isPeriodStart
    drawVerticalLine()

测试说明

  • 将图表切换为1分钟K线周期
  • 加载脚本后,会在每个15分钟整点(如08:00、08:15、08:30等)的K线位置绘制黄色半透明垂直虚线
  • 可通过输入参数调整周期长度、起始分钟和竖线颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:52:55