做板块相关的复盘时,卡住的地方不是公式怎么写,而是板块数据从哪进来。通达信板块数据输入有三条不同的路:自定义板块文件导入、板块指数代码直接取数、复盘记录表人工登记。三条路的数据口径不一样,同一件事用不同的路,得到的数会对不上。下面把三条路各自的口径、核对方法和记录表字段说清楚。
一、三条输入路径各自管什么
| 路径 | 数据来源 | 适合什么场景 |
|---|---|---|
| 自定义板块导入 | 本地板块文件,成分由自己维护 | 按自己的口径把标的归到一组 |
| 板块指数代码取数 | 软件内置的板块指数行情 | 观察板块整体的价格走势 |
| 复盘记录表登记 | 人工录入,存在表格里 | 把观察结论与日期固定下来 |
三条路的差别不在操作难度上,在于数据由谁维护。第一条的成分是你自己定的,第二条的成分由软件的数据源维护,第三条不存在成分,记录的是你的观察结果。分清维护方,后面的口径问题才有参照。
二、自定义板块:成分是谁定的
自定义板块的成分存在本地文件里,导入之后成为一组可被公式引用的标的集合。它的口径特点是完全由你控制,代价是软件的板块调整不会自动反映到你这一组里。
这里有一处容易忽略的边界:导入会覆盖还是追加,取决于导入时的选项。选覆盖,原有的成分会被新文件整体替换;选追加,新成分并入原有的集合。两种模式的效果差别很大,操作之前在选项上核对一次。核对办法是导入前记下板块内的标的数量,导入后再数一次,数量符合预期就说明模式选对了。
{引用自定义板块的写法:板块名要与本地定义逐字一致}
{板块名里带空格或特殊字符时,引号内的写法要照抄}
BKIN := INBLOCK('自定板块名');
{把板块条件与其他条件串起来}
COND: BKIN AND C > REF(C,1);
三、板块指数:代码与口径
板块指数走的是行情数据这条路,用指数代码取数,写法和取个股行情没有区别。它的口径特点是数据由软件的数据源维护,成分的变化会自动反映到指数里。
两个细节要先确认。第一个是指数代码的取值方式,同一板块在不同版本里的指数代码可能不同,写死一个代码之后再升级版本可能取不到数据。稳妥的做法是先用软件自带的板块列表找到目标板块,把代码抄下来,再写进公式。第二个是指数的加权方式,板块指数按什么规则把成分合成一个指数,决定了它反映的是整体还是少数大权重标的。这一点可以从指数与成分走势的对照上看出来。
{板块指数取数:代码要照抄软件里的实际值}
BKIDX := "880001";
BKCLOSE: C;
{把板块指数与个股放在一起比较时,注意两者的量纲}
RATIO: C / BKCLOSE;
量纲这一步容易出问题。板块指数与个股价格的量级不同,直接相减没有意义。要比较就取比值或者分别做归一,不要拿两个量纲不同的序列做加减。
四、复盘记录表:字段怎么设
用公式取到的数,最终要落到表里才有复盘价值。记录表的字段按「能被复核」这个要求来设,字段少了过一段时间就对不上,字段多了填不动。
| 字段 | 记录什么 | 为什么必须有 |
|---|---|---|
| 日期 | 观察发生的交易日 | 没有日期就无法回查当天数据 |
| 板块名与来源 | 板块名,以及数据来自哪条路径 | 不同来源口径不同,不记来源无法复现 |
| 取值口径 | 用的是收盘价还是盘中价、是否复权 | 同一时点不同口径读数不同 |
| 观察值 | 公式输出的读数 | 可核对的核心数据 |
| 核对日期 | 什么时候回的查 | 板块成分会变,不记核对日期会被误判成公式改了 |
通达信板块数据输入的三条路里,记录表这一条最不起眼,却能把前两条路的结果固化下来。公式取数是实时的,今天看到的数过一段时间就取不回来了,不记下来就没有对照的基准。
五、三条路之间怎么对齐
三条路的数据口径不同,把它们放在一起用之前要先对齐两件事。
第一件是时点。自定义板块的成分是你维护的,可能几天才更新一次;板块指数是实时的;记录表是人填的,时点更随意。同一个「今天」,三者的口径可能分属不同的时点,直接比较会得出错误结论。对齐办法是明确记录每条数据的时点,比较只在同时点的数据之间做。
第二件是范围。自定义板块可能只放了你想盯的一批标的,板块指数覆盖的是全成分。两者的范围不同,数量与走势都不能直接对照。核对办法是把自定义板块的成分与指数成分做一次差集,看差多少,差得多就说明两者不可直接比较。
{同一时点、同一范围才能比较:先取交集}
A := INBLOCK('自定板块名');
B := INBLOCK('目标板块名');
{同时属于两个板块的标的}
BOTH: A AND B;
{只属于其中一个的,用于判断两种口径差在哪}
ONLYA: A AND NOT(B);
六、核对顺序与常见偏差
按下面的顺序走一遍,三条路的口径都能对上。
- 数一次自定义板块的标的数量,与文件里的记录对照,确认导入模式是覆盖还是追加。
- 从软件的板块列表里抄一次目标板块的指数代码,与公式里写的值逐字对照。
- 用同一时点的数据,分别用自定义板块和板块指数取一次,看数量与走势是否能对上。
- 检查记录表的五个字段是否都填了,尤其是取值口径与核对日期。
- 把这次核对的日期写进板块说明里,下次改口径之前先看一眼上次是什么时候定的。
常见偏差有三处:板块名写错一个字导致取不到,表现为空结果而不是报错;指数代码用了旧版本的值,升级后取不到数据;记录表没写取值口径,过一段时间两个不同口径的数混在一列里,对不上又找不出原因。三处都属数据口径问题,与公式写法无关。界面入口与板块命名在不同版本和券商定制版之间存在差异,具体以你所用客户端的帮助文档为准。
三条路在用的时候还有一个先后问题:先用哪条路取数,决定了后面记录表里填什么。如果先用板块指数取数、再用自定义板块复核,两次的口径分属不同来源,记录表里就要分别列两行,不能合并成一行。这一点在开始动手之前就要定下来,事后补记总会漏掉一项。
本文只作技术研究口径,全部内容围绕数据来源与记录方式展开,不涉及也不构成对任何标的的判断或取舍建议。通达信板块数据输入的三条路径按「数据由谁维护」来选:自己维护成分走第一条,想跟软件的数据走第二条,要把结论留下来走第三条。三条不要混着用,混用之前先对齐时点与范围。
