如何修改Pine Script实现显示美股9:30开盘价上浮15%的水平直线
修正后可直接使用的代码
//@version=4 study("美东9:30开盘价上浮15%线", overlay=true) // 指定美东时区作为时间判断基准 us_east_tz = "America/New_York" // 触发条件:匹配美东时间交易日9:30正式开盘时点 is_regular_session_open = hour(time, us_east_tz) == 9 and minute(time, us_east_tz) == 30 // 取最近一次正式开盘的开盘价 regular_open_price = valuewhen(is_regular_session_open, open, 0) // 计算上浮15%的价格 target_line = regular_open_price * 1.15 // 绘制水平直线,正式开盘前不显示无效值 plot(na(regular_open_price) ? na : target_line, style=plot.style_line, color=color.orange, linewidth=2)
调整说明
- 新增了美东时区的显式声明,完全避免本地时区差异导致的开盘时点判断误差
- 替换了原本按自然日切换触发取开盘价的逻辑,改为精确匹配美东时间9:30的时点触发,只会取美股正式盘的开盘价,不会再匹配盘前4点的盘前开盘价
- 增加了空值判断逻辑,美股正式开盘前不会显示错误的参考线,避免干扰看盘
适配不同K线周期的调整方案
如果你使用的是大于1分钟的K线周期(比如5分钟、15分钟线),只需要调整触发条件的分钟判断逻辑即可,比如5分钟线对应的9:30时段K线覆盖9:30-9:35,触发条件改为:is_regular_session_open = hour(time, us_east_tz) == 9 and minute(time, us_east_tz) >=30 and minute(time, us_east_tz) <35
如果使用Pine Script V5版本,只需把首行的study改为indicator即可,其余逻辑完全通用。
内容的提问来源于stack exchange,提问作者DarkWingDuck
相关产品推荐
相关产品推荐

