以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  排序  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=83299)

--  作者:qq代人发帖
--  发布时间:2015/8/14 15:36:31
--  排序
怎样将不断跟新的4个数进行排序,并且需要知道排序的第1,2,3,4,的数值是哪个,后面需要引用
--  作者:jinzhe
--  发布时间:2015/8/14 15:53:47
--  

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;
所属函数组:引用函数


--  作者:Echo0ttt
--  发布时间:2015/8/14 16:05:31
--  
以下是引用jinzhe在2015/8/14 15:53:47的发言:

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的分别是哪个品种或者是哪个指标值。

 

麻烦大神帮忙解答一下,谢谢啦~~~


--  作者:jinzhe
--  发布时间:2015/8/14 16:10:13
--  
一个意思啊,知道了各自的排名,那么第一个第二是哪个不就知道了
--  作者:Echo0ttt
--  发布时间:2015/8/14 16:13:26
--  

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的品种的数值进行一个运算,那后续应该如何写呢?


--  作者:jinzhe
--  发布时间:2015/8/14 16:25:13
--  

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个


--  作者:Echo0ttt
--  发布时间:2015/8/14 16:30:12
--  

嗯呐,我变量比较小,5个以内,就准备用你说的这种写的,就是觉得写太多了,所以想着能不能有直接的函数,或者什么简单方法。

 

谢谢大神啦~~~图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2015/8/14 16:32:02
--  
多的就没有什么好办法了
--  作者:lmvest
--  发布时间:2015/11/14 18:04:45
--  

我也同问,假如我选股,用某个指标对全部个股排序下,这样的话要写2800个数组赋值语句,不敢想象。

求教,老师们思考下,有没有解决的方法???或软件有此功能?


--  作者:马良
--  发布时间:2015/11/14 18:23:00
--  
相关的股票池功能已经在开发中了。