使用多个数组元素为相同的交易品种生成多行(Pine Script) [英] Using multiple array elements to produce multiple lines for the same symbols (Pine Script)

查看:55
本文介绍了使用多个数组元素为相同的交易品种生成多行(Pine Script)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基于

为 SPY 设置 2

以下数组与 2 个集合一起使用:

//SET 1//array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY,SPY,SPY,SPY,AAPL,AAPL,AAPL")//array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2")//array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1")//array.push(a_str_set_y1, "872.94,874.37,643.0,392.01,391.88,378.81,374.8,130.65,131.07,120.1")//array.push(a_str_set_y2, "872.47,873.18,659.51,391.8,391.52,378.23,375.16,129.89,130​​.36,121.2")//设置2array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY")array.push(a_str_set_x1, "2,2,2,2")array.push(a_str_set_x2, 1,1,1,1")array.push(a_str_set_y1, "872.94,874.37,643.0,392.01")array.push(a_str_set_y2, "872.47,873.18,659.51,391.8")array.push(a_str_set_ticker, "SPY,SPY,SPY,AAPL,AAPL,AAPL")array.push(a_str_set_x1, "2,2,2,2,2,2")array.push(a_str_set_x2, "1,1,1,1,1,1")array.push(a_str_set_y1, "391.88,378.81,374.8,130.65,131.07,120.1")array.push(a_str_set_y2, "391.52,378.23,375.16,129.89,130​​.36,121.2")

编辑 2

Bjorn 修改后的解决方案适用于数组组,但是当对许多元素使用这种方法时,Pine Script 现在会产生错误Loop take too long to execute (> 200ms)";以下是 1316 个坐标组的理论示例.原始代码允许 4000 多个坐标,并且在修复之前可以使用更多.有没有办法解决这个问题?

array.push(a_str_set_ticker, "SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,SPYY,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,SPY,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍")array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2")array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1")array.push(a_str_set_y1, "360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360")array.push(a_str_set_y2, "400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、40400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、40400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400")array.push(a_str_set_ticker, "SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,S间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,秒间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍,间谍")array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2")array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1")array.push(a_str_set_y1, "360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、36360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、360、36360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360")array.push(a_str_set_y2, "400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、40400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、400、40400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400")

解决方案

解决方案如下.
我能够删除我的 f_str2float()f_str2int() 函数,因为昨天他们发布了一个新的内置函数 tonumber().
脚本现在看起来更干净了.

