Pine Script如何实现bgcolor()向未来延伸1天的交易时段背景着色
解决方法
实现背景色向未来多渲染1天的逻辑很简单,只需要在原有时间判断的基础上,增加对「当前时间+1天」的时段匹配即可,修改后的完整代码如下:
//@version=4 study(title="Trading Hours", overlay=true) // 计算当前时间加1天的时间戳(86400000毫秒=1天) nextDayTime = time + 86400000 // 盘前橙色背景:匹配当前时段+未来1天同时段 bgcolor(timeframe.isintraday and (time("", "0200-0800", "GMT+2") or time(nextDayTime, "0200-0800", "GMT+2")) ? color.new(color.orange , 92) : na) // 盘前/盘后蓝色背景:匹配当前时段+未来1天同时段 bgcolor(timeframe.isintraday and (time("", "0800-0900", "GMT+2") or time(nextDayTime, "0800-0900", "GMT+2")) ? color.new(color.blue, 95) : na) bgcolor(timeframe.isintraday and (time("", "1730-2200", "GMT+2") or time(nextDayTime, "1730-2200", "GMT+2")) ? color.new(color.blue, 95) : na)
关键逻辑说明
- 新增的
nextDayTime变量统一计算了未来1天的时间戳,适配所有日内周期,不会因为K线时长不同出现偏移错误 - 每个着色判断都同时校验「当前K线时段」和「未来1天对应时段」,两个条件满足任意一个就会渲染背景,自然实现了背景向未来多延伸1天的效果
- 你后续如果需要调整时段、时区或者颜色透明度,直接修改对应位置的参数即可,不需要改动逻辑部分
内容的提问来源于stack exchange,提问作者Max S.
相关产品推荐
相关产品推荐

