获取Bar 0上的错误;阵列大小过大,最大为100000



Pine脚本在第0条显示错误,数组大小太大;最大大小为100000我的代码在这里这里使用嵌套for循环有助于解析嵌套循环

//@version=5
indicator("My script",max_bars_back = 55)
import E5Trading/E5TradingLibrary/1 as auto
import kaigouthro/into/2 as boof
price=hlc3
srce1=1
srce2=2
srce3=3
srce4=5
srce5=8
srce6=13
srce7=21
srce8=34
srce90=55
srce10=84
srce11=139
basis =ta.sma(price,srce1)
basis2 =ta.sma(price,srce2)
basisA =ta.sma(price,srce3)
basis2A =ta.sma(price,srce4)
basisB =ta.sma(price,srce5)
basis2B =ta.sma(price,srce6)
basisC =ta.sma(price,srce7)
basis2C =ta.sma(price,srce8)
basisD =ta.sma(price,srce90)
basis2D =ta.sma(price,srce10)
basisE =ta.sma(price,srce11)

arrsig = array.from(基础、basis2、basisA、basis2A basisB, basis2B, basisC, basis2C, basisD, basis2D, basisE)N=array.size(arraysig) - 1funcml(数据)=祝辞

grarry=array.new_float(0)
rdarry=array.new_float(0)
for i = 0 to N by 1
for j = 0 to N by 1
while i!=j        

gchk=auto.isReversalUpTrend(array.get(data,i),array.get(data,j))
grchkv=boof.f(gchk)
array.push(grarry,grchkv)


rchk=auto.isReversalDownTrend(array.get(data,i),array.get(data,j))
rdchkv=boof.f(rchk)
array.push(rdarry,rdchkv)
if j==N
break

[grarry,rdarry]


[smacumgr,smacumrd]=funcml(arrsig)
cumresgr=array.sum(smacumgr)
cumresrd=array.sum(smacumrd)
vuptrnd=cumresgr>math.abs(cumresrd)
vdwntrnd=cumresgr<math.abs(cumresrd)
plotchar(vuptrnd,char="🡩",color=color.green,location = location.top,size = size.tiny)
plotchar(vdwntrnd,char="🡫",color=color.red,location = location.top,size=size.tiny)
//end
Please help

是在嵌套循环中创建无限数组的while命令。
我认为你想这样测试:

for i = 0 to N by 1
for j = 0 to N by 1
if i!=j        
gchk=auto.isReversalUpTrend(array.get(data,i),array.get(data,j))
grchkv=boof.f(gchk)
array.push(grarry,grchkv)

rchk=auto.isReversalDownTrend(array.get(data,i),array.get(data,j))
rdchkv=boof.f(rchk)
array.push(rdarry,rdchkv)
else
break

最新更新