如何在TradingView中绘制年度首根K线的高低位水平线
如何在TradingView中绘制年度首根K线的高低位水平线
没问题,我来帮你搞定这个需求!你想要在任意时间周期(日线、周线等)的图表上,标记出年度第一根K线的高点和低点并绘制水平线,这个用Pine Script v5就能轻松实现。我调整了你的代码,让它更贴合需求,同时保证在不同时间周期下都能正常工作:
//@version=5 indicator("年度首K高低水平线", overlay=true) // 自定义函数:判断是否是指定周期的新K线 is_new(resolution) => t = time(resolution) not na(t) and (na(t[1]) or t > t[1]) // 判断是否是新年度的第一根K线 is_new_year() => is_new('12M') // 用var变量保存年度首K的高低值(只会初始化一次,后续保持不变) var float yearly_first_high = na var float yearly_first_low = na // 更新年度首K的高低值 yearly_first_high := is_new_year() ? high : yearly_first_high yearly_first_low := is_new_year() ? low : yearly_first_low // 绘制水平线:高点用绿色,低点用红色,样式为实线 plot(yearly_first_high, "年度首K高点", color=color.new(color.green, 0), linewidth=2, style=plot.style_line) plot(yearly_first_low, "年度首K低点", color=color.new(color.red, 0), linewidth=2, style=plot.style_line)
下面给你解释下关键部分的作用:
is_new(resolution)函数:这个是核心工具,通过对比当前和上一根K线在指定周期下的时间戳,判断是否进入了新的周期(比如新的年度、新的周)。is_new_year()函数:调用上面的工具,用12M(年度)周期来检测是否是新年度的第一根K线,不管你当前图表是日线、周线还是其他周期,它都能精准定位到该年度的第一根对应周期K线。var关键字声明的变量:yearly_first_high和yearly_first_low只会在脚本初始化时赋值一次,后续只有在遇到新年度第一根K线时才会更新,这样就能一直保留年度首K的高低值,不会被后续K线覆盖。plot函数:把保存的高低值绘制成贯穿图表的水平线,我调整了线宽和样式,让线条更清晰显眼。
你只需要把这段代码复制到TradingView的Pine编辑器里,添加到图表上就能看到效果啦——不管你切换到日线、周线还是其他时间周期,它都会自动标记对应年度第一根K线的高低位水平线。
备注:内容来源于stack exchange,提问作者kozmos




