如何在Pine Script中对每日新高/新低进行次数编号并循环展示
修改后的Pine Script代码(实现每日新高/新低计数标注)
以下是满足需求的完整代码,可实现每日新高/新低的次数编号标注,且每个交易日自动重置计数:
//@version=5 indicator('Day High/Low with Count', overlay=true) t = time('1440', session.extended) // 日线时间周期,可替换为指定交易时段如"0930-1600" is_first = na(t[1]) and not na(t) or t[1] < t // 初始化全局变量:每日高低点及计数 var float day_high = na var float day_low = na var int high_count = 0 var int low_count = 0 // 每日开盘时重置高低点与计数 if is_first and barstate.isnew day_high := high day_low := low high_count := 0 low_count := 0 // 更新每日高点并添加计数标注 if high > day_high day_high := high high_count += 1 label.new(bar_index, high, str.format("high %d", high_count), color=color.lime, textcolor=color.white, style=label.style_label_down) // 更新每日低点并添加计数标注 if low < day_low day_low := low low_count += 1 label.new(bar_index, low, str.format("low %d", low_count), color=color.red, textcolor=color.white, style=label.style_label_up) // 绘制每日高低点参考线 plot(day_high, color=color.lime, title="Day High") plot(day_low, color=color.red, title="Day Low") // 标注每日开盘位置(可选) plotshape(is_first, color=color.red, style=shape.arrowdown, title="Day Start")
关键改动说明
- 计数变量管理:用
var声明全局计数变量high_count和low_count,确保变量在脚本运行中持续存在,每日开盘时重置为0,实现每个交易日独立统计。 - 动态编号标注:每次新高/新低触发时,计数自增,通过
str.format()将数值转为“high N”“low N”格式的文本,用label.new()在对应价位显示标注。 - 每日重置逻辑:在每日第一根K线触发时,同步重置每日高低点和计数变量,保证统计周期严格对应单个交易日。
内容的提问来源于stack exchange,提问作者K Vinod Kumar
相关产品推荐
相关产品推荐

