点开功能菜单里的公式系统,进去看到的是公式管理器,找不到单独的编辑器入口。通达信公式编辑器没有一个独立的菜单项,它是在管理器里对某一支公式执行新建或修改时才打开的窗口。窗口里的改动要经过保存才会写回列表,代码写完直接关窗口,回头看列表里没有这支公式,缺的就是这一步。

下面按入口在哪、代码区与公式类型怎么对应、参数表填与不填的差别、语法检查给的是什么、保存之后公式没出现该回查哪几步来写。按钮名称与窗口布局以本机版本的公式管理器为准,不同版本的分组名称可能略有差异。

一、入口在公式管理器里面

打开公式管理器的路径是功能菜单的公式系统,快捷键是 Ctrl+F。窗口左侧是按类型分组的分支树,右侧是该分组下的公式列表。

在列表里选中一支已有公式,点「修改」,编辑器窗口打开,里面装着这支公式的代码;在分组上点「新建」,打开的也是同一个编辑器窗口,内容是空的。两者的差别只在初始内容,窗口本身相同。

左侧分支树的分组名决定了新建时的默认归类。在「技术指标」这一支上点新建,编辑器里写出来的公式归在技术指标下;在「条件选股」那一支上点新建,归在条件选股下。分组点错,公式就落到了另一个分类里,代码本身没有问题。

打开窗口之后,窗口标题会带上当前编辑的公式名。新建时标题是空的或显示一个临时名,保存的时候再改成要用的名字。名字在这里改,比保存之后再回头重命名要少一步。

需要注意窗口是模态的:编辑器没关掉之前,主界面上的操作暂停。写完代码点「确定」,改动写回并关闭窗口;点「取消」,窗口里写的东西不作数。这两个按钮的位置在窗口底部。

从操作顺序上看这件事可以换个说法:通达信公式编辑器是公式库的写入口。列表里能读到的公式,都是从这个窗口写进去的;反过来,想改哪一支公式,也只能通过这个窗口。记住了这一点,就能理解为什么在别处看到的代码改不动列表里的内容,也能理解为什么窗口关掉之后列表没变化。

窗口里还有一处容易忽略:公式名称与说明。名称是列表里显示的那一行,说明是选中公式时旁边显示的备注。名称里带空格或特殊符号,列表显示与引用都会受影响;说明留空不影响运行,但下次自己回来看这支公式是做什么的,就要靠读代码。两处在保存时一起写回。

二、代码区与公式类型的对应

编辑器窗口里的代码区只有一个,但公式能归到哪一类,在打开窗口之前就已经由所在分组决定了。在技术指标分组下新建,写出来的是主图副图指标;在条件选股分组下新建,写出来的是选股条件。代码语法相近,可挂载的位置不同。

{ 同一段代码,归类不同,用法不同 }
MA5  := MA(C, 5);
MA20 := MA(C, 20);
SIG  : MA5 > MA20;
{ 归到技术指标,SIG 是可以画在副图上的一条线 }
{ 归到条件选股,SIG 是选股成立与否的判断条件 }

归错类别的后果是挂不上。条件选股公式不出现在主图的叠加列表里,技术指标公式也不会出现在选股器的条件来源里。写之前先想清楚这支公式要放在哪用,再选分组。

在编辑器里改完代码,如果要把公式挪到另一个分类下,先把内容整个复制出来,到目标分组下新建再粘进去。分开两次操作,比在原来那一支上反复改要省事,也不会留下一个挂不上的空壳。

三、参数表:填与不填的差别

编辑器窗口里除了代码区,还有一块参数表,按参数名、最小值、最大值、缺省值四列排开。这块表不是必须填的,但它决定参数能不能在图上的参数面板里调。

参数表状态 代码里怎么写 图上的表现
填了 把参数名写在公式开头,作为可调项 主图或副图上右键,参数面板里能改这几个值
没填 参数写成固定常数,或用赋值语句在开头定义 参数面板里没有这一项,改参数要回编辑器

