You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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_highyearly_first_low只会在脚本初始化时赋值一次,后续只有在遇到新年度第一根K线时才会更新,这样就能一直保留年度首K的高低值,不会被后续K线覆盖。
  • plot 函数:把保存的高低值绘制成贯穿图表的水平线,我调整了线宽和样式,让线条更清晰显眼。

你只需要把这段代码复制到TradingView的Pine编辑器里,添加到图表上就能看到效果啦——不管你切换到日线、周线还是其他时间周期,它都会自动标记对应年度第一根K线的高低位水平线。

备注:内容来源于stack exchange,提问作者kozmos

火山引擎 最新活动