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

Pine Script策略开发:计算指定时段价格极值并绘图

Pine Script 特定时段高低价计算与绘制方案

问题修正与实现思路

你需要计算每日12:00-14:00的价格极值,并在13:00-16:00时段将结果绘制在图表上。原代码的时段逻辑和高低价计算方式存在偏差,以下是修正后的完整实现:

逐K实时追踪版代码

//@version=5
strategy("特定时段高低价追踪策略", overlay = true)

// 定义核心时段
t_calc = time(timeframe.period, "1200-1400:1234567")  // 12:00-14:00,用于计算高低价
t_show = time(timeframe.period, "1300-1600:1234567")   // 13:00-16:00,用于显示结果

// 存储当日目标时段的高低价,用var保证变量不被逐K重置
var float daily_session_high = na
var float daily_session_low = na

// 每日开盘时重置高低价,避免跨日数据干扰
if ta.newbar("D")
    daily_session_high := na
    daily_session_low := na

// 在目标时段内实时更新高低价
if not na(t_calc)
    daily_session_high := ta.max(high, daily_session_high)
    daily_session_low := ta.min(low, daily_session_low)

// 仅在显示时段绘制高低价线,用linebr保证线条连续且仅在有效区间显示
plot(not na(t_show) ? daily_session_high : na, color=color.red, style=plot.style_linebr, title="12-14时段最高价")
plot(not na(t_show) ? daily_session_low : na, color=color.green, style=plot.style_linebr, title="12-14时段最低价")

小时K线聚合版代码(适合大周期图表)

如果你的图表周期大于1小时,需要基于1小时K线聚合计算12:00-14:00的极值,可以用以下方案:

//@version=5
strategy("特定时段高低价追踪策略(小时K版)", overlay = true)

// 定义显示时段
t_show = time(timeframe.period, "1300-1600:1234567")

// 调取1小时周期,提取当日12:00-14:00对应的2根小时K线的高低极值
[session_high, session_low] = request.security(syminfo.tickerid, "60", [ta.highest(high, 2), ta.lowest(low, 2)], gaps=barmerge.gaps_on)

// 在显示时段绘制结果
plot(not na(t_show) ? session_high : na, color=color.red, style=plot.style_linebr, title="12-14时段最高价")
plot(not na(t_show) ? session_low : na, color=color.green, style=plot.style_linebr, title="12-14时段最低价")

关键逻辑说明

  • 每日重置:通过ta.newbar("D")判断新交易日,重置当日的高低价变量,确保数据仅对应当日目标时段。
  • 时段判断:用time()函数精确匹配目标时段,避免非时段内的无效计算。
  • 绘制控制:通过not na(t_show)控制仅在指定时段显示线条,避免图表冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:32:46