请求修改Pine Script代码:实现每N根K线绘制前期N根最高价线
解决指定K线区间最高价水平线绘制问题
问题描述
你希望每完成指定数量(如50根)的K线后,在该区间内绘制一条对应最高价的水平线,但现有代码仅会在每第N根K线时更新最高价数值,导致绘制的是连续的水平线而非分区间的独立水平线。
修正后的代码
//@version=5 indicator(title='Test-1', shorttitle='Test-1', overlay=true, timeframe='') barLength = input.int(50, minval=1, title='区间长度') var int counter = 0 var int segmentStartBar = bar_index counter := counter + 1 // 当完成一个指定长度的K线区间时 if counter == barLength // 计算当前区间的最高价 segmentHigh = ta.highest(bar_index - segmentStartBar + 1) // 绘制横跨该区间的最高价水平线 line.new( x1=segmentStartBar, y1=segmentHigh, x2=bar_index, y2=segmentHigh, color=color.green, width=2, style=line.style_solid ) // 重置计数器并更新下一个区间的起始K线索引 counter := 0 segmentStartBar := bar_index + 1
关键改动说明
- 替换绘制方式:用
line.new()替代plot(),生成独立的水平线段,精准覆盖每个完成的K线区间,而非连续线条。 - 追踪区间起点:通过
segmentStartBar记录每个区间的起始K线索引,确保水平线仅绘制在对应区间范围内。 - 区间最高价计算:在每个区间完成时,计算该区间内的最高价,并绘制横跨整个区间的水平线。
内容的提问来源于stack exchange,提问作者aakcay
相关产品推荐
相关产品推荐

