你在别人电脑上看到一个公式跑得好好的,拷到自己机器上却提示函数不存在;或者同一个公式,在你的软件里能算出结果,在另一个人的软件里画出来是空的。这类问题多数不是公式写错了,而是两个人用的不是同一个版本的软件,通达信免费版公式功能与收费版本之间的差别,正好落在几个能被指认的地方。
下面把差异按「能不能查、怎么查」的顺序排开。全文只讲版本之间的功能范围与核对方法,不评价任何指标的效果,也不给出操作结论。文中菜单路径以通达信金融终端为参照,你实际用的是哪一版,可以在「帮助 → 关于」里看到版本号与授权信息。
一、差异先分成四类
把版本差异拆开看,落到公式上的只有四类:函数集的大小、历史数据的深度、公式条目与同步方式、以及定时与预警这类需要后台资源的能力。前两类决定公式能不能算出结果,后两类决定公式能不能在你需要的时候跑。
这四类的共同点是都可以自己核对,不需要问客服。核对的方式是拿一段最小化的测试公式,去试某一个函数是否被识别、去拉一段历史数据看起点在哪一天。逐项试过一遍,版本的能力边界就在你手上了。
差异的来源是授权范围。同一份安装程序,在不同授权下打开的可用功能并不完全相同;通达信免费版公式功能与收费版之间的边界由授权决定,不由安装文件决定。这带来一个直接的推论:在同一台机器上换一个授权的账号登录,能达到的功能范围会跟着改变,而软件版本号可能一点没变。碰到这种情况,先核对账号,再核对安装包。
二、函数集:试一个函数就知道
函数集是版本之间最直接的差别。同一段源码,在函数说明里查得到、在公式编辑器里能通过编译,说明这个版本支持它;如果编译时提示名称未定义,说明当前版本没有这个函数。
{ 最小化测试公式:只调用一个函数 }
X:SUMBARSX(CLOSE,1);
{ 编译通过 → 该版本支持 SUMBARSX
提示名称未定义 → 换一个等价写法或改用其他函数 }
测试时要注意两点。一是函数名大小写不敏感,写上大写小写都一样被识别,所以「大小写不同」不会造成提示未定义。二是提示未定义有多种成因,函数不存在只是其中一种,参数个数写错、括号不配对也会得到同类提示,试函数时把公式缩到只留一行,才排得干净。
三、历史数据深度
第二个差别是历史数据的长度。同一只品种,日线数据的起点在不同版本里可能不同;分钟线的深度差别更明显,免费版本地能取到的分钟线区间比收费版短。表现是公式画到某个位置就断掉,前面的部分一条直线或者干脆没有。
核对办法是把显示范围往左拉到底,看输出的起点落在哪一天,再打开数据下载工具看该品种已下载数据的起止日期。两个日期一致,说明是数据边界;公式画不出来的一段,不是写法问题。
这一点会连带影响递推类公式。均值、平滑、累积这类计算要用到前面若干根的数据,起点附近的数据不足时,输出是在不完整的条件下算出来的。显示范围往左扩一段之后,如果最左边的输出值还在变化,就说明它仍在收敛过程中,不适合作参照。
数据长度这一项与通达信免费版公式功能的关系,落在本地已下载的内容上。公式取不到的数据不会因为改了写法就出现,所以碰到输出起点与预期不符时,先打开数据下载工具看该品种已下载的区间,再回头找公式的原因。顺序反过来,会在公式里反复试写法而始终找不到问题。
四、公式条目数与同步方式
第三个差别是能保存多少条自编公式,以及这些公式存在哪里。本地保存的公式写在你电脑的安装目录里,跟着这台机器走;云端保存的公式跟账号走,换一台机器登录同一个账号能看到。
这两条路径的差别会在两件事上显出来。一是换机器或者重装系统,本地公式需要先导出再导入才能带走;云端的公式登录后就在。二是删除操作的对象不同,删本地公式与删云端公式是两个入口,只删了一边,另一边还会在下次登录时同步下来。
公式存放的具体位置,可以在这篇里对照:公式安装与导入 一栏讲文件与目录,公式报错与卡顿排查 一栏讲同步失败与提示原文。前者解决「存在哪」,后者解决「没同步上怎么办」。
五、预警与定时计算
第四个差别在需要后台资源的功能上。定时刷新、条件预警、批量计算这类能力,要占用数据推送与计算资源,版本之间在可用范围上会有区别。表现出来的现象是公式写对了,但预警列表不触发,或者刷新间隔与设置里的值不一致。
核对这一步要从设置面板入手,而不是从公式入手。打开预警设置,看条件能不能被保存、刷新周期有哪些可选值、预警对象能选多少个。可选值本身就是版本能力的直接反映,设置面板里没有的选项,公式里再怎么改也调不出来。
这一步做完,建议把结论写下来:能用的函数有哪些、数据能回溯到哪一天、预警刷新有哪些可选周期、公式条目上限是多少。四项写下来,下一次遇到两个版本之间的差异,直接对照这份记录即可,不必重跑一遍测试。记录里要写上核对日期,因为软件升级之后这些边界可能变化,旧的记录不能直接沿用。
六、怎么把差异落到自己这台机器上
把上面四类合起来,得到一条可以自己走完的核对路径。第一步在「帮助 → 关于」里记下版本号与授权信息;第二步用一行公式试关键函数;第三步拉一段最长的历史数据看起点;第四步在预警设置里看可选值。四步走完,你这台机器在公式上的能力边界就清楚了。
四步里最容易跳过的是第三步。历史数据的长度不像函数集那样有明确提示,它只在输出断线时才暴露出来,而断线很容易被误认为公式写错了。把这一步固定成习惯,能省掉不少排查时间。
后续拿到新公式时,遇到结果对不上,先问一件事:给出这个公式的人用的是哪一版。通达信免费版公式功能的边界与收费版不同,两个人在不同边界上讨论同一个公式,讨论的其实是两件不同的事。先把版本对齐,再谈公式本身,能省掉相当多的来回。
文中菜单路径与函数名以通达信金融终端为参照,软件的具体版本号与授权范围可在「帮助 → 关于」中核对;不同版本与券商定制版的函数列表、数据范围与设置项可能存在差异,请以你所用版本内的实际界面为准。