填了参数表还有一个对齐要求:表里的缺省值要与代码开头的取值一致。两处写成不同的数,图上首次加载用的是参数表里的值,之后手动改过,再回到默认状态时用的是哪一处,要按本机版本的实际行为确认,不要凭印象。

最小值与最大值两列是给图上的参数面板做限位的。写窄了,面板里调到边界就停住,改不到想要的数;写宽了,误填一个超出范围的数也不会被拦,公式照样按那个数算,结果看着像画错了图。范围按这支公式实际可用的区间给,拿不准就先用较宽的范围,在图上试出合适值之后再收窄。

{ 参数与参数表对齐的写法 }
N  := 20;      { 参数表缺省值一栏写 20 }
M  := 5;       { 参数表缺省值一栏写 5 }
MA1 := MA(C, N);
MA2 := MA(C, M);
SIG : MA1 > MA2;

四、语法检查给的是什么

编辑器窗口底部有一个「测试公式」按钮,点下去会对当前代码做一次编译。编译不通过时给出报错信息与位置,通过时在输出区列出每个以冒号输出的变量的取值。

这里要说清它查的是什么范围。测试公式查的是语法层:变量有没有定义、括号有没有配对、分号有没有漏、函数参数个数对不对。它不查这支公式算出来的数对不对,也不查它在图上好不好看。语法过了但逻辑写错,测试一样显示通过。

输出区的取值是判断写法有没有生效的第一手材料。把参数改成另一个值,再看输出区的数值有没有跟着变,比直接把公式挂到图上要快。

测试按钮的另一处用途是排查空输出。代码写完了,输出区里一条线都没有,说明以冒号输出的变量一个都没通过编译,问题在语法层,与取值无关。这种情况下先看有没有用等号赋值把本该输出的变量写成了中间量,等号与冒号的区别在这里体现得最直接。

通达信公式编辑器里的测试与图上运行是两回事。测试在编辑器里跑,用的是当前可用的数据;图上运行还要看公式挂在哪、参数取多少、数据下载到什么程度。测试通过而图上没反应,问题落在挂载或数据这一侧,不在代码。

五、保存之后没出现,回查哪几步

公式保存了,但列表里或图上找不到,按下面的顺序回查。

第一步查分类。公式归在哪个分组下,去那个分组里找。新建的时候如果点在别的分组上,公式会落在那里,不是丢失。

第二步查名称与重名。公式名在同一分组下不重复,写了一个已经存在的名字,保存之后的归属要按本机版本的处理方式确认。取一个不容易与已有公式撞名的名字,能省掉这一步。

第三步查挂载与刷新。公式在列表里已经存在,图上看不到,回到主图或副图的右键菜单,在叠加或指标选择里把它选上;已经选过的,重新调用一次让它重画。

公式与备份文件落在安装目录的 T0002 下,备份目录是 gs_bak。编辑器里保存的改动写进的是这一层文件,如果换了安装目录或换了一台机器,公式列表要跟着文件一起搬过去,光看编辑器里的内容对不上。

编辑器不提供版本历史,确定之后旧代码就被覆盖了。改动之前把原代码整段复制到编辑器外存一份,改坏了能退回。恢复备份按备份目录整体的方式处理,不要只挑其中一个文件覆盖,避免公式库与备份对不上。

通达信公式编辑器的用法归纳起来就是一条顺序:先选对分类,再写代码,把该暴露的参数填进参数表,点测试公式确认语法,最后点确定保存并回到图上调用一次。漏掉哪一步,表现各不相同,按这条顺序回查就能对上号。

站内还有 通达信公式编写教程 的条目,通达信新手入门问答 收着上手阶段的问题,通达信公式报错与卡顿排查 讲编译不通过的分支,可对照查看。

本文只作技术研究口径,不涉及也不构成对任何标的的判断。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。