如何克服 Pine 脚本中的 "Compiled script code is too long"

How to overcome "Compiled script code is too long" in Pine Script

基于 Bjorn 的 尝试以下操作以在代码中包含更多数组元素。下面的理论示例包括函数 a() 中的 1000 和 b) 中的 500。 PineScript 无法编译它,因为编译的脚本代码太长:79979。限制是 60000。但是,带空格的字符数只有 23115。有什么可以做的来包含更多,因为我需要包含 4000 个元素?

如果排除第 49 行 (from if barstate.islast and syminfo.ticker == "SPY") 以下的所有内容,则代码编译为永远不会访问 b()。例如,如果 syminfo.ticker 的第一个字母与“S”匹配,是否有一种方法只能访问 b()?

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

var a_ticker = array.new_string()
var a_x1 = array.new_int()
var a_x2 = array.new_int()
var myLine = line.new(na, na, na, na, extend=extend.both)

ai(a,v) => array.includes(a,v)
ax(a,v) => array.indexof(a,v)
as(a,i,v) => array.set(a,i,v)
ag(a,i) => array.get(a,i)
ap(a,v) => array.push(a,v)

f(t,a,b) =>
    if ai(a_ticker,t)
        i = ax(a_ticker,t),as(a_x1,i,a),as(a_x2,i,b) 
    else 
        ap(a_ticker,t),ap(a_x1,a),ap(a_x2,b)

a() => 
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6)

b() => 
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),

if barstate.islast and syminfo.ticker == "AAPL"
    a()
    if ai(a_ticker, syminfo.ticker)
        idx = ax(a_ticker, syminfo.ticker)
        x1  = ag(a_x1, idx)
        x2  = ag(a_x2, idx)
        line.set_xy1(myLine, bar_index - x1, high[x1])
        line.set_xy2(myLine, bar_index - x2, high)

if barstate.islast and syminfo.ticker == "SPY"
    b()
    if ai(a_ticker, syminfo.ticker)
        idx = ax(a_ticker, syminfo.ticker)
        x1  = ag(a_x1, idx)
        x2  = ag(a_x2, idx)
        line.set_xy1(myLine, bar_index - x1, high[x1])
        line.set_xy2(myLine, bar_index - x2, high)

编辑 1:

根据 Bjorn 的解决方案,我尝试对趋势线的 y1 和 y2 价格值使用相同的方法,应该是 float(使用价格值),同时保持x1 和 x2 作为趋势线的静态时间戳值。我调整了代码以接受 float 而不是 int,但似乎只接受 int。有什么东西不见了吗? f_str2int 函数是否需要 float 值?

//@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 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 float[]     a_digits_float      = array.new_float()
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_y1        = array.new_string()
var string[]    a_str_set_y2        = array.new_string()


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


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


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

    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     

// Initialize the data
f_init_data() =>
    array.push(a_str_set_ticker, "AAPL,AMZN,SPY")
    array.push(a_str_set_y1, "121,3228,322.2")
    array.push(a_str_set_y2, "119.1,3210.8,394.9")

if barstate.islast
    // Initialization
    f_init_digits_float()
    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_str2int(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_str2int(array.get(a_str,i)))

    // Draw line
    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)

编辑 2:

基于 Bjorn 的 float 方法,我试图为同一符号绘制 3 行,但似乎只处理了第一组数组元素?有没有办法为相同的符号生成更多行(根据数据生成 1、2 或最多 3 行)?相关数组将包括以下内容:

// 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_y1, "267,300,222,3000,2000")
    array.push(a_str_set_y2, "338.2,200,111,2500,1000")

显然,它不起作用,因为正如我在您之前的问题中所评论的那样,编译器在编译时会考虑脚本中的所有代码。就算不叫。

下面是一个区分符号首字母的示例,但无法编译,因为整个代码库太大。

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

var a_ticker = array.new_string()
var a_x1 = array.new_int()
var a_x2 = array.new_int()
var myLine = line.new(na, na, na, na, extend=extend.both)

