Params
Numeric ns(24);
Vars
Series<Numeric> hi;
Series<Numeric> li;
Numeric trns;
Numeric mas;
Numeric qs;
Numeric qshl;
Numeric trhl;
Numeric non;
Numeric n1;
Series<Numeric> n1h;
Series<Numeric> n1l;
Events
onBar(ArrayRef<Integer> indexs)
{
hi = h[1];
li = l[1];
trns = Average(hi-li,ns);
mas = Average( open, ns);
Qs = AvgDeviation(open,ns)*1.5;
QsHl = (MAs+Qs)-(MAs-Qs);
trhl = trns*2/qshl;
non = iif(trhl==0,1,trhl);
n1 = RoundUp(ns*non,0);
n1h = Highest(Hi, n1);
n1l = Lowest(Li, n1);
PlotNumeric("n1h",n1h,0,White);
PlotNumeric("n1l",n1l,0,Green);
}

highest函数,根据函数手册里的说明,取过去n根bar里的最高价。你这里填了一个n1,n1又是roundup的ns*non,算出来几百个,所以导致计算不出来。
建议自己再琢磨一下算法
n1计算数一般在3-60以内,大部分在10几20几,没有几百


第二根bar怎么算出来3285?

你的可以显示计算结果,我的TBQUANT,1446标准版显示不了,啥也没有,好像跟你的版本不一样,麻烦再看看
trhl = trns*2/qshl;这行去掉*2会缩短点
n1h = Highest(Hi, n1);
n1l = Lowest(Li, n1);减掉这2行计算就正常显示
那是因为我加了输出的commentary语句。
前面就告诉你了你的这个n1值计算出来太大了,导致回溯值不对。
你应该自己研究一下为什么一定要这样写
在不减少要计算的项目前提下怎么缩短公式运行初始化BAR数量,谢谢