同一个搜索词下会跳出十几个下载页。有的给了参数表,有的把参数写死在源码里;有的能打开源码,有的只有加密封装。在下载之前,怎么选择指标公式可以从说明与结构里读出几个判断点,不必先装上软件跑一遍。
下面按查看顺序排列五个维度,每个维度都说明「看到什么算信息充分」与「看到什么要留一个问号」。文中提到的菜单项与文件名以通达信金融终端个人版为准,券商定制版的界面项可能有差异。全文只讨论指标公式的来源信息与结构,不涉及任何标的的判断。
一、筛选发生在实测之前
把「挑选」和「验证」当成一件事,顺序就会乱。验证需要软件、需要历史数据、需要一段可比的样本区间,做一次要花时间;挑选只需要看对方提供了哪些信息,几乎不花时间。
两者能回答的问题也不同。挑选回答的是这份公式值不值得花时间去装,验证回答的是装上之后它的输出稳不稳定。前者可以把明显缺信息的东西先排除掉,后者才能给出结论。先做前者,能少走一段弯路。
| 阶段 | 需要什么 | 能回答的问题 |
|---|---|---|
| 挑选 | 说明、参数表、源码或封装类型 | 值不值得装 |
| 验证 | 软件、历史数据、样本区间 | 输出是否稳定、边界行为如何 |
还要承认一个限制:挑选只能筛掉信息不全的东西,它筛不掉逻辑有问题的东西。一份说明写得完整、参数表清楚、依赖项也列明了的公式,照样可能在自己的使用场景里不成立。挑选解决的是「要不要花这个时间」,不回答「它有没有效」。
二、输出定义写没写明
怎么选择指标公式,第一眼要看的是它输出什么。说明写得清楚的,会写明输出几个值、每个值在什么范围、以及它代表的是什么量;写得含糊的,装上之后才暴露。
| 说明里写到的程度 | 装上之后会遇到什么 |
|---|---|
| 写了输出个数与每个值的含义 | 能直接判断该放主图还是副图 |
| 只写了「输出信号」四个字 | 副图上可能出现一条恒为 0 或恒为 1 的线 |
| 与输出有关的信息都没有 | 挂载位置靠试,试错成本转给自己 |
副图指标与条件选股公式对输出的要求并不一样。副图要的是连续数值,条件选股要的是成立与不成立的判断。一份公式如果同时被标成「副图」和「选股」,而说明里没有区分两种用法下各自的输出,就要留意它的描述是否经过整理。
三、参数是外露的还是写死的
参数表是通达信公式的正式机制。声明在参数表里的变量,可以在公式管理器里直接改数值,不必打开源码;写死在源码里的常量,每次调整都要进编辑器。
差别不只在便利性上。参数外露的公式,它的阈值是明示的;参数写死的公式,阈值藏在源码中间,想核对就得先能读到源码。
{ 参数表声明的写法:N 出现在公式上方的参数栏 }
N: 20 (1, 250, 1)
A:MA(C,N);
{ 写死在源码里的写法:阈值散落在语句中 }
A:=MA(C,20);
B:=MA(C,60);
条件:A>B AND V>MA(V,20)*1.5;
第二种写法并不是错误,语义上完全成立,只是把三个数字固定住了。挑选时要判断的是:这份公式的使用场景是否需要调整这些数字。说明里写着适用于不同周期,而源码把周期相关常量写死,说明与实际就对不上。
还有一层要看的是参数取值的合理区间。参数表里可以给每一项标出上限与下限,上下限写得过窄,使用者就调不到自己需要的取值;完全没标,则意味着这项参数在极端取值下的行为没有被盘过。
四、未来函数能不能自己查出来
未来函数指的是求值时引用了当前 K 线之后的数值,或者引用了会被后续数据改写的量。它的表现是同一根 K 线在不同时刻算出的值不一样。
挑选阶段不必运行公式就能做一部分判断。通达信的公式管理器里有函数列表,把源码里用到的函数逐个对一遍,就能找出可疑项。需要重点核对的包括 ZIG、PEAK、TROUGH 这类峰谷类函数,以及各类带未来数据标注的引用。
核对的方法是按函数名逐个查。把源码里的函数名整理成一张清单,然后在函数说明里找有没有未来数据相关的标注。这一步不要求看懂整份公式的逻辑,只要求把用到的名字查完。
五、数据来源与版本边界写没写
怎么选择指标公式,还要看它依赖什么数据。同一份源码在不同数据条件下会给出不同结果,原因落在三处:
- 数据周期。日线公式与分钟线公式引用的历史根数含义不同。说明里没写周期,装上之后要自己试。
- 复权设置。前复权与不复权下,同一根 K 线的开高低收数值不同,依赖价格的表达式结果随之改变。
- 数据完整度。需要较长历史的公式,在本地数据未下载全的品种上会给出空值。
版本边界同样要看。库文件名与函数可用范围在不同版本之间有调整,官方更新记录里会写明新增或修正了哪些函数。说明里标注了适用版本区间的,等于承认兼容性问题存在;完全没提版本的,把兼容性判断留给了使用者。
这三处加上版本,合起来是一组前置条件。前置条件写得越具体,说明署名方对自己那份公式了解得越清楚;写得越笼统,装上之后要自己补的功课就越多。
六、换台机器还能不能算出同样的结果
最后一个维度是可复现性:同样的源码、同样的数据、同样的设置,在两台机器上应不应该得到同样的输出。如果一份公式依赖了本机特有的东西,它在别人机器上会算不出东西,或者算出的东西不一样。
这类依赖本身不是缺陷,有些公式确实需要外部数据。问题在于说明里有没有写出来。写了,使用者可以提前准备;没写,装上之后会误以为是公式本身出了问题。
| 依赖项 | 说明里可以怎么写 |
|---|---|
| 自建扩展数据 | 注明需要先导入某个数据文件,并给出字段名 |
| 自定义板块 | 注明板块名与成分维护方式 |
| 外部财务数据 | 注明数据来源与更新频率 |
| 特定指标引用 | 注明需要先安装被引用的另一份公式 |
核对可复现性有一个不用装软件的办法:把公式里引用的所有外部名称抄下来,看说明里能不能逐项对上。对不上的那些名字,就是要提前准备的部分。
前面的部分合起来是一条查看顺序:先看它输出什么,再看参数在哪,再看未来函数有没有,再看数据与版本条件,最后看依赖项。怎么选择指标公式,落到操作上就是对下面五处逐项打勾。
- 输出值的个数与含义是否写明;
- 参数是否声明在参数表里、阈值是否明示;
- 源码用到的函数是否逐个核对过未来数据标注;
- 数据周期、复权口径与适用版本是否写明;
- 是否依赖本机自建的扩展数据或自定义板块。
本文只讲指标公式的来源信息与结构判断方法,不涉及具体标的的判断,也不构成对任何公式效果的承诺。站内还有 指标资源选择与会员 里讲文件格式与来源核对的条目、公式安装与导入 里讲安装路径与目录结构的条目、指标回测与风险验证 里讲样本区间与判定口径的条目,可对照查看。
