HOD2
求数组按从高到低排序的名次。
用法:
HOD2(X,N,K):求某一周期X数组内N个元素(N <= 最大元素数)的K值依照从高到低排序后为第几个高值,返回值为排序名次。N=0则表示数组全部元素参与计算
例如:
我们根据KDJ的K值由大到小排序,品种为CU,RU,M,CF,IF
1、首先建立数组
VARIABLE: X[5]=0;
X[1]:=STKINDI('CU00','KDJ.K',0,6,0);
X[2]:=STKINDI('RU00','KDJ.K',0,6,0);
X[3]:=STKINDI('M00','KDJ.K',0,6,0);
X[4]:=STKINDI('CF00','KDJ.K',0,6,0);
X[5]:=STKINDI('IF00','KDJ.K',0,6,0);
2、通过HOD2函数排序
CU排名:HOD2(X,5,X[1]),LINETHICK0;
RU排名:HOD2(X,5,X[2]),LINETHICK0;
M排名:HOD2(X,5,X[3]),LINETHICK0;
CF排名:HOD2(X,5,X[4]),LINETHICK0;
IF排名:HOD2(X,5,X[5]),LINETHICK0;
所属函数组:引用函数
HOD2
求数组按从高到低排序的名次。
用法:
HOD2(X,N,K):求某一周期X数组内N个元素(N <= 最大元素数)的K值依照从高到低排序后为第几个高值,返回值为排序名次。N=0则表示数组全部元素参与计算
例如:
我们根据KDJ的K值由大到小排序,品种为CU,RU,M,CF,IF
1、首先建立数组
VARIABLE: X[5]=0;
X[1]:=STKINDI('CU00','KDJ.K',0,6,0);
X[2]:=STKINDI('RU00','KDJ.K',0,6,0);
X[3]:=STKINDI('M00','KDJ.K',0,6,0);
X[4]:=STKINDI('CF00','KDJ.K',0,6,0);
X[5]:=STKINDI('IF00','KDJ.K',0,6,0);
2、通过HOD2函数排序
CU排名:HOD2(X,5,X[1]),LINETHICK0;
RU排名:HOD2(X,5,X[2]),LINETHICK0;
M排名:HOD2(X,5,X[3]),LINETHICK0;
CF排名:HOD2(X,5,X[4]),LINETHICK0;
IF排名:HOD2(X,5,X[5]),LINETHICK0;
所属函数组:引用函数
你好,我想了解的不是CU,RU,M,CF和IF各自的排名,我是需要知道某个时点排第1,2,3,4,5的分别是哪个品种或者是哪个指标值。
麻烦大神帮忙解答一下,谢谢啦~~~
CU排名:HOD2(X,5,X[1]),LINETHICK0;
RU排名:HOD2(X,5,X[2]),LINETHICK0;
M排名:HOD2(X,5,X[3]),LINETHICK0;
CF排名:HOD2(X,5,X[4]),LINETHICK0;
IF排名:HOD2(X,5,X[5]),LINETHICK0;
譬如说,我知道CU,RU,M,CF,IF的排名分别为3,1,4,2,5,
那如果我需要引用排名第2,和排名第4的品种的数值进行一个运算,那后续应该如何写呢?
if cu排名=2 then nn:=STKINDI('CU00','KDJ.K',0,6,0);
if ru排名=2 then nn:=STKINDI('RU00','KDJ.K',0,6,0);
.....
这样的写5个
嗯呐,我变量比较小,5个以内,就准备用你说的这种写的,就是觉得写太多了,所以想着能不能有直接的函数,或者什么简单方法。
谢谢大神啦~~~
我也同问,假如我选股,用某个指标对全部个股排序下,这样的话要写2800个数组赋值语句,不敢想象。
求教,老师们思考下,有没有解决的方法???或软件有此功能?