Pine Script 5表格运行时错误:列索引越界问题求助
Pine Script 5表格列索引越界问题排查与解决
出现Column 3 is out of table bounds, number of columns is 3报错,说明你的代码里有一处调用table.cell()时传入了col=3的参数——哪怕你以为只用了0、1、2,大概率是细节上的疏漏,按下面的步骤排查:
检查所有
table.cell()调用的col参数
逐行找代码里的table.cell(),看有没有硬写col=3的情况,或者用变量计算列索引时,变量值意外等于3。比如手滑把col=2写成col=3,或者某个计算列索引的表达式(比如col = someVar + 1)在某些场景下得到3。排查循环逻辑的边界错误
如果用循环批量填充单元格,很容易出现循环次数多算一次的问题。比如:// 错误示例:循环到3会让colIdx取0、1、2、3 for colIdx = 0 to 3 table.cell(myTable, 0, colIdx, "内容")改成
for colIdx = 0 to 2或者for colIdx = 0 for 3(后者表示循环3次,索引从0开始)就能解决。确认表格列数未被动态修改
如果你创建表格后调用过table.set_column_count(),可能不小心把列数改成了小于3的数值?不过这个情况报错会是其他列索引越界,优先级低于前两个排查点。
下面是一个能正常运行的3列6行表格示例,你可以对比自己的代码找差异:
//@version=5 indicator("3列6行表格示例", overlay=true) if barstate.islast // 创建3列6行的表格 demoTable = table.new(position.top_right, columns=3, rows=6) // 批量填充所有单元格 for row = 0 to 5 for col = 0 to 2 table.cell(demoTable, row, col, str.format("R{0}C{1}", row, col))
如果排查完还是找不到问题,把你的完整代码贴出来,更容易定位具体错误。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

