TradingView Pine Script代码第3、4行解析及line.new起始显示问题咨询
Pine Script代码解释与问题解答
一、代码功能说明
第3行
plot(bar_index):bar_index是Pine Script内置变量,代表当前K线的索引值,从图表第一根历史K线开始计数,初始值为0。这行代码会把每根K线的索引值作为数据点绘制在图表上,最终呈现一条从左到右持续递增的曲线,用来直观展示K线的序列位置。第4行
line.new(bar_index-1, close[1], bar_index, close, width =2):
这行代码用于创建线段,参数对应线段的起点与终点坐标:- 起点:
bar_index-1(上一根K线的索引)、close[1](上一根K线的收盘价) - 终点:
bar_index(当前K线的索引)、close(当前K线的收盘价)width=2用于设置线段的显示宽度为2像素。理论上这行代码会把每根K线的收盘价与前一根K线的收盘价连接起来,形成类似收盘价连线的效果。
- 起点:
二、线条起始显示问题的原因与解决
问题原因
你提到bar_index从首个历史K线的0开始,但实际线条未从起始处显示,核心原因是:当运行到第一根K线(bar_index=0)时,bar_index-1的结果为-1,这是无效的K线索引值,Pine Script会直接忽略这个非法的line.new调用,不会创建线段。直到第二根K线(bar_index=1)时,bar_index-1=0才是有效索引,此时才会创建第一条连接第0根和第1根K线收盘价的线段,所以视觉上线条没有从起始的第一根K线开始。
解决方法
给line.new添加条件判断,确保仅在存在有效前一根K线时才创建线段,修改后的代码如下:
//@version=4 study("array.new_line example",overlay = true) plot(bar_index) if bar_index >= 1 line.new(bar_index-1, close[1], bar_index, close, width =2)
修改后,代码会从第二根K线开始创建线段,连接第一根和第二根K线的收盘价,图表上就能看到线条从起始的第一根K线收盘价位置开始延伸。
内容的提问来源于stack exchange,提问作者Pamba
相关产品推荐
相关产品推荐

