通达信公式导入同名覆盖的处理顺序,取决于「同名」这个词落在哪一层。名称、类型、分组三个要素里任何一个不同,导入动作就不会顶掉原有内容。把判定讲清楚之后,覆盖前怎么留底、覆盖后怎么取回,都是可以按步骤走的。

下面按导入时的确认动作、同名判定的三个要素、三种同名情形、覆盖前的留底方式、取回路径与最后一遍核对来写。文中的目录名与文件名以通达信 PC 版的常见结构描述,不同版本与券商定制版对公式数据的组织方式存在差异,请以你所用客户端实际目录为准。

一、按下确认之前,客户端在比对什么

导入一份公式文件时,客户端先把文件里的公式记录读出来,逐条与本地已有记录比对。比对的对象是公式名称与它所属的类型分支,两者都相同才算冲突,这时才弹出是否覆盖的询问。只名称相同而类型分支不同,客户端按两条不同的公式分别建立。

这一层机制解释了两个现象。一是同一个名字在指标类与条件选股类下可以同时存在,图上能看到曲线,筛选时也能用同一名字的算式。二是导入提示里出现覆盖询问时,说明文件里带的名称与本地某一条完全一致,此时按「否」不会中断整份文件的导入,其余的公式照常写入。

需要留意的是提示的层数。整份文件可能先问一次是否继续导入,每条冲突再各问一次。前一个问题针对文件,后一个问题针对单条记录。看清问的是哪一个,能避免把文件级的确认当成记录级的确认。

二、同名判定看三个要素

通达信公式导入同名覆盖的判定不看算式内容,只看名称与归属。算式写得一模一样但名称不同,两条记录会并存;名称相同而算式不同,才轮到覆盖询问。三个要素的作用如下。

要素 取值来自哪里 对导入的影响
公式名称 导出文件里记录的公式名 与其他要素共同决定是否触发覆盖询问
公式类型 导出时记录的类型分支,如指标、条件选股、交易系统 类型不同即视为两条记录,不冲突
所属分组 本地管理器里的分组文件夹 分组属于本地组织方式,一般不随文件走

第三行的结论值得单独说一句。分组是你在自己机器上给公式排的位置,导入时客户端要先决定把这条记录放进哪个分组。文件里记录的分组名在本机不存在时,记录仍然会写入,只是落到默认位置。这也解释了「导入成功却找不到」这类现象:记录已经写入,只是没有出现在你习惯打开的那个分组里。

三、三种同名情形与各自的结果

把上面的判定套到实际操作中,会遇到三种情形,处理动作互不相同。

第一种是名称与类型都相同,算式不同。这是覆盖询问真正要处理的场景。选覆盖,本地原记录被新算式替换;选不覆盖,本地原记录保留,文件里的这一条被跳过。

第二种是名称相同,类型不同。导入不触发询问,两条记录分别落在各自的类型下。此时管理器的不同分支里会出现同名条目,看名字分不清哪一个,需要靠分组或备注区分。

第三种是文件里的名称带上了批次后缀或日期,例如在原名后面加了数字。名称不同即不冲突,导入之后本地会多出一条几乎重复的公式,两条的内容可能只差一个参数。这类重复不会报错,清理时只能靠人工比对算式。

四、覆盖之前留一份底

通达信公式导入同名覆盖一旦选错,代价是本地的算式被替换掉。自编公式的数据文件位于客户端安装目录下的 T0002 文件夹,自编公式的数据集中在其中的 PriGS.dat 这类数据文件里;同目录下的 gs_bak 是客户端自己维护的一份公式数据备份。

覆盖前留底有三个可选的层级,成本从低到高。

  • 单条留底:在公式管理器里选中要被动到的那一条,用导出功能生成一份导出文件,落在一个独立文件夹里。适合只导入一两条、且已经知道哪一条会被顶掉的情况。
  • 整目录留底:关闭客户端,把 T0002 文件夹整体复制一份,文件名里带上日期。适合批量导入、或者不确定会顶到哪几条的情况。
  • 借助自带备份:先确认 gs_bak 里的内容是不是覆盖前的状态。它是客户端按自己的节奏生成的,与你当前要进行的操作未必紧邻,因此只能作为兜底,不作为主要留底手段。

复制目录这一步要在客户端退出之后做。客户端运行期间公式数据文件处于占用状态,复制出来的副本可能是不完整的。判断副本是否可用的方法很简单:看文件大小是否为零,以及复制过程中有没有出现被跳过的提示。

五、覆盖之后怎么取回

已经覆盖了,能不能取回取决于留底做到了哪一层。

有单条导出文件的,直接在公式管理器里把那份文件重新导入一次,选择覆盖,原来的算式就回来了。这是最直接的一条路径,前提是导出文件是在覆盖之前生成的。

有整目录副本的,退出客户端,把副本里的数据文件复制回 T0002 覆盖现有文件,再启动客户端。这样会把覆盖之后新导入的内容一起回退掉,所以复制前建议先把当前状态再另存一份。

两种留底都没有,就只能看 gs_bak。若其中的备份时间早于覆盖动作,恢复后回到的是那个时间点的状态,覆盖前后新增的改动都不在。如果 gs_bak 的时间晚于覆盖,恢复动作不会把丢失的算式找回来。

恢复动作的本质是把整份公式数据替换成某个时间点的副本,它不区分「要恢复的那一条」与「之后新加的几条」。执行之前先确认副本的时间戳,再决定要不要撤回。

六、按顺序走一遍

把通达信公式导入同名覆盖这件事固定成一套动作,可以减少事后取证。

  1. 确认要导入的文件里包含几条公式、各自叫什么名字。用文本编辑器打开看一遍比导入后逐个对照省事。
  2. 在公式管理器里按名称搜一遍,看本机有没有同名记录,以及它们分别在哪个类型下。
  3. 只对确实冲突的记录做单条导出留底;冲突范围不确定时改做整目录复制,复制前先退出客户端。
  4. 导入时逐条看清询问针对的是文件还是单条记录,冲突记录按实际需要选择是否覆盖。
  5. 导入完成后,按名称再搜一遍,确认条目数量与预期一致,没有多出带后缀的重复项。

最后一步还可以加一个验证动作:给被动过的公式挂到图上或放进条件选股跑一次,看输出的数值与算式是否与预期相符。数量对得上只说明记录写进去了,数值对得上才说明写进去的是正确的那一条。

导入与安装相关的其他环节,例如目录该放哪里、文件后缀各自代表什么,见 通达信公式安装与导入 一栏;导入之后出现异常提示的排查顺序,见 报错与卡顿排查 一栏;把公式交给别人时该怎么导出与说明,见 跨平台对比与公式转换 一栏。

还有一类公式不适用这套留底逻辑:只存在于云端账号里的公式。它们的记录在账号侧,本地 T0002 目录里没有对应的数据文件,整目录复制带不走它们。这类公式在覆盖前能做的只有一件事,就是先把它导出成本地文件。云端与本地两套记录各自维护,覆盖判断发生在哪一侧,要以你导入时选中的位置为准。

如果你只记一件事,记住这个判断:问的是「要不要覆盖」,先回答的应该是「这一条覆盖掉之后我还能不能拿回来」。拿不回来就先做一次单条导出,两分钟的动作能省掉后面一整轮的重新编写。

文中目录名与文件名按通达信 PC 版的常见结构描述;不同版本与券商定制版对公式数据的组织方式、覆盖询问的出现时机与措辞存在差异,具体请以你所用客户端的实际界面与帮助文档为准。本文只讨论文件与操作层面的机制,不构成任何投资建议。

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