本帖最后由 wqm 于 2025-10-24 09:11 编辑  
 
{易得专用---选股指标:强于板块--源码} 
     {说明:这套组合指标源于理想论坛一位老师的指标中领悟到的思路。不是原创。其目的是从A股中选出强势概念板块中的强势个股。需要建"强于板块"和“YYYBK”二个指标 
 
,并引建一个名为“关联板块代码”的自定义字符串数据和建一个名为“自选概念板块”的自选股。另外说明一下,在自定义字符串数据“关联板块代码”中,一个股票代码关联 
 
着多个板块的代码。就大多数股票而言,第一个关联的是行业板块的代码,最后一个是地域板块代码,中间是概念板块代码。 
      经测试:“强于板块”指标在沪深A股的条件选股中,用时约160秒。在股票池选股中,在前池个股数量低于1000只的情况下,用时不超过约30秒(我的电脑配置是比较低的) 
 
。易得软件的这种速度是我用过的所有证券软件都无法比拟的。要用一个字来形容的话,那就是“爽”。} 
 
{一、选股指标名:强于板块} 
CB:=DynaInfo(54)/DynaInfo(03)-1; 
DM:=SELFSTRING('关联板块代码'); 
ZF:='YYYBK.板块涨幅'; 
GS:='YYYBK.板块股数'; 
PX:='YYYBK.板块涨幅排序';   
代码1:=IFS(Category=1,STRMID(DM,11,8),''); 
板涨1:=IF(BARSTATUS=2,STKINDI(代码1,ZF,0,6,0,1),0); 
股数1:=IF(BARSTATUS=2,STKINDI(代码1,GS,0,6,0,1),0); 
排名1:=IF(BARSTATUS=2,STKINDI(代码1,PX,0,6,0,1),0); 
代码2:=IFS(Category=1,STRMID(DM,20,8),''); 
板涨2:=IF(BARSTATUS=2,STKINDI(代码2,ZF,0,6,0,1),0); 
股数2:=IF(BARSTATUS=2,STKINDI(代码2,GS,0,6,0,1),0); 
排名2:=IF(BARSTATUS=2,STKINDI(代码2,PX,0,6,0,1),0); 
代码3:=IFS(Category=1,STRMID(DM,29,8),''); 
板涨3:=IF(BARSTATUS=2,STKINDI(代码3,ZF,0,6,0,1),0); 
股数3:=IF(BARSTATUS=2,STKINDI(代码3,GS,0,6,0,1),0); 
排名3:=IF(BARSTATUS=2,STKINDI(代码3,PX,0,6,0,1),0); 
代码4:=IFS(Category=1,STRMID(DM,38,8),''); 
板涨4:=IF(BARSTATUS=2,STKINDI(代码4,ZF,0,6,0,1),0); 
股数4:=IF(BARSTATUS=2,STKINDI(代码4,GS,0,6,0,1),0); 
排名4:=IF(BARSTATUS=2,STKINDI(代码4,PX,0,6,0,1),0); 
代码5:=IFS(Category=1,STRMID(DM,47,8),''); 
板涨5:=IF(BARSTATUS=2,STKINDI(代码5,ZF,0,6,0,1),0); 
股数5:=IF(BARSTATUS=2,STKINDI(代码5,GS,0,6,0,1),0); 
排名5:=IF(BARSTATUS=2,STKINDI(代码5,PX,0,6,0,1),0); 
代码6:=IFS(Category=1,STRMID(DM,56,8),''); 
板涨6:=IF(BARSTATUS=2,STKINDI(代码6,ZF,0,6,0,1),0); 
股数6:=IF(BARSTATUS=2,STKINDI(代码6,GS,0,6,0,1),0); 
排名6:=IF(BARSTATUS=2,STKINDI(代码6,PX,0,6,0,1),0); 
代码7:=IFS(Category=1,STRMID(DM,65,8),''); 
板涨7:=IF(BARSTATUS=2,STKINDI(代码7,ZF,0,6,0,1),0); 
股数7:=IF(BARSTATUS=2,STKINDI(代码7,GS,0,6,0,1),0); 
排名7:=IF(BARSTATUS=2,STKINDI(代码7,PX,0,6,0,1),0); 
代码8:=IFS(Category=1,STRMID(DM,74,8),''); 
板涨8:=IF(BARSTATUS=2,STKINDI(代码8,ZF,0,6,0,1),0); 
股数8:=IF(BARSTATUS=2,STKINDI(代码8,GS,0,6,0,1),0); 
排名8:=IF(BARSTATUS=2,STKINDI(代码8,PX,0,6,0,1),0); 
代码9:=IFS(Category=1,STRMID(DM,83,8),''); 
板涨9:=IF(BARSTATUS=2,STKINDI(代码9,ZF,0,6,0,1),0); 
股数9:=IF(BARSTATUS=2,STKINDI(代码9,GS,0,6,0,1),0); 
排名9:=IF(BARSTATUS=2,STKINDI(代码9,PX,0,6,0,1),0); 
代码10:=IFS(Category=1,STRMID(DM,92,8),''); 
板涨10:=IF(BARSTATUS=2,STKINDI(代码10,ZF,0,6,0,1),0); 
股数10:=IF(BARSTATUS=2,STKINDI(代码10,GS,0,6,0,1),0); 
排名10:=IF(BARSTATUS=2,STKINDI(代码10,PX,0,6,0,1),0); 
代码11:=IFS(Category=1,STRMID(DM,101,8),''); 
板涨11:=IF(BARSTATUS=2,STKINDI(代码11,ZF,0,6,0,1),0); 
股数11:=IF(BARSTATUS=2,STKINDI(代码11,GS,0,6,0,1),0); 
排名11:=IF(BARSTATUS=2,STKINDI(代码11,PX,0,6,0,1),0); 
代码12:=IFS(Category=1,STRMID(DM,110,8),''); 
板涨12:=IF(BARSTATUS=2,STKINDI(代码12,ZF,0,6,0,1),0); 
股数12:=IF(BARSTATUS=2,STKINDI(代码12,GS,0,6,0,1),0); 
排名12:=IF(BARSTATUS=2,STKINDI(代码12,PX,0,6,0,1),0); 
代码13:=IFS(Category=1,STRMID(DM,119,8),''); 
板涨13:=IF(BARSTATUS=2,STKINDI(代码13,ZF,0,6,0,1),0); 
股数13:=IF(BARSTATUS=2,STKINDI(代码13,GS,0,6,0,1),0); 
排名13:=IF(BARSTATUS=2,STKINDI(代码13,PX,0,6,0,1),0); 
代码14:=IFS(Category=1,STRMID(DM,128,8),''); 
板涨14:=IF(BARSTATUS=2,STKINDI(代码14,ZF,0,6,0,1),0); 
股数14:=IF(BARSTATUS=2,STKINDI(代码14,GS,0,6,0,1),0); 
排名14:=IF(BARSTATUS=2,STKINDI(代码14,PX,0,6,0,1),0); 
代码15:=IFS(Category=1,STRMID(DM,137,8),''); 
板涨15:=IF(BARSTATUS=2,STKINDI(代码15,ZF,0,6,0,1),0); 
股数15:=IF(BARSTATUS=2,STKINDI(代码15,GS,0,6,0,1),0); 
排名15:=IF(BARSTATUS=2,STKINDI(代码15,PX,0,6,0,1),0); 
代码16:=IFS(Category=1,STRMID(DM,146,8),''); 
板涨16:=IF(BARSTATUS=2,STKINDI(代码16,ZF,0,6,0,1),0); 
股数16:=IF(BARSTATUS=2,STKINDI(代码16,GS,0,6,0,1),0); 
排名16:=IF(BARSTATUS=2,STKINDI(代码16,PX,0,6,0,1),0); 
代码17:=IFS(Category=1,STRMID(DM,155,8),''); 
板涨17:=IF(BARSTATUS=2,STKINDI(代码17,ZF,0,6,0,1),0); 
股数17:=IF(BARSTATUS=2,STKINDI(代码17,GS,0,6,0,1),0); 
排名17:=IF(BARSTATUS=2,STKINDI(代码17,PX,0,6,0,1),0); 
代码18:=IFS(Category=1,STRMID(DM,164,8),''); 
板涨18:=IF(BARSTATUS=2,STKINDI(代码18,ZF,0,6,0,1),0); 
股数18:=IF(BARSTATUS=2,STKINDI(代码18,GS,0,6,0,1),0); 
排名18:=IF(BARSTATUS=2,STKINDI(代码18,PX,0,6,0,1),0); 
代码19:=IFS(Category=1,STRMID(DM,173,8),''); 
板涨19:=IF(BARSTATUS=2,STKINDI(代码19,ZF,0,6,0,1),0); 
股数19:=IF(BARSTATUS=2,STKINDI(代码19,GS,0,6,0,1),0); 
排名19:=IF(BARSTATUS=2,STKINDI(代码19,PX,0,6,0,1),0); 
代码20:=IFS(Category=1,STRMID(DM,182,8),''); 
板涨20:=IF(BARSTATUS=2,STKINDI(代码20,ZF,0,6,0,1),0); 
股数20:=IF(BARSTATUS=2,STKINDI(代码20,GS,0,6,0,1),0); 
排名20:=IF(BARSTATUS=2,STKINDI(代码20,PX,0,6,0,1),0); 
代码21:=IFS(Category=1,STRMID(DM,191,8),''); 
板涨21:=IF(BARSTATUS=2,STKINDI(代码21,ZF,0,6,0,1),0); 
股数21:=IF(BARSTATUS=2,STKINDI(代码21,GS,0,6,0,1),0); 
排名21:=IF(BARSTATUS=2,STKINDI(代码21,PX,0,6,0,1),0); 
代码22:=IFS(Category=1,STRMID(DM,200,8),''); 
板涨22:=IF(BARSTATUS=2,STKINDI(代码22,ZF,0,6,0,1),0); 
股数22:=IF(BARSTATUS=2,STKINDI(代码22,GS,0,6,0,1),0); 
排名22:=IF(BARSTATUS=2,STKINDI(代码22,PX,0,6,0,1),0); 
代码23:=IFS(Category=1,STRMID(DM,209,8),''); 
板涨23:=IF(BARSTATUS=2,STKINDI(代码23,ZF,0,6,0,1),0); 
股数23:=IF(BARSTATUS=2,STKINDI(代码23,GS,0,6,0,1),0); 
排名23:=IF(BARSTATUS=2,STKINDI(代码23,PX,0,6,0,1),0); 
代码24:=IFS(Category=1,STRMID(DM,218,8),''); 
板涨24:=IF(BARSTATUS=2,STKINDI(代码24,ZF,0,6,0,1),0); 
股数24:=IF(BARSTATUS=2,STKINDI(代码24,GS,0,6,0,1),0); 
排名24:=IF(BARSTATUS=2,STKINDI(代码24,PX,0,6,0,1),0); 
代码25:=IFS(Category=1,STRMID(DM,227,8),''); 
板涨25:=IF(BARSTATUS=2,STKINDI(代码25,ZF,0,6,0,1),0); 
股数25:=IF(BARSTATUS=2,STKINDI(代码25,GS,0,6,0,1),0); 
排名25:=IF(BARSTATUS=2,STKINDI(代码25,PX,0,6,0,1),0); 
代码26:=IFS(Category=1,STRMID(DM,236,8),''); 
板涨26:=IF(BARSTATUS=2,STKINDI(代码26,ZF,0,6,0,1),0); 
股数26:=IF(BARSTATUS=2,STKINDI(代码26,GS,0,6,0,1),0); 
排名26:=IF(BARSTATUS=2,STKINDI(代码26,PX,0,6,0,1),0); 
代码27:=IFS(Category=1,STRMID(DM,245,8),''); 
板涨27:=IF(BARSTATUS=2,STKINDI(代码27,ZF,0,6,0,1),0); 
股数27:=IF(BARSTATUS=2,STKINDI(代码27,GS,0,6,0,1),0); 
排名27:=IF(BARSTATUS=2,STKINDI(代码27,PX,0,6,0,1),0); 
代码28:=IFS(Category=1,STRMID(DM,254,8),''); 
板涨28:=IF(BARSTATUS=2,STKINDI(代码28,ZF,0,6,0,1),0); 
股数28:=IF(BARSTATUS=2,STKINDI(代码28,GS,0,6,0,1),0); 
排名28:=IF(BARSTATUS=2,STKINDI(代码28,PX,0,6,0,1),0); 
代码29:=IFS(Category=1,STRMID(DM,263,8),''); 
板涨29:=IF(BARSTATUS=2,STKINDI(代码29,ZF,0,6,0,1),0); 
股数29:=IF(BARSTATUS=2,STKINDI(代码29,GS,0,6,0,1),0); 
排名29:=IF(BARSTATUS=2,STKINDI(代码29,PX,0,6,0,1),0); 
代码30:=IFS(Category=1,STRMID(DM,272,8),''); 
板涨30:=IF(BARSTATUS=2,STKINDI(代码30,ZF,0,6,0,1),0); 
股数30:=IF(BARSTATUS=2,STKINDI(代码30,GS,0,6,0,1),0); 
排名30:=IF(BARSTATUS=2,STKINDI(代码30,PX,0,6,0,1),0); 
M:=5; 
N:=800; 
板块涨幅:MAX( 
    IF(Range(股数1,M,N) AND 板涨1>0,板涨1,0), 
    IF(Range(股数2,M,N) AND 板涨2>0,板涨2,0), 
    IF(Range(股数3,M,N) AND 板涨3>0,板涨3,0), 
    IF(Range(股数4,M,N) AND 板涨4>0,板涨4,0), 
    IF(Range(股数5,M,N) AND 板涨5>0,板涨5,0), 
    IF(Range(股数6,M,N) AND 板涨6>0,板涨6,0), 
    IF(Range(股数7,M,N) AND 板涨7>0,板涨7,0), 
    IF(Range(股数8,M,N) AND 板涨8>0,板涨8,0), 
    IF(Range(股数9,M,N) AND 板涨9>0,板涨9,0), 
    IF(Range(股数10,M,N) AND 板涨10>0,板涨10,0), 
    IF(Range(股数11,M,N) AND 板涨11>0,板涨11,0), 
    IF(Range(股数12,M,N) AND 板涨12>0,板涨12,0), 
    IF(Range(股数13,M,N) AND 板涨13>0,板涨13,0), 
    IF(Range(股数14,M,N) AND 板涨14>0,板涨14,0), 
    IF(Range(股数15,M,N) AND 板涨15>0,板涨15,0), 
    IF(Range(股数16,M,N) AND 板涨16>0,板涨16,0), 
    IF(Range(股数17,M,N) AND 板涨17>0,板涨17,0), 
    IF(Range(股数18,M,N) AND 板涨18>0,板涨18,0), 
    IF(Range(股数19,M,N) AND 板涨19>0,板涨19,0), 
    IF(Range(股数20,M,N) AND 板涨20>0,板涨20,0), 
    IF(Range(股数21,M,N) AND 板涨21>0,板涨21,0), 
    IF(Range(股数22,M,N) AND 板涨22>0,板涨22,0), 
    IF(Range(股数23,M,N) AND 板涨23>0,板涨23,0), 
    IF(Range(股数24,M,N) AND 板涨24>0,板涨24,0), 
    IF(Range(股数25,M,N) AND 板涨25>0,板涨25,0), 
    IF(Range(股数26,M,N) AND 板涨26>0,板涨26,0), 
    IF(Range(股数27,M,N) AND 板涨27>0,板涨27,0), 
    IF(Range(股数28,M,N) AND 板涨28>0,板涨28,0), 
    IF(Range(股数29,M,N) AND 板涨29>0,板涨29,0), 
    IF(Range(股数30,M,N) AND 板涨30>0,板涨30,0)); 
