- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2001-11-27
|
|

楼主 |
发表于 2003-9-16 19:49
|
显示全部楼层
二、横向排序:
//本公式输出结果,请在解盘中查看,由于大量引用了其它指标,因此运算时间会稍长
bk:='A股板块'; //bk赋值为字符串'A股板块'
yygs:='macd.diff';//引用的指标,此处可修改为引用其它的指标
stksum:=STKCOUNT(bk); //板块所包含证券数量
dcount:=datacount; //K线图上,最后一根K线的位置
variable:dmstr[stksum]='',var_px[stksum]=0,var_indi[stksum]=0; //定义一个字符串数组用于记录股票代码,元素个数为stksum,初始值为空
for k=1 to stksum do //以下循环,循环计数器k从1开始每次递增1,直到stksum
begin
dm:=stkfromblk(bk,k);//板块bk中第k只证券的证券代码,赋值到字符串变量dm
dmstr[k]:=dm; //股票代码,记录到字符串数组dmstr的第k个元素中
temp1:=stkindi(dm,yygs,0,-1); //引用其它个股的指标
var_px[k]:=temp1[dcount]; //记录最后一个周期的指标值,此处可以使用参数,以便得到其它周期的排序
var_indi[k]:=temp1[dcount]; //同上,但准备用于记录排序后的位置
end;
Num1:=sortpos(var_indi,1,1,stksum); //计算排序后,按大小排列的位置
dm_max1:=var_indi[1]; //最大值的对应位置
dm_max2:=var_indi[2]; //次大值的对应位置
dm_max3:=var_indi[3];
dm_max4:=var_indi[4];
dm_max5:=var_indi[5];
dm_max6:=var_indi[6];
dm_min1:=var_indi[stksum]; //最小值的对应位置
dm_min2:=var_indi[stksum-1];
max1:=var_px[dm_max1];
max2:=var_px[dm_max2];
max3:=var_px[dm_max3];
max4:=var_px[dm_max4];
max5:=var_px[dm_max5];
max6:=var_px[dm_max6];
min1:=var_px[dm_min1];
min2:=var_px[dm_min2];
explain(islastbar,yygs+'前6名:'),colorred;
EXPLAINex(islastbar,'1:'+dmstr[dm_max1]+STKNAMEEX(dmstr[dm_max1])+':',max1,2,0),colorred;
EXPLAINex(islastbar,'2:'+dmstr[dm_max2]+STKNAMEEX(dmstr[dm_max2])+':',max2,2,0),colorred;
EXPLAINex(islastbar,'3:'+dmstr[dm_max3]+STKNAMEEX(dmstr[dm_max3])+':',max3,2,0),colorred;
EXPLAINex(islastbar,'4:'+dmstr[dm_max4]+STKNAMEEX(dmstr[dm_max4])+':',max4,2,0),colorred;
EXPLAINex(islastbar,'5:'+dmstr[dm_max5]+STKNAMEEX(dmstr[dm_max5])+':',max5,2,0),colorred;
EXPLAINex(islastbar,'6:'+dmstr[dm_max6]+STKNAMEEX(dmstr[dm_max6])+':',max6,2,1),colorred;
explain(islastbar,yygs+'后2名:'),colorgreen;
EXPLAINex(islastbar,'2:'+dmstr[dm_min2]+STKNAMEEX(dmstr[dm_min2])+':',min2,2,0),colorgreen;
EXPLAINex(islastbar,'1:'+dmstr[dm_min1]+STKNAMEEX(dmstr[dm_min1])+':',min1,2,0),colorgreen; |
|
|