如何克服 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)
基于 Bjorn 的
如果排除第 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)