//@version=4研究(线条",LI",真)int i_max_lines = input(10, 绘制的最大线数", minval=1, maxval=20)bool i_extend_lines = input(false, 扩展行")var string[] a_ticker = array.new_string()var int[] a_x1 = array.new_int()var int[] a_x2 = array.new_int()var float[] a_y1 = array.new_float()var float[] a_y2 = array.new_float()var string[] a_str = array.new_string()var string[] a_str_set_ticker = array.new_string()var string[] a_str_set_x1 = array.new_string()var string[] a_str_set_x2 = array.new_string()var string[] a_str_set_y1 = array.new_string()var string[] a_str_set_y2 = array.new_string()var line[] a_lines = array.new_line()//初始化数据f_init_data() =>//4000 个股票代码,分为 5 组,因为一个字符串的最大大小为 4096 个字符.//800个股票,设置1array.push(a_str_set_ticker, "QQQ,QQQ,QQQ,AMZN,AMZN")array.push(a_str_set_x1, "20,30,40,20,30")array.push(a_str_set_x2, "2,3,4,2,3")array.push(a_str_set_y1, "267,300,222,3000,2000")array.push(a_str_set_y2, "338.2,200,111,2500,1000")//初始化行f_init_lines() =>对于 x = 0 到 i_max_lines-1array.push(a_lines,line.new(na,na,na,na,extend=i_extend_lines?extend.both:extend.none))//画线f_draw_lines() =>如果 array.includes(a_ticker, syminfo.ticker)var int[] subarray_x1 = array.new_int()var int[] subarray_x2 = array.new_int()var float[] subarray_y1 = array.new_float()var float[] subarray_y2 = array.new_float()var int x1 = navar int x2 = na无功浮动 y1 = navar float y2 = na//获取当前代码的元素并放入子数组中.对于 x = array.indexof(a_ticker, syminfo.ticker) 到 array.lastindexof(a_ticker, syminfo.ticker)如果 array.get(a_ticker, x) == syminfo.tickerarray.push(subarray_x1, array.get(a_x1, x))array.push(subarray_x2, array.get(a_x2, x))array.push(subarray_y1, array.get(a_y1, x))array.push(subarray_y2, array.get(a_y2, x))//绘制子数组中的所有线.对于 x = 0 到 min(array.size(subarray_x1),i_max_lines)-1x1 := array.get(subarray_x1, x)x2 := array.get(subarray_x2, x)y1 := array.get(subarray_y1, x)y2 := array.get(subarray_y2, x)line.set_xy1(array.get(a_lines, x), bar_index - x1, y1)line.set_xy2(array.get(a_lines, x), bar_index - x2, y2)如果 barstate.islast//初始化f_init_data()f_init_lines()//处理数据对于 z = 0 到 array.size(a_str_set_ticker)-1a_ticker := array.concat(str.split(array.get(a_str_set_ticker, z),","), a_ticker)a_str := str.split(array.get(a_str_set_x1, z),",")for i = 0 to array.size(a_str)-1array.push(a_x1,int(tonumber(array.get(a_str,i))))a_str := str.split(array.get(a_str_set_x2, z),",")for i = 0 to array.size(a_str)-1array.push(a_x2,int(tonumber(array.get(a_str,i))))a_str := str.split(array.get(a_str_set_y1, z),",")for i = 0 to array.size(a_str)-1array.push(a_y1,tonumber(array.get(a_str,i)))a_str := str.split(array.get(a_str_set_y2, z),",")for i = 0 to array.size(a_str)-1array.push(a_y2,tonumber(array.get(a_str,i)))//Draw linesf_draw_lines()

Edit 1
In response to this comment.
It seems there was a problem with the array.concat() function, which inverted the ticker sequence. I solved it by processing the tickers the same way as the x/y values.
Also added a debug checkbox in the inputs, to show the content of the arrays.

