通达信板块排序源码
一、为什么要统计板块中个股走强的数据变化。
判断一个主线的晋级和退潮,一个是通过看板块指数走强,则意味着这个板块里的个股走强,一个是通过板块中走强个股数量多少来判断这个板块的能否出现趋势的拐点,或还在继续强势。这两个的区别在于一个是自上而下,一个是自下而上。但最终的目的都是要发现当前的主线中的领头羊板块,并从主线中选择强势个股。
关注公众号时间久的能够发现,通过数据的拐点和数量变化能够更早期发现一个板块的晋级和退潮,这样可以占据一定的先机,可以从容的跟踪这些板块。通过时间的验证这个方法是有效的,去年的每一条主线板块在数据中都有显示。2月8号—如何在1月13号确认软件服务(云经济)晋级到领头羊板块(这个是如何利用数据的变化来判断,做一个案例分析)
同时需要提示一点的是,中间会有些板块出现苗头,但不一定会晋级到主线板块,我会把它成为次领头羊,作为跟踪,但不可入戏太深,一切都要等走出来。
对于板块中有相类似的要统一划分为一条线,这个需要自己做个记录,比如互联网和IT设备以及软件服务从行业板块上分类是属于同一类别的,而从概念板块上会延伸出其他的如在线教育、远程办公、区块链、操作系统等等。
二、为什么统计这三个数据
1、接近历史新高0.9:一个板块领头羊的出现历史新高是最具有代表性,没有之一,因为历史新高会形成聚焦,会吸引整个市场的眼光和资金,甚至参与到同板块的次领头羊,如此就会慢慢的形成整体板块的赚钱效应。而接近历史新高0.9是历史新高个股的毕竟阶段,所以对于历史新高个股会有一个预知,那么对于结合历史新高个股判断具有赚钱效应的板块具有很大的参考意义。这也是为什么会特别重视这个板块统计的原因。(这个是最具有参考意义的)
2、满足任意两条RPS50/120/250大于85:《笑傲股市》中强调牛股的在起涨之前的平均rps强度是87,陶博士认为rps强度大于一切,那么对于rps强势的个股主要集中于哪个板块则这个板块就具有大概率的赚钱效应,如果满足两条RPS大于85则更具有代表性。同时市场的整体股票数量不会有太大变化,这也就决定了满足两条rps大于85的数据也不会有大变化,这样则更具有参考意义,这就有些像某某会都是会员制,一直实行的是末尾淘汰制,有进优出,只要满足条件就可以。
3、满足短期两条RPS20和50大于85:这是对短期走强的个股数量进行记录,可以与满足任意两条RPS50/120/250大于85做一个互相验证
三、之前分享过通过EXCEL的表格统计来看,但相对麻烦,也是因为分享之后,有很多朋友给出了一些建议,得到了一些完善,同时这个表格只能统计到通达信中的行业板块,对于概念板块无法统计,属于一个弊端,就需要自己从新梳理出行业板块中走强的细分领域。昨天说过感谢网络,因为我在公众号文章中说过因为无法统计概念板块,有一位老兄通过通过编程,不仅可以可以显示统计了概念板块同时也可以在电脑上显示,这样就省去了每天做表格的麻烦。对这位老兄表示感谢,得到原作者的同意,在此也把这个方法分享给各位。这个公式不仅可以在通达信上显示,同时还可以加入概念板块
四、第一步:新建板块:细分板块,把行业板块和概念板块都加入其中,进入板块指数,鼠标右键,通过批量操作把板块指数,加入到新建的细分板块中。(对于概念板块中也有一些无效的板块可以自己删除或者也保留)
第二步:建立板块排序指标:
D65:=65 ;
{接近历史新高0.9}
{ZB1:IF(INBLOCK('上市65天'),(H/HHV(HIGH,0)>0.9),0);}
ZB1:IF(BARSCOUNT(C)>65 AND (CLOSE/HHV(HIGH,0)>0.90),1,0);
{满足两条RPS大于85}
PR:=85;
X:=EXTDATA_USER(1,0);{120天的}
RPS120:=X/10;
Y:=EXTDATA_USER(2,0);{250天的}
RPS250:=Y/10;
Z:=EXTDATA_USER(3,0);{50天的}
RPS50:=Z/10;
A:=RPS120>=PR;
B:=RPS250>=PR;
D:=RPS50>=PR;
ZB2: (A AND B) OR (A AND D) OR (B AND D);
{满足RPS20和RPS50大于85}
W:=EXTDATA_USER(4,0);{20天的}
RPS20:=W/10;
E:=RPS20>=PR;
ZB3:D AND E;
{趋势投资因子 五十日均线}
D50:=50 ;
ZB4:IF(BARSCOUNT(C)>D65,(CLOSE>MA(C,D50)),0);
{趋势投资因子 二十日均线}
D20:=20;
ZB5A:=IF(REF(MA(C,D20),2)>REF(MA(C,D20),3) AND REF(MA(C,D20),1)>REF(MA(C,D20),2) AND MA(C,D20)>REF(MA(C,D20),1),1,0);
ZB5:IF(BARSCOUNT(C)>D65,ZB5A ,0);
{相对300强度}
HS300:="000300$CLOSE";
D1:=120;
相对强度:(C/REF(C,D))/(HS300/REF(HS300,D));
{接近年度新高0.9}
{ZB6:IF(INBLOCK('上市65天'),(H/HHV(HIGH,150)>0.9),0);}
ZB6:IF(BARSCOUNT(C)>D65,(CLOSE/HHV(H,250)>=0.9),0);
第三步:分别建立,B接近历史新高、B任两条RPS85、B短两条RPS85
接近历史新高:INSUM(STKNAME,'板块排序指标',1,0);
任两条RPS大于85:INSUM(STKNAME,'板块排序指标',2,0);
RPS20和R50大85:INSUM(STKNAME,'板块排序指标',3,0);
接近年度新高:INSUM(STKNAME,'板块排序指标',7,0);
第四步、分别建立,PX近历史新高、PX任两条RPS85、PX短两条RPS85
BKZS:BLOCKSETNUM(STKNAME);
N:=18;
新高DAY1:EXTDATA_USER(N,0);
DAY2:REF(EXTDATA_USER(N,0),1),COLORYELLOW,LINETHICK1;
DAY3:REF(EXTDATA_USER(N,0),2);
DAY4:REF(EXTDATA_USER(N,0),3);
DAY5:REF(EXTDATA_USER(N,0),4);
DAY6:REF(EXTDATA_USER(N,0),5);
DAY7:REF(EXTDATA_USER(N,0),6);
DAY8:REF(EXTDATA_USER(N,0),7);
DAY9:REF(EXTDATA_USER(N,0),8);
DAY10:REF(EXTDATA_USER(N,0),9);
DAY11:REF(EXTDATA_USER(N,0),10);
DAY12:REF(EXTDATA_USER(N,0),11);
DAY13:REF(EXTDATA_USER(N,0),12);
DAY14:REF(EXTDATA_USER(N,0),13);
DAY15:REF(EXTDATA_USER(N,0),14);
DAY16:REF(EXTDATA_USER(N,0),15);
板块总数:BLOCKSETNUM(STKNAME);
{相对300强度}
HS300:="399006$CLOSE";
D:=30;
相对强度:(C/REF(C,D))/(HS300/REF(HS300,D));
N:=19;
D1:=EXTDATA_USER(N,0);
D2:=REF(EXTDATA_USER(N,0),1);
D3:=REF(EXTDATA_USER(N,0),2);
D4:=REF(EXTDATA_USER(N,0),3);
D5:=REF(EXTDATA_USER(N,0),4);
D6:=REF(EXTDATA_USER(N,0),5);
D7:=REF(EXTDATA_USER(N,0),6);
D8:=REF(EXTDATA_USER(N,0),7);
D9:=REF(EXTDATA_USER(N,0),8);
D10:=REF(EXTDATA_USER(N,0),9);
D11:=REF(EXTDATA_USER(N,0),10);
D12:=REF(EXTDATA_USER(N,0),11);
D13:=REF(EXTDATA_USER(N,0),12);
D14:=REF(EXTDATA_USER(N,0),13);
D15:=REF(EXTDATA_USER(N,0),14);
D16:=REF(EXTDATA_USER(N,0),15);
任两85A:D1;
BL01: D1/板块总数;
方向01:IF(D1>D2,1,IF(D1=D2,0,-1));
DAY2:D2;
BL02: DAY2/板块总数;
方向02:IF(D2>D3,1,IF(D2=D3,0,-1));
DAY3:D3;
BL03: DAY3/板块总数;
方向03:IF(D3>D4,1,IF(D3=D4,0,-1));
DAY4:D4;
BL04: DAY4/板块总数;
方向04:IF(D4>D5,1,IF(D4=D5,0,-1));
DAY5:D5;
BL05: DAY5/板块总数;
方向05:IF(D5>D6,1,IF(D5=D6,0,-1));
DAY6:D6;
BL06: DAY6/板块总数;
方向06:IF(D6>D7,1,IF(D6=D7,0,-1));
DAY7:D7;
BL07: DAY7/板块总数;
方向07:IF(D7>D8,1,IF(D7=D8,0,-1));
DAY8:D8;
BL08: DAY8/板块总数;
方向08:IF(D8>D9,1,IF(D8=D9,0,-1));
DAY9:D9;
BL09: DAY9/板块总数;
方向09:IF(D9>D10,1,IF(D9=D10,0,-1));
DAY10:D10;
BL10: DAY10/板块总数;
方向10:IF(D10>D11,1,IF(D10=D11,0,-1));
DAY11:D11;
BL11: DAY11/板块总数;
方向11:IF(D10>D11,1,IF(D10=D11,0,-1));
DAY12:D12;
{BL12: DAY12/板块总数;
方向12:IF(D12>D13,1,IF(D12=D13,0,-1));}
DAY13:D13;
{BL13: DAY13/板块总数;
方向13:IF(D13>D14,1,IF(D13=D14,0,-1));}
DAY14:D14;
{BL14: DAY14/板块总数;
方向14:IF(D14>D15,1,IF(D14=D15,0,-1));}
DAY15:D15;
{BL15: DAY15/板块总数;
方向15:IF(D15>D16,1,IF(D15=D16,0,-1));}
DAY16:D16;
{BL16: DAY16/板块总数;};
板块总数:BLOCKSETNUM(STKNAME);
{相对300强度}
HS300:="000300$CLOSE";
D:=120;
相对强度:(C/REF(C,D))/(HS300/REF(HS300,D));
N:=20;
D1:=EXTDATA_USER(N,0);
D2:=REF(EXTDATA_USER(N,0),1),COLORYELLOW;
D3:=REF(EXTDATA_USER(N,0),2);
D4:=REF(EXTDATA_USER(N,0),3);
D5:=REF(EXTDATA_USER(N,0),4);
D6:=REF(EXTDATA_USER(N,0),5);
D7:=REF(EXTDATA_USER(N,0),6);
D8:=REF(EXTDATA_USER(N,0),7);
D9:=REF(EXTDATA_USER(N,0),8);
D10:=REF(EXTDATA_USER(N,0),9);
D11:=REF(EXTDATA_USER(N,0),10);
D12:=REF(EXTDATA_USER(N,0),11);
D13:=REF(EXTDATA_USER(N,0),12);
D14:=REF(EXTDATA_USER(N,0),13);
D15:=REF(EXTDATA_USER(N,0),14);
D16:=REF(EXTDATA_USER(N,0),15);
短两85A:D1;
BL01: D1/板块总数;
方向01:IF(D1>D2,1,IF(D1=D2,0,-1));
DAY2:D2;
BL02: DAY2/板块总数;
方向02:IF(D2>D3,1,IF(D2=D3,0,-1));
DAY3:D3;
BL03: DAY3/板块总数;
方向03:IF(D3>D4,1,IF(D3=D4,0,-1));
DAY4:D4;
BL04: DAY4/板块总数;
方向04:IF(D4>D5,1,IF(D4=D5,0,-1));
DAY5:D5;
BL05: DAY5/板块总数;
方向05:IF(D5>D6,1,IF(D5=D6,0,-1));
DAY6:D6;
BL06: DAY6/板块总数;
方向06:IF(D6>D7,1,IF(D6=D7,0,-1));
DAY7:D7;
BL07: DAY7/板块总数;
方向07:IF(D7>D8,1,IF(D7=D8,0,-1));
DAY8:D8;
BL08: DAY8/板块总数;
方向08:IF(D8>D9,1,IF(D8=D9,0,-1));
DAY9:D9;
BL09: DAY9/板块总数;
方向09:IF(D9>D10,1,IF(D9=D10,0,-1));
DAY10:D10;
BL10: DAY10/板块总数;
方向10:IF(D10>D11,1,IF(D10=D11,0,-1));
DAY11:D11;
BL11: DAY11/板块总数;
方向11:IF(D10>D11,1,IF(D10=D11,0,-1));
DAY12:D12;
{BL12: DAY12/板块总数;
方向12:IF(D12>D13,1,IF(D12=D13,0,-1));}
DAY13:D13;
{BL13: DAY13/板块总数;
方向13:IF(D13>D14,1,IF(D13=D14,0,-1));}
DAY14:D14;
第五步:.902扩展数据管理器,分别设置:B接近历史新高、B任两条RPS85、B短两条RPS85,需要注意的这里分别引用的数据18、数据19、数据20,分别于PX近历史新高、PX任两条RPS85、PX短两条RPS85对应,如果这三个被占用,注意修改上面的N与之对应
第六步:.902扩展刷新数据
第七步:。401排序,选择细分板块,或者选择板块指数,同时可更改排序指标,选择PX近历史新高、PX任两条RPS85、PX短两条RPS85
也可进入板块指数之后选择板块分类
备注:1、目前存在选择接近历史新高中概念板块数据分布不准确,弄了两天还是没有解决,如果有解决的可留言。另外如果不显示可关闭通达信之后重新打开
2、如果加入其它的统计数据可自行按照其中逻辑编辑,关注公众号久的应该都差不多会利用这个数据变化来发现主线,之前有些朋友说初看文章觉得难懂,建议可以回看以下历史文章记录。就可以理解我的思路了,我的体系和方法属于趋势交易,如果是趋势交易的话,我认为还是比较适合的,减少主观思维,一切是数据为主,按照市场走势来定,跟随市场,而不是靠感觉,比如这些行情从2月4号和5号开始确定以后,一直没有发出赚钱机会和效应结束的信号。