如何绘制单条延伸的高低点趋势线?Pine Script技术咨询
固定延伸趋势线的实现方案(Pine Script v5)
需求完全可行,核心是通过控制趋势线的创建时机,避免重复生成或随新K线移位。
问题根源
你原来的代码每次触发barstate.islast时都会新建一条线,且未清理旧线;同时新K线出现后bar_index值变化,会导致线的锚点位置偏移,无法固定。
解决方案
使用var关键字声明全局变量存储线的ID,确保趋势线仅创建一次:
//@version=5 indicator("固定延伸趋势线", overlay=true) // 用var定义全局变量,仅初始化一次 var line fixed_trend_line = na // 仅在脚本首次运行到最后一根K线时创建趋势线 if barstate.islast and na(fixed_trend_line) // 替换为你需要的两个高点的位置和价格 // 示例:取35周期前和5周期前的高点 anchor_x1 = bar_index[35] anchor_y1 = high[35] anchor_x2 = bar_index[5] anchor_y2 = high[5] fixed_trend_line := line.new( x1=anchor_x1, y1=anchor_y1, x2=anchor_x2, y2=anchor_y2, color=color.blue, width=1, style=line.style_solid, extend=extend.right )
代码说明
var line fixed_trend_line = na:var关键字让变量仅在脚本启动时初始化一次,后续K线更新不会重置它。if barstate.islast and na(fixed_trend_line):仅当运行到最后一根K线,且趋势线尚未创建时,才执行创建操作。一旦线创建完成,fixed_trend_line会存储线的ID,后续不会再进入这个条件分支,从而保证趋势线固定不变。
如果需要基于特定高点条件(而非固定周期偏移)生成趋势线,只需调整锚点的计算逻辑,核心的var变量控制创建时机的逻辑保持不变即可。
内容的提问来源于stack exchange,提问作者guilieen
相关产品推荐
相关产品推荐

