TradingView Pine Script:能否编写在回溯20/50/200根K线处绘制垂直线的脚本?
TradingView Pine Script:绘制回溯指定K线数的垂直线
当然可以实现这个需求,以下是完整的Pine Script v5代码,能在当前K线回溯20、50、200根K线的位置绘制垂直线:
//@version=5 indicator("回溯指定K线垂直线", overlay=true) // 定义需要回溯的K线数量 lookback_periods = [20, 50, 200] // 定义对应线条的颜色 line_colors = [color.new(color.blue, 0), color.new(color.red, 0), color.new(color.green, 0)] // 仅在最后一根K线绘制,避免重复生成线条 if barstate.islast for i = 0 to array.size(lookback_periods) - 1 period = array.get(lookback_periods, i) // 确保回溯的K线数不超过已加载的K线总量 if bar_index >= period target_bar_index = bar_index - period target_time = time[target_bar_index - bar_index] // 获取目标K线的时间戳 // 绘制垂直线 line.new( x1=target_time, y1=ta.lowest(ta.low, 100), x2=target_time, y2=ta.highest(ta.high, 100), color=array.get(line_colors, i), width=2, style=line.style_dashed, title=str.tostring(period) + "根前" )
代码说明:
overlay=true:让指标直接叠加在主图上,和你用的"Anchored Vertical Line"效果一致barstate.islast:仅在当前最新K线执行绘制逻辑,避免每根K线都重复生成线条,节省资源- 循环处理多个回溯周期:通过数组批量定义需要的回溯数和对应颜色,方便后续修改或添加新周期
- 边界检查
bar_index >= period:防止脚本在K线数量不足时报错 line.new:核心绘制函数,通过目标K线的时间戳定位垂直线位置,y轴范围取最近100根K线的高低区间,确保线条覆盖当前可见的价格范围
你可以直接将这段代码复制到TradingView的Pine编辑器中,保存后就能看到效果。如果需要调整线条样式(比如实线/虚线、宽度、颜色),修改line.new里的参数即可。
内容的提问来源于stack exchange,提问作者Dale
相关产品推荐
相关产品推荐