ai(a,v) => array.includes(a,v)
ax(a,v) => array.indexof(a,v)
as(a,i,v) => array.set(a,i,v)
ag(a,i) => array.get(a,i)
ap(a,v) => array.push(a,v)

f(t,a,b) =>
    if ai(a_ticker,t)
        i = ax(a_ticker,t),as(a_x1,i,a),as(a_x2,i,b) 
    else 
        ap(a_ticker,t),ap(a_x1,a),ap(a_x2,b)

a() => 
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),
    f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6),f("AAPL",20,6)

b() => 
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),
    f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6),f("SPY",20,6)

if barstate.islast
    first_letter = array.get(str.split(syminfo.ticker, ""),0)

    if first_letter == "A"
        a()
    
    if first_letter == "S"
        b()

    if array.size(a_ticker) > 0
        if ai(a_ticker, syminfo.ticker)
            idx = ax(a_ticker, syminfo.ticker)
            x1  = ag(a_x1, idx)
            x2  = ag(a_x2, idx)
            line.set_xy1(myLine, bar_index - x1, high[x1])
            line.set_xy2(myLine, bar_index - x2, high)

恐怕我们必须等到 TradingView 可以从外部来源读取数据。

编辑:
我设法创建了一个可以编译的解决方案,同时保留了请求的 4000 个代码。 必须放置 script on PasteBin,因为显然 Whosebug 上的答案有 30K 个字符的限制。到处都是限制,不仅在 Pine :)

编辑2: 回应 .
代码确实有一点小错误。
array.concat()函数的参数需要切换。

来自

a_ticker := array.concat(a_ticker, str.split(array.get(a_str_set_ticker, z),","))

a_ticker := array.concat(str.split(array.get(a_str_set_ticker, z),","), a_ticker)

这是完整代码,其中仅包含示例中的 3 个代码。

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

var string[]    a_ticker            = array.new_string()
var int[]       a_x1                = array.new_int()
var int[]       a_x2                = array.new_int()
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(na, na, na, na)//, extend=extend.both)

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()


// 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 an 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

    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        

// 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, "AAPL,AMZN,QQQ")
    array.push(a_str_set_x1, "20,30,40")
    array.push(a_str_set_x2, "2,3,4")

if barstate.islast
    // Initialization
    f_init_digits_int()
    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_x1, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_x1,f_str2int(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,f_str2int(array.get(a_str,i)))

    // Draw line
    if array.includes(a_ticker, syminfo.ticker)
        idx = array.indexof(a_ticker, syminfo.ticker)
        x1  = array.get(a_x1, idx)
        x2  = array.get(a_x2, idx)
        line.set_xy1(myLine, bar_index - x1, high[x1])
        line.set_xy2(myLine, bar_index - x2, high)

script on PasteBin也更新了。

回答您的编辑 1。
由于 30K 字符的限制,无法更新我的原始答案,因此不得不 post 一个新答案。

为 y 值添加了 f_str2float()
示例脚本:

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

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(na, na, na, na)//, extend=extend.both)

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, "AAPL,AMZN,QQQ")
    array.push(a_str_set_x1, "20,30,40")
    array.push(a_str_set_x2, "2,3,4")
    array.push(a_str_set_y1, "100.22,3000.33,300.44")
    array.push(a_str_set_y2, "140.22,3500.33,350.44")

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_x1, z),",")
        for i = 0 to array.size(a_str)-1
            array.push(a_x1,f_str2int(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,f_str2int(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,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
    if array.includes(a_ticker, syminfo.ticker)
        idx = array.indexof(a_ticker, syminfo.ticker)
        x1  = array.get(a_x1, idx)
        x2  = array.get(a_x2, idx)
        y1  = array.get(a_y1, idx)
        y2  = array.get(a_y2, idx)
        line.set_xy1(myLine, bar_index - x1, y1)
        line.set_xy2(myLine, bar_index - x2, y2)