//@version=4研究(线条",LI",真)int             i_max_lines         = input(10,    "Max number of lines drawn", minval=1, maxval=20)bool            i_extend_lines      = input(false, "Extend lines")bool            i_debug             = input(false, "Show debug info")var string[]    a_ticker            = array.new_string()var int[]       a_x1                = array.new_int()var int[]       a_x2                = array.new_int()var float[]     a_y1                = array.new_float()var float[]     a_y2                = array.new_float()var string[]    a_str_set_ticker    = array.new_string()var string[]    a_str_set_x1        = array.new_string()var string[]    a_str_set_x2        = array.new_string()var string[]    a_str_set_y1        = array.new_string()var string[]    a_str_set_y2        = array.new_string()var line[]      a_lines             = array.new_line()//Initialize the dataf_init_data() =>//SET 1//array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY,SPY,SPY,SPY,AAPL,AAPL,AAPL")//array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2")//array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1")//array.push(a_str_set_y1, "872.94,874.37,643.0,392.01,391.88,378.81,374.8,130.65,131.07,120.1")//array.push(a_str_set_y2, "872.47,873.18,659.51,391.8,391.52,378.23,375.16,129.89,130.36,121.2")//SET 2array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY")array.push(a_str_set_x1, "2,2,2,2")array.push(a_str_set_x2, "1,1,1,1")array.push(a_str_set_y1, "872.94,874.37,643.0,392.01")array.push(a_str_set_y2, "872.47,873.18,659.51,391.8")array.push(a_str_set_ticker, "SPY,SPY,SPY,AAPL,AAPL,AAPL")array.push(a_str_set_x1, "2,2,2,2,2,2")array.push(a_str_set_x2, "1,1,1,1,1,1")array.push(a_str_set_y1, "391.88,378.81,374.8,130.65,131.07,120.1")array.push(a_str_set_y2, "391.52,378.23,375.16,129.89,130.36,121.2")//Initialize the linesf_init_lines() =>for x = 0 to i_max_lines-1array.push(a_lines, line.new(na, na, na, na, extend=i_extend_lines ? extend.both : extend.none))//Draw linesf_draw_lines() =>if array.includes(a_ticker, syminfo.ticker)var int[]   subarray_x1 = array.new_int()var int[]   subarray_x2 = array.new_int()var float[] subarray_y1 = array.new_float()var float[] subarray_y2 = array.new_float()var int     x1          = navar int     x2          = navar float   y1          = navar float   y2          = na//Get elements with current ticker and put in a subarray.for x = array.indexof(a_ticker, syminfo.ticker) to array.lastindexof(a_ticker, syminfo.ticker)if array.get(a_ticker, x) == syminfo.tickerarray.push(subarray_x1, array.get(a_x1, x))array.push(subarray_x2, array.get(a_x2, x))array.push(subarray_y1, array.get(a_y1, x))array.push(subarray_y2, array.get(a_y2, x))//Draw all lines in the subarray.for x = 0 to min(array.size(subarray_x1),i_max_lines)-1x1 := array.get(subarray_x1, x)x2 := array.get(subarray_x2, x)y1 := array.get(subarray_y1, x)y2 := array.get(subarray_y2, x)line.set_xy1(array.get(a_lines, x), bar_index - x1, y1)line.set_xy2(array.get(a_lines, x), bar_index - x2, y2)//Process the dataf_process_data() =>for z = 0 to array.size(a_str_set_ticker)-1for i = 0 to array.size(str.split(array.get(a_str_set_ticker, z),","))-1array.push(a_ticker,              array.get(str.split(array.get(a_str_set_ticker, z),","),i)    )array.push(a_x1,     int(tonumber(array.get(str.split(array.get(a_str_set_x1,     z),","),i)))  )array.push(a_x2,     int(tonumber(array.get(str.split(array.get(a_str_set_x2,     z),","),i)))  )array.push(a_y1,         tonumber(array.get(str.split(array.get(a_str_set_y1,     z),","),i))   )array.push(a_y2,         tonumber(array.get(str.split(array.get(a_str_set_y2,     z),","),i))   )//Debug infof_debug(_show) =>if _showlabel_text = "a_ticker=" + tostring(a_ticker) + "\n" + "a_x1=" + tostring(a_x1) + "\n" + "a_x2=" + tostring(a_x2) + "\n" + "a_y1=" + tostring(a_y1) + "\n" + "a_y2=" + tostring(a_y2)label.new(bar_index, high, label_text)if barstate.islast//Initializationf_init_data()f_init_lines()//Process the dataf_process_data()//Draw linesf_draw_lines()//Show debug infof_debug(i_debug)

Edit 2
In response to this comment.
Loops made smaller to avoid Loop takes too long to execute error.
Please update the f_process_data() function to the one below.

//Process the dataf_process_data() =>var string[]    a_str = array.new_string()for z = 0 to array.size(a_str_set_ticker)-1a_size  = array.size(str.split(array.get(a_str_set_ticker, z),","))a_str := str.split(array.get(a_str_set_ticker, z),",")for i = 0 to a_size-1array.push(a_ticker,              array.get(a_str,i)    )a_str := str.split(array.get(a_str_set_x1, z),",")for i = 0 to a_size-1array.push(a_x1,     int(tonumber(array.get(a_str,i)))  )a_str := str.split(array.get(a_str_set_x2, z),",")for i = 0 to a_size-1array.push(a_x2,     int(tonumber(array.get(a_str,i)))  )a_str := str.split(array.get(a_str_set_y1, z),",")for i = 0 to a_size-1array.push(a_y1,         tonumber(array.get(a_str,i))   )a_str := str.split(array.get(a_str_set_y2, z),",")for i = 0 to a_size-1array.push(a_y2,         tonumber(array.get(a_str,i))   )

Based on this solution from Bjorn to include more array elements in the code while using float I am trying to plot several lines for the same symbol, but it seems that only the first set of array elements is processed. Is there a way to produce more lines for the same symbols (up to the number of occurrences of the symbol in the array)? The example arrays are included below. QQQ would have 3 lines, AMZN 2 lines, and MSFT just 1 line.

//@version=4
study("Lines", "LI", true)

