问:通达信公式选股分组到底是什么意思,是不是公式里要写一句「只在这个组里选」?答:通达信里没有名为「分组」的功能菜单,所谓分组指的就是自定义板块。通达信公式选股分组这套做法由两件事拼成:一件是在板块侧把股票归拢到自定义板块里,另一件是在选股侧把这次计算的范围限定到这个板块。板块侧和选股侧各管一段,两边都要对上,结果才对。
一、先把概念对齐:分组就是自定义板块
通达信的板块体系分两层。一层是软件自带的分类,按行业、按地区、按概念划分,随客户端数据更新;另一层是用户自己建的板块,叫自定义板块,内容完全由使用者维护。新手问的「分组」,指的是第二层。
自定义板块和自选股是两套不同的东西。自选股是一个固定列表;自定义板块可以有多个,每个板块有自己的名字和成员,一个标的可以同时出现在多个自定义板块里。选股时要限定范围,用的是自定义板块。板块成员是「静态名单」,公式是「动态条件」,把两者叠在一起,得到的是「在这批标的里,符合这段条件的那些」。
二、怎么建一个自定义板块
建板块的入口在板块相关菜单里,也可以在行情列表上对某个标的做右键操作时找到加入板块的入口。流程分三步:新建板块、命名、把标的加进去。
{新建自定义板块的流程,菜单名称随版本略有差别}
1. 打开客户端,从板块相关菜单进入「新建板块」
2. 输入板块名称,确定
3. 板块出现在板块列表里,此时成员为空
4. 在行情列表里选中一个标的,右键
5. 选择「加入到板块」,在弹出列表里勾选目标板块
6. 需要批量加入时,先在行情列表里多选,再重复第 5 步
板块名建议能自解释。批量加入的另一种做法是把标的导出成文件,在文件里整理好名单再整批导入板块,入口同样在板块菜单里。名单在 Excel 里维护时,注意代码列的格式要按客户端的读取要求处理,格式对不上会出现导入成功但名单为空的情况。
三、选股界面里怎么限定范围
板块建好之后,选股这一步要把范围指到它。通达信的条件选股界面里有一个「选股范围」的下拉,默认值是全部 A 股,展开后能看到各个板块分类,自定义板块也在其中。把范围改成目标板块,公式就只在这个板块的成员上计算。
{条件选股界面的操作顺序}
1. 从菜单进入「条件选股」
2. 在公式列表里选中要用的选股公式
3. 展开「选股范围」下拉
4. 在分类里找到自定义板块,选中目标板块
5. 设置计算周期与数据范围
6. 点「执行选股」查看结果
说明:范围下拉里的板块列表,与板块列表里看到的自定义板块是同一份数据
列表里如果找不到刚建的板块,先确认这个板块在板块列表里确实存在且成员不为零,再把下拉的分类树展开到「自定义板块」这一层看过。计算周期这一项也要对上,选股公式写在日线上,算的时候周期也要设成日线。
四、INBLOCK 写法:在公式里限定板块
除了在界面上选范围,也可以在公式体里写一句判定,把板块限定交给公式本身。通达信提供 INBLOCK 这类函数,作用是判断当前标的是否属于某个板块,返回真或假。写成条件的形式,就能在当前计算范围内再筛一层。
{在公式里限定板块的写法,公式类型:条件选股}
{1. 单板块判定}
INBLOCK('板块名称');
{2. 与其它条件组合}
INBLOCK('板块名称') AND CLOSE > REF(CLOSE, 1);
{3. 加一层量能过滤}
INBLOCK('板块名称')
AND CLOSE > REF(CLOSE, 1)
AND VOL > REF(VOL, 1);
{1. 板块名称须与板块列表里的名称逐字一致,含空格、全半角差别}
{2. 函数返回判定结果,不返回数值,放在条件位置使用}
{3. 结果集是「板块成员」与「公式条件」两者的交集}
INBLOCK 的写法有两处限制。第一处是名称匹配,函数参数是板块名称字符串,名称对不上就判定为假,结果为空;板块名称改过之后,公式里的字符串不会自动跟着改,分不清全角半角、有没有多余空格时,把名称从板块列表里连字符一起复制过来。
第二处是板块类型,这个函数能识别的板块范围随版本而定,行业、地区、概念这类软件自带分类和自定义板块的识别情况不一样。判断方法是写一条只含这一句的公式,在已知属于该板块的标的上跑一次,看返回的是真还是假。
五、两层范围的关系:界面范围 × 公式条件
把两种做法放到一起看,关系就清楚了。界面上的「选股范围」是外层,决定公式在哪些标的上被计算;公式里的板块判定是内层,决定哪些标的能通过条件,两者是「与」的关系。
| 做法 | 位置 | 特点 | 什么时候用它 |
|---|---|---|---|
| 选股范围下拉 | 条件选股界面 | 不改公式,换板块只改下拉选项 | 板块名单会变动,需要频繁换范围 |
| INBLOCK 判定 | 公式体内部 | 公式自带范围,换板块要改公式里的字符串 | 公式要固定跟住某一个板块 |
计算量上的差别也值得看一眼。范围限定在外层时,公式只在板块成员上算一遍;把范围放开到全部标的、再用公式内判定,被计算的基数会成倍放大,耗时随之上升。做批量计算时,把范围尽量收在下拉里更省资源。
六、板块里加了股票但选股器找不到
这一类问题问得最多。排查按下面这个顺序走,从名单侧查到计算侧,每一处都能单独定位。
- 先看板块成员是否真的写进去了。打开板块列表选中该板块,看成员数量,数量为零说明加入动作没生效。
- 再看范围下拉里有没有展开到自定义板块这一层,分类树有层级,板块在下一层。
- 看计算周期与公式的周期是否对上,选股公式按日线写、范围设成分钟周期,窗口口径就变了。
- 看公式里的板块名称字符串是否与板块名逐字一致,名称不一致时
INBLOCK返回假。 - 看两层范围是否互相抵消,界面范围与公式判定写的是不同板块时交集可能为空。
- 看名单里的代码格式,批量导入的代码带后缀或带前导零时客户端的匹配规则对不上。
| 现象 | 对应含义 | 处理 |
|---|---|---|
| 板块列表中成员数量为零 | 加入板块的动作未落到该板块 | 重新执行加入板块,或改用批量导入名单 |
| 范围下拉里找不到该板块 | 分类树未展开到自定义板块层 | 在下拉里逐层展开查看,确认板块名 |
| 选中范围后结果为空 | 公式内的板块判定与界面范围不匹配 | 先去掉公式内的判定跑一次,再逐项加回 |
| 结果与预期名单不符 | 代码格式或后缀与客户端匹配规则不一致 | 核对名单里的代码格式,重新导入 |
| 同一段公式换周期结果不同 | 按根数计的窗口随时间周期换算 | 把计算周期与公式设计周期设为一致 |
排查的顺序遵循一条原则:先看名单,再看范围,最后看公式。「名单里到底有没有这个标的」是可以在界面上直接看到的事实,「公式判定得对不对」要靠跑一次才知道。把能直接看到的事实先确认掉,剩下要试的次数就少了。
七、板块名单怎么维护才不出岔子
名单是会变的,维护方式决定它用得顺不顺。给每一条自定义板块留一份原始名单文件,放在固定的位置,改动只改这份文件,改完再整批导入。这样客户端里的板块删掉或改坏之后,还能从文件恢复。板块文件落在 T0002 下面,和公式文件同处一个目录树,备份时整目录拷走即可。
名单与公式的对应关系建议记在文件里。哪个板块配哪一条选股公式、公式里的板块名称字符串写的是什么,写成一行备注跟着名单一起存。
把上面几条串起来看:通达信公式选股分组这套做法没有单独的菜单,它落在板块侧与选股侧两个位置上。板块侧管名单,选股侧管范围,公式里的板块判定管再筛一层。三处对上,通达信公式选股分组的结果就和预期一致。以上讲的都是操作与写法,不涉及任何对行情的判断。
本文只作技术研究口径,不涉及也不构成对任何标的的判断。
站内还有 通达信新手入门问答 的条目,通达信选股公式与预警 里讲选股范围与预警设置,通达信公式编写 里讲语法与函数写法,可对照查看。
