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

如何在Pine Script中指定交易时段内绘制K线最高价与最低价

特定交易时段(0500-0800)高低价绘制解决方案

要实现特定交易时段内的最高价、最低价标记,你可以通过以下方式修改原有代码:

核心思路

  1. 定义目标时段:判断当前K线时间是否落在05:00-08:00区间内
  2. 计算该时段内的最高价与最低价:从时段起始点开始,累计计算区间内的最高、最低价
  3. 标记时段内创高低价的K线,区分历史时段与当日时段

完整代码实现

study("Session High/Low Marker", overlay = true)

// 定义目标交易时段(05:00-08:00)
inTargetSession = (hour >= 5 and hour < 8) or (hour == 8 and minute == 0)

// 捕捉时段的起始与结束点
sessionStart = change(inTargetSession) and inTargetSession
sessionEnd = change(inTargetSession) and not inTargetSession

// 计算当前目标时段内的最高价与最低价
sessionHigh = ta.highest(high, barssince(sessionStart) + 1)
sessionLow = ta.lowest(low, barssince(sessionStart) + 1)

// 区分当日与历史时段
isToday = (year == year(timenow)) and (month == month(timenow)) and (dayofmonth == dayofmonth(timenow))
isHist = not isToday

// 判断当前K线是否为时段内最高价/最低价
isSessionHighBar = high == sessionHigh and inTargetSession
isSessionLowBar = low == sessionLow and inTargetSession

// 绘制背景色标记
bgcolor(sessionStart ? color.blue : na, transp = 80) // 标记时段开始
bgcolor(sessionEnd ? color.orange : na, transp = 80) // 标记时段结束
bgcolor(isSessionLowBar and isHist ? color.red : na, transp = 75) // 历史时段最低价K线
bgcolor(isSessionHighBar and isHist ? color.green : na, transp = 75) // 历史时段最高价K线
bgcolor(isSessionLowBar and isToday ? color.new(color.red, 50) : na) // 当日时段最低价K线
bgcolor(isSessionHighBar and isToday ? color.new(color.green, 50) : na) // 当日时段最高价K线

代码说明

  • inTargetSession:精确匹配05:00-08:00区间,包含08:00整的K线
  • sessionStart/sessionEnd:触发时段的起始与结束信号,用于重置高低价的计算周期
  • sessionHigh/sessionLow:从时段起始点到当前K线的累计最高、最低价
  • 通过不同透明度的颜色区分当日与历史时段的高低价K线,避免视觉混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 01:06:18