第二十八篇——一通达信板块函数INSUM、BLOCKSETNUM简介以及应用(从零起步编写通达信指标公式系列)

发布时间 2023-10-19 17:41:59作者: 少年如夏

有人问:统计指数成分股的收盘价高于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

关注博主,学习更多通达信指标公式编写知识