Na1Sort2函数不管用,以及如何返回变量名称的问题
Params Numeric N(5,1,200,1);Vars Array<Integer> id; Array<Numeric> SHUZU; //数组 Series<Numeric> ZHANGFU; Numeric A1; Numeric B1; Numeric C1; Events OnBar(ArrayRef<Integer> indexs) { ZHANGFU = Round((High-OPEN)/OPEN,2); A1 = CountIf (ZHANGFU[1] <= 0.004,N); B1 = CountIf (ZHANGFU[1] >= 0.005 AND ZHANGFU[1] <= 0.01,N); C1 = CountIf (ZHANGFU[1] > 0.01,N); Commentary(ZHANGFU: + Text(ZHANGFU)); Commentary(A1: + Text(A1)); Commentary(B1: + Text(B1)); Commentary(C1: + Text(C1)); SHUZU[0] = A1; SHUZU[1] = B1; SHUZU[2] = C1; id = [0,1,2]; Na1Sort2(SHUZU, id, 0, 2, False); Commentary(降序排序后 id= + TextArray(id) + SHUZU= + TextArray(SHUZU)); Commentary(SHUZU: + Text(SHUZU[1])); Commentary(id: + Text(id[2])); } 以上代码的意思是,统计过去N天开盘价到最高价涨了多少比例,然后按照不同的比例来计数。最后用Na1Sort2函数排序输出后如下图。问题一:不知道为什么并没有给降序,也没有排列问题二:我不明白Na1Sort2这个函数里ID这个参数的用法是什么意思, 看过函数帮助文档后也没太理解,意思是不是ID参数等于我新命名的序号下标??然后等于给下标排了个序还是啥意思??比如我把id = [0,1,2]; 改成id = [1,2,3]; 有什么区别吗??问题三:请教如何能返回变量的名称?? 比如我这个排序后,如上图所示应该是B1最大,序号应该是0,(但是返回的值好像还是0? 不知道我理解的对不对)我想要达到的效果是如果排序后B1最大,返回值能直接返回B1这个变量名称,如果C1最大,返回值能直接返回C1这个变量名称。(如果有类似的效果也可以)这样的话,比如B1最大,我就可以写成——如果返回值==B1,就用OPEN*1.005,如果返回值==A1,就用OPEN*1.003,这样用起来非常的方便。