交易所每个交易日收盘后会披露一份成交明细,按参与者类别汇总当日的成交金额。通达信龙虎榜指标公式要处理的,就是这份公开数据。它和开高低收、成交量不属于同一类:后者由行情系统在交易时段持续推送,前者是一份单独产生的文件,在盘后一次性形成。
本文按数据来源、更新时点、公式取值路径、字段对齐与失效条件展开,全部围绕数据处理本身。文中的目录名与菜单项以通达信金融终端个人版为准,券商定制版的数据入口可能有差异。全文不涉及任何标的的判断,也不对任何成交数据的含义作评价。
一、这份数据不在行情字段里
通达信的行情数据里,每根 K 线能直接读到的字段是开盘、最高、最低、收盘、成交量与成交额。这几个字段由行情系统推送,覆盖全部上市品种,格式统一。
盘后披露的那份成交明细不在这套字段里。它有三个与行情数据不同的特征:
| 特征 | 带来的影响 |
|---|---|
| 不是每日全量 | 只有当日满足披露条件的品种才出现在文件里,其余品种没有记录 |
| 按类别汇总 | 同一品种的成交被拆成若干条记录,按参与者类别分组 |
| 盘后形成 | 交易时段内不存在这份数据,盘中取不到 |
三个特征决定了它没法直接用价格类函数取到。要在公式里用到,必须先把它变成一份软件能读的本地数据。
还有一处差别在时间维度上。行情数据是按 K 线排列的时间序列,每根 K 线有明确的起止时点;这份披露文件是按记录排列的一张表,一条记录对应一个品种加一个类别,不带 K 线结构。要在图上用,就得先把表里的某几个字段折算成按日期排列的序列,这一步的规则由使用者自己决定。
二、数据从哪来,什么时候更新
通达信龙虎榜指标公式的第一步不是写表达式,而是把数据落到本地。落地的路径有两条。
- 软件内的数据入口。软件里提供扩展数据或专门数据栏目的入口,可以在其中建立条目、指定更新方式,由软件按设定的时点抓取或计算,结果存在本地。
- 外部整理后导入。先从披露文件里整理成一张字段固定的表,再通过导入功能挂到本机。这条路径的数据口径由整理规则决定,格式错了公式就取不到值。
两条路径都受同一个时点约束:数据在盘后产生,所以当天交易时段内取到的只能是上一份。复核结果时把这一项对齐,两个时点混在一起看,不同来源的数值放同一张表里比,差异会来自时点而不是口径。
两条路径还有一个共同点值得留意:它们都依赖本地条目,而条目是跟着用户目录走的。用户数据目录 T0002 里的内容与这份数据相关,换机器、重装软件、升级版本之后,条目可能还在而内容为空。排查时把这三点分开看:条目存在吗、内容非空吗、日期推进了吗。
三、公式里的取值路径
数据落到本地之后,公式的工作就变成取数与比较。整个过程分三步,与处理行情字段的思路一致,只是取值入口不同。
{ 取值路径示意:具体取数函数名以软件实际提供的为准 }
第一步:在数据入口建立条目,指定字段名、更新方式与存放位置
第二步:公式中引用该条目,得到一个数值,赋给中间量
第三步:把该数值与阈值比较,输出成立与否
中间量:=引用该条目的数值;
条件:中间量>0;
三段里第二步是新手容易卡住的地方。价格类函数可以在任何一份公式里直接调用,因为行情数据是全局的;外部数据的条目是本地自建的,换一台机器而没建立同样的条目,公式里那一句就取不到值,编译可能通过,结果却是空的。
把取数那一句单独拎出来,用一份只输出它的公式测一次,是确认取值路径通不通的直接办法。取值正常之后再写比较逻辑,排查范围就限定在了表达式一侧。
四、字段对齐最容易出错的地方
通达信龙虎榜指标公式的数据侧问题,集中在字段对齐上。披露文件里的字段名与本地条目里的字段名不是一对一的关系,中间经过一层映射。
| 对齐项 | 出错的表现 |
|---|---|
| 日期格式 | 日期列被当文本读入,与行情日期对不上,取到空值 |
| 品种代码 | 带市场前缀与不带前缀的写法不同,匹配不上 |
| 数值单位 | 披露文件以元为单位,本地条目按万元存放,数值差若干量级 |
| 缺失值处理 | 当日无记录的品种,本地留空与填 0 会得到两种不同的结果 |
| 重复记录 | 同一品种有多条记录时,直接求和与取最大值结论不同 |
五项里影响最大的是数值单位与缺失值。单位错了,比较结果整体偏移;缺失值处理方式不统一,同一个条件在不同品种上的含义就不一样。
日期格式这一项也值得单独说。行情日期与外部数据的日期在软件里可能是两种类型,一种按日期参与比较,一种按字符串参与比较,两者直接做等值判断不会报错,但结果与预期不同。核对的办法是把两边的日期各自输出一次,看显示的形态是否一致。
五、为什么这类公式容易失效
这类公式的失效来源不在表达式,而在数据链路。链路越长,环节越多,可断开的位置也越多。
- 条目未同步。换机器、重装软件之后,本地条目还在但内容为空,公式取到空值。
- 更新中断。某一天的抓取没有完成,日期停留在前一交易日,后续计算用的是一份过期数据。
- 字段改名。整理规则或披露格式调整了列名,本地映射对不上,整列变成空。
- 条目被覆盖。不同来源的数据写进同一个条目,前后两次的口径不一致。
- 时点错位。盘中运行时读到的是上一份数据,与盘后复核时读到的不是同一份,两次结果看起来不一致。
排查这五类问题,顺序与链路一致:先确认条目存在,再确认内容非空,再确认日期推进,再确认字段映射,最后确认取值时点。五步都过一遍,公式侧的问题才轮到表达式本身。
把这五步做成一张固定格式的记录表,每次调整之后填一遍,能让通达信龙虎榜指标公式的维护变成一件有据可查的事。数据链路的故障有一个特点:它不报错。公式编译通过、图上也有东西,只是数值是空的或者过期的。没有记录表时,这类问题只能靠回想上一次改了什么,记录表能把这一步省掉。
本文讲的是这类数据的落地方式、取值路径与字段对齐方法,不涉及任何标的的判断,也不对成交数据的含义作解读。公式输出的是按设定规则算出的数值,不含其它含义。站内还有 复盘方法与数据工具 里讲数据整理顺序的条目、指标原理与参数 里讲取值口径的条目、公式报错与卡顿排查 里讲数据缺段与结果偏差的条目,可对照查看。