x1_date = timestamp(2020, 10, 30, 9, 30)
x2_date = timestamp(2021, 2, 16, 9, 30)

var string[]    a_ticker            = array.new_string()
var int[]       a_x1                = array.new_int()
var int[]       a_x2                = array.new_int()
var float[]     a_y1                = array.new_float()
var float[]     a_y2                = array.new_float()
var string[]    a_str               = array.new_string()
var string[]    a_digits_str        = array.new_string()
var int[]       a_digits_int        = array.new_int()
var line        myLine              = line.new(x1_date, na, x2_date, na, extend=extend.both, color = color.yellow, xloc = xloc.bar_time)

var string[]    a_str_set_ticker    = array.new_string()
var string[]    a_str_set_x1        = array.new_string()
var string[]    a_str_set_x2        = array.new_string()
var string[]    a_str_set_y1        = array.new_string()
var string[]    a_str_set_y2        = array.new_string()


// Initializes the a_digits_int array
f_init_digits_int() =>
    for x = 0 to 9
        array.push(a_digits_str, tostring(x))
        array.push(a_digits_int, x)

// Converts a string containing a digit, to an integer
f_digitstr2int(_dstr) => 
    array.get(a_digits_int, array.indexof(a_digits_str, _dstr))

// Converts a string containing an integer, to an integer
f_str2int(_s) => 
    int multiplier = 1
    int number = 0

    // Initialize the a_digits_int array in case it hasn't been done yet.
    if not array.size(a_digits_int) 
        f_init_digits_int() 
        
    a = str.split(_s,"")
    array.reverse(a)

    for x = 0 to array.size(a)-1
        digit_str = array.get(a,x)
        number := number + multiplier * f_digitstr2int(digit_str)
        multiplier := multiplier * 10
        
    number        

// Converts a string containing a float, to a float
f_str2float(_s) =>
    float   number          = na
    string  s_absolute      = str.replace_all(_s,"-","")
    bool    is_negative     = str.length(s_absolute) != str.length(_s)
    
    a_split = str.split(s_absolute,".")
    if array.size(a_split) > 1 // _s has a decimal separator
        number := f_str2int(array.get(a_split,0)) + f_str2int(array.get(a_split,1)) / pow(10,str.length(array.get(a_split,1)))
    else // _s does not have a decimal separator, so it's an integer
        number := f_str2int(_s)
    
    number * (is_negative ? -1 : 1)

// Initialize the data
f_init_data() =>
    // 4000 tickers, broken down into 5 sets, because a string has a max size of 4096 characters.
    // 800 tickers, set 1
    array.push(a_str_set_ticker, "QQQ,QQQ,QQQ,AMZN,AMZN,MSFT")
    array.push(a_str_set_y1, "267,300,222,3000,2000,237")
    array.push(a_str_set_y2, "338.2,200,111,2500,1000,222")

