Pine Script如何获取pmonlow变量的UNIX时间值调整画线起始位置
实现方案
可以直接获取上月最低价对应的UNIX时间戳,不需要手动换算,修改后的完整代码如下:
//@version=4 study(title="Low Lines", overlay=true) // 获取上月最低价 pmonlow = security(syminfo.tickerid, 'M', low[1]) // 判断是否为当月第一根K线 is_new_month = change(month) != 0 var float low_time = na var line lowLine = na if is_new_month // 新月份触发时遍历上月所有K线,找到最低价对应的时间戳 idx = 1 // 仅遍历上月范围内的K线 while month[idx] == month[1] if low[idx] == pmonlow // 记录最低价K线的UNIX毫秒时间戳 low_time := time[idx] break idx := idx + 1 if not na(low_time) // 使用时间戳定位线条起点,指定xloc为bar_time匹配时间坐标 lowLine := line.new( x1=low_time, y1=pmonlow, x2=bar_index, y2=pmonlow, extend=extend.right, color=color.red, width=2, xloc=xloc.bar_time ) // 删除前一次绘制的旧线条避免重叠 line.delete(lowLine[1])
关键改动说明
- Pine Script内置的
time变量本身就是当前K线起始时间的UNIX毫秒时间戳,完全符合你line.setxloc的坐标调用要求 - 新增月份切换判断逻辑,仅在每月第一根K线时遍历上月K线匹配最低价对应的时间,性能开销极低
- 调用
line.new时新增xloc=xloc.bar_time参数,指定x坐标使用时间戳解析规则,线条就会从最低价实际发生的K线位置开始延伸
内容的提问来源于stack exchange,提问作者Trade_Pine
相关产品推荐
相关产品推荐

