如何按纽约时间绘制带标签的前一日/周高低点水平线
解决方案(基于TradingView Pine Script)
以下是实现纽约时间17:00每日高低点标记,仅显示前一日、前一周数据的代码与说明:
核心逻辑
- 转换时区到纽约时间,定位每日17:00的K线节点
- 提取该节点对应的当日高低点
- 筛选出前一日、前一周的高低点数据
- 绘制区分度高的线条与标签
//@version=5 indicator("NYC 17:00高低点标记", overlay=true) // 转换为纽约时区(自动适配EST/EDT) nyc_time = time(timezone="America/New_York") is_nyc_5pm = hour(nyc_time) == 17 and minute(nyc_time) == 0 // 存储每日17:00对应的高低点 var float daily_high = na var float daily_low = na if is_nyc_5pm // 提取从上次17:00到当前的高低点 daily_high := ta.highest(high, barssince(is_nyc_5pm)[1] + 1) daily_low := ta.lowest(low, barssince(is_nyc_5pm)[1] + 1) // 获取前一日、前一周的高低点 prev_day_high = ta.valuewhen(timeframe.isdaily, daily_high, 1) prev_day_low = ta.valuewhen(timeframe.isdaily, daily_low, 1) prev_week_high = ta.valuewhen(timeframe.isweekly, daily_high, 1) prev_week_low = ta.valuewhen(timeframe.isweekly, daily_low, 1) // 绘制前一日高低点线条与标签 if barstate.islast // 高点线:绿色虚线 line.new(bar_index - 1, prev_day_high, bar_index, prev_day_high, color=color.green, width=2, style=line.style_dashed) label.new(bar_index, prev_day_high, "前一日高点", color=color.green, textcolor=color.white, style=label.style_label_left) // 低点线:红色虚线 line.new(bar_index - 1, prev_day_low, bar_index, prev_day_low, color=color.red, width=2, style=line.style_dashed) label.new(bar_index, prev_day_low, "前一日低点", color=color.red, textcolor=color.white, style=label.style_label_left) // 绘制前一周高低点线条与标签 if barstate.islast // 高点线:蓝色实线 line.new(bar_index - 5, prev_week_high, bar_index, prev_week_high, color=color.blue, width=2, style=line.style_solid) label.new(bar_index, prev_week_high, "前一周高点", color=color.blue, textcolor=color.white, style=label.style_label_left) // 低点线:橙色实线 line.new(bar_index - 5, prev_week_low, bar_index, prev_week_low, color=color.orange, width=2, style=line.style_solid) label.new(bar_index, prev_week_low, "前一周低点", color=color.orange, textcolor=color.white, style=label.style_label_left)
关键细节说明
- 时区适配:
America/New_York会自动切换夏令时/冬令时,无需手动调整 - 高低点准确性:通过
barssince定位上一次17:00的K线,确保提取的是完整交易日的高低点 - 性能优化:仅在最后一根K线(
barstate.islast)绘制线条与标签,避免重复渲染 - 视觉区分:用不同颜色、线条样式区分前一日(虚线)与前一周(实线)数据,标签紧贴线条便于识别
内容的提问来源于stack exchange,提问作者Crypto Gainz
相关产品推荐
相关产品推荐

