通达信公式源码导出的第一步是分清要导出的是「文件」还是「文本」。前者是客户端能直接装进去的载体,后者是可以贴进编辑器的一段字符。两者用途分明,选错会多出一次往返。
下面按出口在哪、三种形态的差别、按接收方来选、导不出去的几种情况,以及交接时要一并交代的内容来写。文中涉及的文件扩展名与菜单项按通达信 PC 版的常见结构描述,不同版本与券商定制版在导出入口的位置和扩展名处理上存在差异。
一、导出动作的入口与产物
导出入口在公式管理器里。选中一条公式后,右键菜单或工具栏上有导出项,选择之后会要求指定保存位置与文件名。产物是一份公式文件,客户端能识别它并把里面的公式记录装进管理器。
把同一份算式直接复制粘贴出来,得到的是纯文本。这条路径不经过管理器的导出功能,产物没有固定格式,就是一段可以被编辑器打开的字符。两种做法得到的都是「这条公式」,区别在于接收方要用什么方式把它装回去。
还有一类产物介于两者之间:把若干条公式一起打成一份文件。列表里选中多条之后导出,得到的是包含多条记录的集合,接收方一次导入就能全部装进去。
二、三种形态的对照
| 形态 | 一份文件装几条 | 接收方怎么用 | 算式是否可见 |
|---|---|---|---|
| 单条导出文件 | 一条 | 在管理器里导入,落到对应类型分支 | 可见,取决于原公式是否加密 |
| 多条打包文件 | 若干条 | 一次导入全部装入,逐条处理同名冲突 | 同上 |
| 纯文本算式 | 一条 | 在管理器里新建公式,粘贴后保存 | 可见,且可以逐句改 |
第三列的差别会决定接收方要不要重新选类型。用文件导入时,类型跟着文件里记录的值走;用文本粘贴时,类型由接收方在新建对话框里选择,选错就会落到别的分支。把类型写进交接说明,能避免这一处偏差。
三、按接收方来选
通达信公式源码导出的形态选择,判据是接收方的操作习惯设备与环境。
接收方用的是同一套客户端、只是想复制一份留底,用单条导出文件即可,产物可以在管理器里直接导入,不需要对方理解算式内容。
接收方要把这份公式装进另一台机器或多台机器,用打包文件。一次装完,省去逐条导入的动作。导入前提醒对方先做一次目录留底,遇到同名记录时才有退路。
接收方要读懂或继续修改这段算式,用纯文本。文本形态没有类型信息,需要另附一段说明,写明它是哪一类公式、参数缺省值是多少、有没有依赖外部文件。关于算式里各段结构怎么读,见 公式编写教程 一栏。
四、导不出去的情况
有两类公式在导出源码这件事上会遇到障碍。
第一类是设置了导出限制的公式。作者在保存时勾选了限制项,导出动作仍然能生成文件,但文件里的算式部分不可见,接收方导入后只能看到曲线或结果,无法读取写法。这类限制的机制与实际表现,见 新手入门问答 一栏里关于加密的说明。
第二类是依赖外部文件的公式。算式里调用了外部动态库的公式,导出的文件只包含算式本身,动态库文件不在里面。接收方导入之后算式能装进去,运行时找不到外部文件。交接这类公式时,必须把动态库文件一并给出,并说明它要放在客户端的哪个目录下。
五、导出之后先在本机自检一次
通达信公式源码导出之后,先别急着发出去。在心里把它当成一条陌生公式,走一遍接收方要走的路,能提前发现多数缺漏。
自检的环境要与接收方的环境足够远。同一条公式在你本机上一直能用,说明不了文件是完整的,因为本机的目录里可能早就存在它依赖的那些东西。换一台没装过的机器,或者先在管理器里把这条公式删掉再导入,环境差异才显出来。
自检的内容按三层推进:导入是否能完成、导入之后是否能运行、运行结果是否与预期相符。第一层看条目数量,第二层看是画出了曲线还是给出了名单,第三层拿一个已知区间的数据核对输出的数值。三层都过,才说明这份导出文件可以交付。
有一类偏差在这三层里都不出现,就是参数缺省值。导出文件带着参数值走,导入之后对方看到的是一组确定的数值;如果你希望对方自己填,交接时要说明,否则对方会以为这组值就是你推荐的取值。这不是错误,是一处需要口头补齐的信息。
六、交接时一并交代的四项
只给一份文件,接收方要花时间试探。把下面四项写进交接内容,往返次数会明显下降。
- 类型与分组。写明这条算式属于哪一类公式,建议放在哪个分组。类型决定它在图表上的去向,分组决定它在管理器里的位置。
- 参数与外露情况。写明哪些数值是通过参数表调整的、缺省值是多少。参数没有外露的部分要单独说明,避免接收方在算式里反复找。
- 依赖项。有没有调用外部动态库、有没有读取自定义数据或扩展数据、有没有用到其他自编公式。这些依赖不随导出文件走,需要逐个列清。
- 验证方式。写明装上之后怎么确认它工作正常,例如挂到主图看是否出现曲线、放进条件选股看结果数量是否与说明一致。
把公式交给别人这件事,还有一层需要提前想清楚:文本形态的算式一旦发出,接收方可以任意修改,改动后的版本与你手上的版本会分叉。若后续还要维护同一个逻辑,建议在交接时就约定一个版本标记方式,例如在算式开头的注释行里写明日期与适用版本,将来对照时不必靠记忆。
导出的产物落到哪个目录、与目录留底和迁移的关系,见 通达信公式安装与导入 一栏;换到另一个平台的公式体系时要改哪些地方,见 跨平台对比与公式转换 一栏。
七、导出与备份不是同一件事
两个动作都产生文件,目的却不同。导出是为了把某一条或某几条公式交出去,产物是面向交付的,粒度是公式。备份是为了在数据被改动或文件损坏之后能退回,产物是面向恢复的,粒度落在整个自编公式数据目录上。
把导出当成备份会遇到两种情况。第一种是要恢复的那一条早已被覆盖或删除,导出文件只覆盖了你当初选中的那条,其余部分回不来。第二种是恢复之后分组全乱,因为导出文件里不带本机的分组结构,逐条导入只能按默认位置落。
反过来,把备份当成导出也不合适。整目录副本里带着你这台机器的全部分组与全部自编公式,交给别人等于把所有内容一起交出去。面向恢复与面向交付的两类产物,建议分别存放,文件名带上用途与日期,取用时不会拿错。
交付前把这份文件当作一条陌生公式走一遍:装得进、跑得出、数值对得上。三步走完再发出去。通达信公式源码导出的形态选择,落到执行上就是这三个动作。
文中扩展名与菜单项按通达信 PC 版的常见结构描述;不同版本与券商定制版在导出入口位置、扩展名处理与外部依赖的组织方式上存在差异,具体请以你所用客户端的实际界面与帮助文档为准。本文只讨论文件格式与交接流程,不构成任何投资建议。
