通达信公式报错怎么办?未知字符串、括号和引用错误排查

通达信公式未知字符串和常见报错排查教程封面

最后更新:2026年8月21日。通达信公式测试报错时,不要一看到“未知字符串”就删除整行。错误提示通常会给出错误位置或附近代码,正确做法是先保留原稿,再从标点、括号、变量、函数和引用关系逐层排查。

修改前先复制一份测试版,避免把唯一可用的公式覆盖掉。若公式来自文件或网页,可先参考通达信公式导入与源码安装教程

一、先看错误位置,不要盲目改

公式测试窗口通常会提示错误起始位置、长度或附近表达式。先定位该位置,再向前检查一行,因为真正缺失的括号、分号或运算符常出现在提示位置之前。

建议每次只改一个问题,重新测试后再处理下一处。一次性大改会让新错误和旧错误混在一起。

二、“未知字符串”常见原因

  • 函数不受当前版本支持:公式可能来自其他软件、较新版本或特定行情权限。
  • 缺少引用公式:源码调用了另一个指标,但配套公式没有一起导入。
  • 名称输入错误:变量、函数或引用名称多了空格,或者相似字符被复制错。
  • 网页格式污染:代码中混入不可见空格、HTML 字符或全角标点。
  • 专用字段不可用:公式依赖扩展行情、专业财务数据或外部模块。

三、全角标点和特殊空格

中文网页复制最容易把英文标点变成全角字符。重点检查:

错误示例:A:=MA(CLOSE,5);
正确示例:A:=MA(CLOSE,5);

冒号、等号、括号、逗号和分号应使用公式语言认可的英文符号。若肉眼看不出差异,可把报错行重新手工输入。

四、括号、分号和运算符错误

嵌套函数容易漏掉右括号。可以从最内层开始逐对检查:

A:=MA(CLOSE,5);
B:=MA(CLOSE,20);
XG:CROSS(A,B) AND CLOSE>A;

每个赋值或输出语句通常以分号结束。两个条件之间要有 AND、OR 或其他运算符,不能直接并排书写。

五、赋值和输出写法混淆

写法 用途
A:=MA(CLOSE,5); 定义中间变量,通常不直接输出
A:MA(CLOSE,5); 输出一条指标线,适合主图或副图
XG:CROSS(A,B); 输出选股条件,适合条件选股公式

把带多条绘图输出的副图源码直接粘贴到条件选股分类,可能测试不通过或无法得到唯一选股结果。需要先理解主图、副图和选股公式的区别

六、引用公式缺失怎么判断

如果代码中出现当前源码没有定义的名称,它可能是外部引用。检查下载说明和公式包是否包含配套主图、副图、选股或排序公式。只拿到其中一段时,不能通过随意删除引用来保证原逻辑不变。

七、同名公式和公式重名

导入时提示同名,先把原公式导出备份。若只是测试新版本,建议改成带日期或版本号的名称;确认完全替代后再清理旧版本。不要在不知道差异时直接全量覆盖。

八、公式测试通过但运行不正常

  • 条件选股结果为零:检查最终输出、周期、参数和行情数据。
  • 结果异常多:逐个关闭组合条件,确认每一项是否真正生效。
  • 历史信号移动:检查未来函数、当前未收盘K线和信号漂移
  • 手机端不支持:电脑版与手机版的函数和同步能力可能不同。
  • 两台电脑不同:比较公式版本、数据、复权、范围和运行时间。

九、最快的分段调试方法

  1. 保留原公式,不直接覆盖。
  2. 把最终输出临时改成第一个基础条件。
  3. 测试通过后逐项加入后续条件。
  4. 每增加一项,记录结果数量是否符合预期。
  5. 找到出错条件后,单独检查函数、参数和引用。

语法学习可继续查看通达信选股公式常用函数与实例;修复后可按条件选股器使用教程运行并复核。

风险提示:语法测试通过只表示公式能够计算,不表示逻辑有效或具备稳定收益。本文不构成投资建议。