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

如何在TradingView 1分钟周期内绘制指定时段的高低点水平线?

在TradingView 1分钟时间框架下绘制当日10:00-10:12时段高低点水平线

直接上可用的Pine Script v5代码,同时优化了原示例的逻辑漏洞:

//@version=5
indicator("时段高低点水平线", overlay=true)

// 可自定义的时段参数
startHour = input.int(10, title="开始小时")
startMinute = input.int(0, title="开始分钟")
endHour = input.int(10, title="结束小时")
endMinute = input.int(12, title="结束分钟")

// 存储当日时段高低点,var关键字确保变量仅初始化一次
var float sessionHigh = na
var float sessionLow = na

// 正确判断当前K线是否处于目标时段(支持跨小时场景)
inSession = (hour > startHour) or (hour == startHour and minute >= startMinute) and 
            (hour < endHour) or (hour == endHour and minute <= endMinute)

// 交易日切换时重置高低点,避免跨交易日数据混淆
if ta.change(time("D"))
    sessionHigh := na
    sessionLow := na

// 时段内实时更新高低点
if inSession
    sessionHigh := ta.max(high, sessionHigh)
    sessionLow := ta.min(low, sessionLow)

// 全天显示高低点水平线,而非仅时段内
plot(sessionHigh, color=color.red, title="时段高点", linewidth=2)
plot(sessionLow, color=color.green, title="时段低点", linewidth=2)

关键细节说明:

  • 参数灵活配置:通过input.int设置可调整的时段参数,无需修改代码就能快速更改起止时间。
  • 每日重置机制:解决原代码无交易日切换处理的问题,避免第二天高低点沿用前一天的数据。
  • 时段判断修复:原代码仅支持同小时的时段判断,优化后的逻辑可覆盖跨小时场景(如9:55-10:05)。
  • 高低点更新简化:用ta.max和ta.min替代原代码的条件判断,逻辑更简洁且不易出错。
  • 绘图优化:原代码仅在时段内显示水平线,优化后全天持续显示,更便于后续行情分析参考。

原代码存在的问题:

  1. 时段判断逻辑有局限性,仅适用于同小时的时段;
  2. 无每日重置机制,跨交易日会导致数据错误;
  3. 水平线仅在时段内显示,实用性不足。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:25:30