Pine Script如何绘制指定输入日期对应月份的月度高点水平线
问题根因
原代码直接通过security(syminfo.tickerid, 'M', high[0])获取当前K线对应的最新月度高点,没有和你设置的输入日期参数绑定,因此永远只会显示当前月份的高点,无法匹配指定日期所属月份的数值。
修复后可直接运行的代码
//@version=4 study(title="指定月份高点绘制", shorttitle="H_M", overlay=true) disMonthly = input(true, title="是否显示月度高低点?") HM_Date = input(defval = timestamp("01 Jan 2021 00:00 +0530"), title = "选择目标日期", type = input.time) // 计算目标月份相对当前的K线偏移量 target_month_start = time("M", HM_Date) month_offset = barssince(time("M") == target_month_start) // 提取指定月份的高点 mHigh = security(syminfo.tickerid, "M", high[month_offset]) plot(disMonthly ? mHigh : na, title="月度高点", style=plot.style_cross, color=color.silver, linewidth=1, trackprice=true)
改动说明
- 新增了目标月份的时间匹配逻辑,通过
barssince()计算出你输入的日期所属月份距离当前的偏移量,传入security()函数后就能准确取到对应月份的高点 - 保留了你原代码的所有自定义参数,绘制逻辑和原有样式完全一致
- 增加了显示开关的联动判断,关闭
disMonthly参数后不会渲染线条
内容的提问来源于stack exchange,提问作者Girish Talele
相关产品推荐
相关产品推荐