P:=30; 
排名:MIN( 
    IF(Range(股数1,M,N) AND Range(排名1,0,P) AND 板涨1>0,排名1,DrawNull), 
    IF(Range(股数2,M,N) AND Range(排名2,0,P) AND 板涨2>0,排名2,DrawNull), 
    IF(Range(股数3,M,N) AND Range(排名3,0,P) AND 板涨3>0,排名3,DrawNull), 
    IF(Range(股数4,M,N) AND Range(排名4,0,P) AND 板涨4>0,排名4,DrawNull), 
    IF(Range(股数5,M,N) AND Range(排名5,0,P) AND 板涨5>0,排名5,DrawNull), 
    IF(Range(股数6,M,N) AND Range(排名6,0,P) AND 板涨6>0,排名6,DrawNull), 
    IF(Range(股数7,M,N) AND Range(排名7,0,P) AND 板涨7>0,排名7,DrawNull), 
    IF(Range(股数8,M,N) AND Range(排名8,0,P) AND 板涨8>0,排名8,DrawNull), 
    IF(Range(股数9,M,N) AND Range(排名9,0,P) AND 板涨9>0,排名9,DrawNull), 
    IF(Range(股数10,M,N)AND Range(排名10,0,P)AND 板涨10>0,排名10,DrawNull), 
    IF(Range(股数11,M,N)AND Range(排名11,0,P)AND 板涨11>0,排名11,DrawNull), 
    IF(Range(股数12,M,N)AND Range(排名12,0,P)AND 板涨12>0,排名12,DrawNull), 
    IF(Range(股数13,M,N)AND Range(排名13,0,P)AND 板涨13>0,排名13,DrawNull), 
    IF(Range(股数14,M,N)AND Range(排名14,0,P)AND 板涨14>0,排名14,DrawNull), 
    IF(Range(股数15,M,N)AND Range(排名15,0,P)AND 板涨15>0,排名15,DrawNull), 
    IF(Range(股数16,M,N)AND Range(排名16,0,P)AND 板涨16>0,排名16,DrawNull), 
    IF(Range(股数17,M,N)AND Range(排名17,0,P)AND 板涨17>0,排名17,DrawNull), 
    IF(Range(股数18,M,N)AND Range(排名18,0,P)AND 板涨18>0,排名18,DrawNull), 
    IF(Range(股数19,M,N)AND Range(排名19,0,P)AND 板涨19>0,排名19,DrawNull), 
    IF(Range(股数20,M,N)AND Range(排名20,0,P)AND 板涨20>0,排名20,DrawNull), 
    IF(Range(股数21,M,N)AND Range(排名21,0,P) AND 板涨21>0,排名21,DrawNull), 
    IF(Range(股数22,M,N)AND Range(排名22,0,P) AND 板涨22>0,排名22,DrawNull), 
    IF(Range(股数23,M,N)AND Range(排名23,0,P) AND 板涨23>0,排名23,DrawNull), 
    IF(Range(股数24,M,N)AND Range(排名24,0,P) AND 板涨24>0,排名24,DrawNull), 
    IF(Range(股数25,M,N)AND Range(排名25,0,P) AND 板涨25>0,排名25,DrawNull), 
    IF(Range(股数26,M,N)AND Range(排名26,0,P) AND 板涨26>0,排名26,DrawNull), 
    IF(Range(股数27,M,N)AND Range(排名27,0,P) AND 板涨27>0,排名27,DrawNull), 
    IF(Range(股数28,M,N)AND Range(排名28,0,P) AND 板涨28>0,排名28,DrawNull), 
    IF(Range(股数29,M,N)AND Range(排名29,0,P) AND 板涨29>0,排名29,DrawNull), 
    IF(Range(股数30,M,N)AND Range(排名30,0,P)AND 板涨30>0,排名30,DrawNull));             
个股涨幅: DynaInfo(14); 
强于板块:个股涨幅>板块涨幅 AND 板块涨幅>0 AND 排名>=1 AND  
    IF(CB<0.11,DynaInfo(14)<0.07,DynaInfo(14)<0.1); 
 
 
 
{二、引用指标名:YYYBK} 
板块涨幅: DYNAINFO(14); 
板块股数:StkCount(StkName); 
板块涨幅排序:HorCalc('自选概念板块',105,1,2); 
 
{三、1、需要建一个名为“自选概念板块”的自选股,将全部概念板块加进去即可。 
     2、将自定义字符串文件“关联板块代码”引入自定义数据的单值字符串中。} 
 
 |