如何在TradingView Pine Script中获取交易时段的最高高点、最低低点与收盘价
Pine Script 获取特定交易时段高低收数值实现方案
核心实现逻辑是先匹配目标交易时段的时间边界,再在边界范围内统计对应行情值,具体实现步骤如下:
- 第一步:定义目标时段筛选规则
使用内置time()函数匹配你需要的时段范围,示例如下:
// 示例匹配北京时间每日15:00-23:00的交易时段,时区参数可根据需求调整为"UTC"或交易所时区 inTargetSession = time(timeframe.period, "1500-2300", "UTC+8")
如果需要匹配周、月维度的特定时段,修改第二个参数即可,比如匹配每月1-15日的时段,参数改为"01-15:D"。
- 第二步:统计时段内最高高(highest high)、最低低(lowest low)
通过检测时段开始边界来重置统计值,累加计算当前时段的高低极值:
// 检测时段开始节点 sessionStart = ta.change(inTargetSession) and inTargetSession // 定义变量存储时段极值,时段开始时重置数值 var float sessionHH = na var float sessionLL = na sessionHH := sessionStart ? high : ta.highest(high, ta.barssince(sessionStart) + 1) sessionLL := sessionStart ? low : ta.lowest(low, ta.barssince(sessionStart) + 1)
- 第三步:获取时段结束时的收盘价
检测时段结束节点,存储时段最后一根K线的收盘价:
// 检测时段结束节点 sessionEnd = ta.change(inTargetSession) and not inTargetSession // 存储时段收盘价,仅在时段结束时更新 var float sessionClose = na sessionClose := sessionEnd ? close[1] : sessionClose
注意:如果你的脚本运行在低于1小时的时间级别(比如1分钟、5分钟K线),需要确保时段长度覆盖足够的K线数量,避免统计遗漏;时区参数要和你K线的显示时区一致,否则会出现时段偏移问题。
内容的提问来源于stack exchange,提问作者JACK_SPARROW
相关产品推荐
相关产品推荐

