第二十八篇——一通达信板块函数INSUM、BLOCKSETNUM简介以及应用(从零起步编写通达信指标公式系列)
有人问:统计指数成分股的收盘价高于20日均线的数量占比(0%~100%),如何编写成副图指标?
这种指标公式属于代码不多,难度不小的类型。如果平时编写板块方面的指标比较少,相关板块函数不常用,那需要花点时间研究。
一、所需函数
1、STKNAME
含义:获取品种名称
2、HYBLOCK
含义:获取品种所属行业板块
3、BLOCKSETNUM
含义:统计板块的成分股数量
使用方法:BLOCKSETNUM(板块名称)
4、INSUM
含义:获得板块成分股对应指标的计算值
使用方法:
INSUM(板块名称,指标名称,指标线,计算类型)
板块名称:支持系统自带的板块,也支持自定义板块。除了支持字符串,还支持上面介绍过的STKNAME、HYBLOCK这样的变量来获取板块名称,当切换查看的板块时,指标的数据会自动变化。
指标名称:支持系统自带的指标,也支持自编指标
指标线:1表示指标的第一个输出值,2表示指标的第二个输出值,以此类推
计算类型:0表示累加,1表示平均数,2表示最大值,3表示最小值
举例:INSUM('半导体','MACD',3,0);,表示半导体板块中所有成分股的MACD指标第三个输出即MACD值的累加值。(如下图画线处,第一个输出值是DIF,第二个输出值是DEA,第三个输出值是MACD)
二、指标编写
思路:
a、统计指数包含的成分股总数
b、统计指数的成分股中收盘价高于20日均线的数量
c、然后求占比
1、引用公式
在步骤2中,用到INSUM函数,INSUM函数需要用调用指标来计算收盘价高于20日均线的数量,但是系统没有自带这样的指标,所以需要我们自己新建,源码如下:
IF(C>MA(C,20),1,0);
公式名称为“高于20日均线”,在主指标公式中会用到这个名称,如果修改了名称,需要在主公式中同步修改。
2、主公式
引用公式保存之后,再新建主公式,源码如下:
A1:=BLOCKSETNUM(STKNAME);
A2:=INSUM(STKNAME,'20均线以上',1,0);
BL:A2/A1*100;
以沪深300、中证500为例,效果如下图。
沪深300指数
中证500指数
本文来自技术Pie
关注博主,学习更多通达信指标公式编写知识