84 1234
发新话题
打印

[高级] 如何排序后在解盘中显示

如何排序后在解盘中显示

引用:
最初由 南客 发布
所有的名次其实都已经算好了,要看取多少出来显示,参考如下,根据代码自行修改:
复制内容到剪贴板
代码:
t1:CURRENTtime,linethick0;  //用于记录开始执行公式代码的时间
//本公式输出结果,请在解盘中查看,由于大量引用了其它指标,因此运算时间会稍长

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_min1:=var_indi[stksum];  //最小值的对应位置
dm_min2:=var_indi[stksum-1];
dm_min3:=var_indi[stksum-3];

min1:=var_px[dm_min1];
min2:=var_px[dm_min2];
min3:=var_px[dm_min3];

explain(islastbar,yygs+'前15名:'),colorred;
EXPLAINex(islastbar,'1 :'+dmstr[var_indi[1 ]]+STKNAMEEX(dmstr[var_indi[1 ]])+':',var_px[var_indi[1 ]],2,0),colorred;
EXPLAINex(islastbar,'2 :'+dmstr[var_indi[2 ]]+STKNAMEEX(dmstr[var_indi[2 ]])+':',var_px[var_indi[2 ]],2,0),colorred;
EXPLAINex(islastbar,'3 :'+dmstr[var_indi[3 ]]+STKNAMEEX(dmstr[var_indi[3 ]])+':',var_px[var_indi[3 ]],2,0),colorred;
EXPLAINex(islastbar,'4 :'+dmstr[var_indi[4 ]]+STKNAMEEX(dmstr[var_indi[4 ]])+':',var_px[var_indi[4 ]],2,0),colorred;
EXPLAINex(islastbar,'5 :'+dmstr[var_indi[5 ]]+STKNAMEEX(dmstr[var_indi[5 ]])+':',var_px[var_indi[5 ]],2,0),colorred;
EXPLAINex(islastbar,'6 :'+dmstr[var_indi[6 ]]+STKNAMEEX(dmstr[var_indi[6 ]])+':',var_px[var_indi[6 ]],2,0),colorred;
EXPLAINex(islastbar,'7 :'+dmstr[var_indi[7 ]]+STKNAMEEX(dmstr[var_indi[7 ]])+':',var_px[var_indi[7 ]],2,0),colorred;
EXPLAINex(islastbar,'8 :'+dmstr[var_indi[8 ]]+STKNAMEEX(dmstr[var_indi[8 ]])+':',var_px[var_indi[8 ]],2,0),colorred;
EXPLAINex(islastbar,'9 :'+dmstr[var_indi[9 ]]+STKNAMEEX(dmstr[var_indi[9 ]])+':',var_px[var_indi[9 ]],2,0),colorred;
EXPLAINex(islastbar,'10:'+dmstr[var_indi[10]]+STKNAMEEX(dmstr[var_indi[10]])+':',var_px[var_indi[10]],2,0),colorred;
EXPLAINex(islastbar,'11:'+dmstr[var_indi[11]]+STKNAMEEX(dmstr[var_indi[11]])+':',var_px[var_indi[11]],2,0),colorred;
EXPLAINex(islastbar,'12:'+dmstr[var_indi[12]]+STKNAMEEX(dmstr[var_indi[12]])+':',var_px[var_indi[12]],2,0),colorred;
EXPLAINex(islastbar,'13:'+dmstr[var_indi[13]]+STKNAMEEX(dmstr[var_indi[13]])+':',var_px[var_indi[13]],2,0),colorred;
EXPLAINex(islastbar,'14:'+dmstr[var_indi[14]]+STKNAMEEX(dmstr[var_indi[14]])+':',var_px[var_indi[14]],2,0),colorred;
EXPLAINex(islastbar,'15:'+dmstr[var_indi[15]]+STKNAMEEX(dmstr[var_indi[15]])+':',var_px[var_indi[15]],2,0),colorred;

explain(islastbar,yygs+'后3名:'),colorgreen;
EXPLAINex(islastbar,'3:'+dmstr[dm_min3]+STKNAMEEX(dmstr[dm_min3])+':',min3,2,0),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;

t2:CURRENTtime,linethick0; //用于记录执行公式代码结束的时间,跟t1比较,可估计执行时间

TOP

学习

TOP

南客的脑袋不知是怎么长的。

TOP

学习。谢谢!!!!!!!!!

TOP

高手

TOP

多谢了。

TOP

111111111

TOP

谢谢!

TOP

学习。谢谢!!!!!!!!!

TOP

认真学习!!!!!!!!!!!!!!!

TOP

xiexie

南客的脑袋不知是怎么长的。

TOP

学习。谢谢!!!!!!!!!

TOP

3q

TOP

好好学习!!

TOP

谢谢

TOP

谢谢

谢谢

TOP

学习。谢谢!

TOP

如何使用?

TOP

以引用,多谢了

TOP

学习。谢谢已收藏

TOP

xiexie!!

TOP

好.谢了

TOP

谢谢!
眼底千股风云 键下万马奔腾

TOP

谢谢!
钱,不在多,够用就行; 股,不在好,能涨就灵。

TOP

 84 1234
发新话题
报警岗亭