if barstate.islast
    // Initialization
    f_init_data()

    // Process the data
    for z = 0 to array.size(a_str_set_ticker)-1
        a_ticker := array.concat(str.split(array.get(a_str_set_ticker, z),","), a_ticker)

        a_str := str.split(array.get(a_str_set_y1, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_y1,f_str2float(array.get(a_str,i)))

        a_str := str.split(array.get(a_str_set_y2, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_y2,f_str2float(array.get(a_str,i)))

    // Draw line 1
    if array.includes(a_ticker, syminfo.ticker)
        idx = array.indexof(a_ticker, syminfo.ticker)
        y1  = array.get(a_y1, idx)
        y2  = array.get(a_y2, idx)
        line.set_y1(myLine, y1)
        line.set_y2(myLine, y2)

Edit 1:

Using the solution from Bjorn with example array SET 1 and SET 2 does not produce expected results. SET 2 has the same elements as SET 1, but they are split into two array groups (important to use groups as strings are limited to 4096 characters). While SET 1 plots all lines correctly, SET 2 plots the same lines incorrectly for all symbols. This is especially visible when looking at SPY. Not clear why this is the case as the code looks correct. Is there a bug?

Set 1 for SPY

Set 2 for SPY

Following arrays were used with the 2 sets:

//SET 1

// array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY,SPY,SPY,SPY,AAPL,AAPL,AAPL")
// array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2")
// array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1")
// array.push(a_str_set_y1, "872.94,874.37,643.0,392.01,391.88,378.81,374.8,130.65,131.07,120.1")
// array.push(a_str_set_y2, "872.47,873.18,659.51,391.8,391.52,378.23,375.16,129.89,130.36,121.2")

//SET 2

array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY")
array.push(a_str_set_x1, "2,2,2,2")
array.push(a_str_set_x2, "1,1,1,1")
array.push(a_str_set_y1, "872.94,874.37,643.0,392.01")
array.push(a_str_set_y2, "872.47,873.18,659.51,391.8")

array.push(a_str_set_ticker, "SPY,SPY,SPY,AAPL,AAPL,AAPL")
array.push(a_str_set_x1, "2,2,2,2,2,2")
array.push(a_str_set_x2, "1,1,1,1,1,1")
array.push(a_str_set_y1, "391.88,378.81,374.8,130.65,131.07,120.1")
array.push(a_str_set_y2, "391.52,378.23,375.16,129.89,130.36,121.2")

Edit 2

Bjorn's revised solution works correctly for array groups, but when using this approach for many elements, Pine Script now produces the error "Loop takes too long to execute (> 200ms)" Below is a theoretical example for 1316 coordinates groups. The original code allowed for 4000+ coordinates and it worked for more before the fix. Is there a way around this?

array.push(a_str_set_ticker, "SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY")
array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2")
array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1")
array.push(a_str_set_y1, "360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360")
array.push(a_str_set_y2, "400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400")

array.push(a_str_set_ticker, "SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY,SPY")
array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2")
array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1")
array.push(a_str_set_y1, "360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360")
array.push(a_str_set_y2, "400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400")

解决方案

Solution below.
I was able to remove my f_str2float() and f_str2int() functions, because yesterday they released a new built-in function tonumber().
Script looks cleaner now.

//@version=4
study("Lines", "LI", true)

int             i_max_lines         = input(10,    "Max number of lines drawn", minval=1, maxval=20)
bool            i_extend_lines      = input(false, "Extend lines")

var string[]    a_ticker            = array.new_string()
var int[]       a_x1                = array.new_int()
var int[]       a_x2                = array.new_int()
var float[]     a_y1                = array.new_float()
var float[]     a_y2                = array.new_float()
var string[]    a_str               = array.new_string()

var string[]    a_str_set_ticker    = array.new_string()
var string[]    a_str_set_x1        = array.new_string()
var string[]    a_str_set_x2        = array.new_string()
var string[]    a_str_set_y1        = array.new_string()
var string[]    a_str_set_y2        = array.new_string()

var line[]      a_lines             = array.new_line()

// Initialize the data
f_init_data() =>
    // 4000 tickers, broken down into 5 sets, because a string has a max size of 4096 characters.
    // 800 tickers, set 1
    array.push(a_str_set_ticker, "QQQ,QQQ,QQQ,AMZN,AMZN")
    array.push(a_str_set_x1, "20,30,40,20,30")
    array.push(a_str_set_x2, "2,3,4,2,3")
    array.push(a_str_set_y1, "267,300,222,3000,2000")
    array.push(a_str_set_y2, "338.2,200,111,2500,1000")

// Initialize the lines
f_init_lines() =>
    for x = 0 to i_max_lines-1
        array.push(a_lines, line.new(na, na, na, na, extend=i_extend_lines ? extend.both : extend.none))

// Draw lines
f_draw_lines() =>
    if array.includes(a_ticker, syminfo.ticker)
        var int[]   subarray_x1 = array.new_int()
        var int[]   subarray_x2 = array.new_int()
        var float[] subarray_y1 = array.new_float()
        var float[] subarray_y2 = array.new_float()
        var int     x1          = na
        var int     x2          = na
        var float   y1          = na
        var float   y2          = na

        // Get elements with current ticker and put in a subarray.
        for x = array.indexof(a_ticker, syminfo.ticker) to array.lastindexof(a_ticker, syminfo.ticker)
            if array.get(a_ticker, x) == syminfo.ticker
                array.push(subarray_x1, array.get(a_x1, x))
                array.push(subarray_x2, array.get(a_x2, x))
                array.push(subarray_y1, array.get(a_y1, x))
                array.push(subarray_y2, array.get(a_y2, x))

        // Draw all lines in the subarray.
        for x = 0 to min(array.size(subarray_x1),i_max_lines)-1
            x1 := array.get(subarray_x1, x)
            x2 := array.get(subarray_x2, x)
            y1 := array.get(subarray_y1, x)
            y2 := array.get(subarray_y2, x)
            line.set_xy1(array.get(a_lines, x), bar_index - x1, y1)
            line.set_xy2(array.get(a_lines, x), bar_index - x2, y2)     


if barstate.islast
    // Initialization
    f_init_data()
    f_init_lines()

    // Process the data
    for z = 0 to array.size(a_str_set_ticker)-1
        a_ticker := array.concat(str.split(array.get(a_str_set_ticker, z),","), a_ticker)
    
        a_str := str.split(array.get(a_str_set_x1, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_x1,int(tonumber(array.get(a_str,i))))
    
        a_str := str.split(array.get(a_str_set_x2, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_x2,int(tonumber(array.get(a_str,i))))
    
        a_str := str.split(array.get(a_str_set_y1, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_y1,tonumber(array.get(a_str,i)))
    
        a_str := str.split(array.get(a_str_set_y2, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_y2,tonumber(array.get(a_str,i)))
            
    // Draw lines
    f_draw_lines()

Edit 1
In response to this comment.
It seems there was a problem with the array.concat() function, which inverted the ticker sequence. I solved it by processing the tickers the same way as the x/y values.
Also added a debug checkbox in the inputs, to show the content of the arrays.

//@version=4
study("Lines", "LI", true)

int             i_max_lines         = input(10,    "Max number of lines drawn", minval=1, maxval=20)
bool            i_extend_lines      = input(false, "Extend lines")
bool            i_debug             = input(false, "Show debug info")

var string[]    a_ticker            = array.new_string()
var int[]       a_x1                = array.new_int()
var int[]       a_x2                = array.new_int()
var float[]     a_y1                = array.new_float()
var float[]     a_y2                = array.new_float()

var string[]    a_str_set_ticker    = array.new_string()
var string[]    a_str_set_x1        = array.new_string()
var string[]    a_str_set_x2        = array.new_string()
var string[]    a_str_set_y1        = array.new_string()
var string[]    a_str_set_y2        = array.new_string()

var line[]      a_lines             = array.new_line()

// Initialize the data
f_init_data() =>

    //SET 1
    // array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY,SPY,SPY,SPY,AAPL,AAPL,AAPL")
    // array.push(a_str_set_x1, "2,2,2,2,2,2,2,2,2,2")
    // array.push(a_str_set_x2, "1,1,1,1,1,1,1,1,1,1")
    // array.push(a_str_set_y1, "872.94,874.37,643.0,392.01,391.88,378.81,374.8,130.65,131.07,120.1")
    // array.push(a_str_set_y2, "872.47,873.18,659.51,391.8,391.52,378.23,375.16,129.89,130.36,121.2")
    
    //SET 2
    array.push(a_str_set_ticker, "TSLA,TSLA,TSLA,SPY")
    array.push(a_str_set_x1, "2,2,2,2")
    array.push(a_str_set_x2, "1,1,1,1")
    array.push(a_str_set_y1, "872.94,874.37,643.0,392.01")
    array.push(a_str_set_y2, "872.47,873.18,659.51,391.8")
    
    array.push(a_str_set_ticker, "SPY,SPY,SPY,AAPL,AAPL,AAPL")
    array.push(a_str_set_x1, "2,2,2,2,2,2")
    array.push(a_str_set_x2, "1,1,1,1,1,1")
    array.push(a_str_set_y1, "391.88,378.81,374.8,130.65,131.07,120.1")
    array.push(a_str_set_y2, "391.52,378.23,375.16,129.89,130.36,121.2")


// Initialize the lines
f_init_lines() =>
    for x = 0 to i_max_lines-1
        array.push(a_lines, line.new(na, na, na, na, extend=i_extend_lines ? extend.both : extend.none))

// Draw lines
f_draw_lines() =>
    if array.includes(a_ticker, syminfo.ticker)
        var int[]   subarray_x1 = array.new_int()
        var int[]   subarray_x2 = array.new_int()
        var float[] subarray_y1 = array.new_float()
        var float[] subarray_y2 = array.new_float()
        var int     x1          = na
        var int     x2          = na
        var float   y1          = na
        var float   y2          = na

        // Get elements with current ticker and put in a subarray.
        for x = array.indexof(a_ticker, syminfo.ticker) to array.lastindexof(a_ticker, syminfo.ticker)
            if array.get(a_ticker, x) == syminfo.ticker
                array.push(subarray_x1, array.get(a_x1, x))
                array.push(subarray_x2, array.get(a_x2, x))
                array.push(subarray_y1, array.get(a_y1, x))
                array.push(subarray_y2, array.get(a_y2, x))

        // Draw all lines in the subarray.
        for x = 0 to min(array.size(subarray_x1),i_max_lines)-1
            x1 := array.get(subarray_x1, x)
            x2 := array.get(subarray_x2, x)
            y1 := array.get(subarray_y1, x)
            y2 := array.get(subarray_y2, x)
            line.set_xy1(array.get(a_lines, x), bar_index - x1, y1)
            line.set_xy2(array.get(a_lines, x), bar_index - x2, y2)     

// Process the data
f_process_data() =>
    for z = 0 to array.size(a_str_set_ticker)-1
        for i = 0 to array.size(str.split(array.get(a_str_set_ticker, z),","))-1
            array.push(a_ticker,              array.get(str.split(array.get(a_str_set_ticker, z),","),i)    )
            array.push(a_x1,     int(tonumber(array.get(str.split(array.get(a_str_set_x1,     z),","),i)))  )
            array.push(a_x2,     int(tonumber(array.get(str.split(array.get(a_str_set_x2,     z),","),i)))  )
            array.push(a_y1,         tonumber(array.get(str.split(array.get(a_str_set_y1,     z),","),i))   )
            array.push(a_y2,         tonumber(array.get(str.split(array.get(a_str_set_y2,     z),","),i))   )

// Debug info
f_debug(_show) =>
    if _show
        label_text = "a_ticker=" + tostring(a_ticker) + "\n" + "a_x1=" + tostring(a_x1) + "\n" + "a_x2=" + tostring(a_x2) + "\n" + "a_y1=" + tostring(a_y1) + "\n" + "a_y2=" + tostring(a_y2)
        label.new(bar_index, high, label_text) 


if barstate.islast
    // Initialization
    f_init_data()
    f_init_lines()

    // Process the data
    f_process_data()
    
    // Draw lines
    f_draw_lines()

    // Show debug info
    f_debug(i_debug)    

Edit 2
In response to this comment.
Loops made smaller to avoid Loop takes too long to execute error.
Please update the f_process_data() function to the one below.

// Process the data
f_process_data() =>
    var string[]    a_str = array.new_string()
    
    for z = 0 to array.size(a_str_set_ticker)-1
        a_size  = array.size(str.split(array.get(a_str_set_ticker, z),","))
        
        a_str := str.split(array.get(a_str_set_ticker, z),",")
        for i = 0 to a_size-1
            array.push(a_ticker,              array.get(a_str,i)    )

        a_str := str.split(array.get(a_str_set_x1, z),",")
        for i = 0 to a_size-1
            array.push(a_x1,     int(tonumber(array.get(a_str,i)))  )

        a_str := str.split(array.get(a_str_set_x2, z),",")
        for i = 0 to a_size-1
            array.push(a_x2,     int(tonumber(array.get(a_str,i)))  )

        a_str := str.split(array.get(a_str_set_y1, z),",")
        for i = 0 to a_size-1
            array.push(a_y1,         tonumber(array.get(a_str,i))   )

        a_str := str.split(array.get(a_str_set_y2, z),",")
        for i = 0 to a_size-1
            array.push(a_y2,         tonumber(array.get(a_str,i))   )

这篇关于使用多个数组元素为相同的交易品种生成多行(Pine Script)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