通达信NODRAW为什么还显示数值?隐藏线、赋值与输出数量排查

NODRAW隐藏线与中间赋值的原创对照示意,非软件截图
原创输出结构示意,非通达信客户端截图。

发布日期:2026年10月12日。给一条线加NODRAW后,绘图区不画线了,为什么输出数值还在?因为“不画这条线”与“把它变成中间变量”不是同一件事。若排查选股公式的输出数量,不能只数屏幕上能看见几条曲线。

适用环境:支持NODRAW、冒号输出与:=赋值的通达信公式编辑环境。官方红宝书说明NODRAW不在指标区显示;有输出线名时仍显示在输出线行。下文为原创结构示例,未做客户端实测,不保证每种公式分类和手机版界面都相同。

一、先分清三个层次

写法 结构含义 不能混淆为
A:CLOSE; 命名输出 只在内部使用的变量
A:CLOSE,NODRAW; 带隐藏绘图样式的命名输出 已经取消输出
A:=CLOSE; 内部赋值 自动新增一条命名输出

冒号后是否紧跟等号改变的是结构;NODRAW改变的是显示行为。这里的A只是教学标签。修改实际公式前,应先备份并确认后续表达式是否依赖它。

二、三个小例子看输出数量

原始测试指标有两个数值输出和一个条件输出:

FAST:MA(CLOSE,3);
SLOW:MA(CLOSE,5);
XG:FAST>SLOW;

为FAST与SLOW加上NODRAW:

FAST:MA(CLOSE,3),NODRAW;
SLOW:MA(CLOSE,5),NODRAW;
XG:FAST>SLOW;

两条曲线隐藏了,但源码仍声明FAST、SLOW、XG三个命名输出。若目的是在要求单一条件输出的环境中使用,应把中间计算明确改为赋值:

FAST:=MA(CLOSE,3);
SLOW:=MA(CLOSE,5);
XG:FAST>SLOW;
示例 命名输出数量 重点
原始 3 包含两个数值与一个条件
加NODRAW 3 隐藏不改变冒号输出声明
中间改赋值 1 保留依赖,只输出XG

这张表只统计上述简单源码的命名输出,不是完整公式语言解析器,也没有说明图表是否还会绘制最终条件线。选股分类的实际校验提示仍需在当前编辑器确认。

三、把调试输出和最终输出分开

排错时临时输出FAST、SLOW有助于检查数据,但调试完后不能忘记自己所在的公式分类。建议保留一份多输出技术指标副本查看中间值,另保留最终条件副本;两份的计算定义、参数和周期应一致。

不要一次把所有冒号全局替换为:=:这会连XG也变成赋值,使最终输出消失。也不要直接删除FAST和SLOW的计算,否则XG失去依赖,产生新的名称错误。

四、NODRAW与DRAWNULL不要互换

NODRAW是显示控制;DRAWNULL返回无效数。把表达式替换成DRAWNULL会改变该位置的数据值,不是在原值上做“隐藏”。如果下游逻辑需要使用原始数值,这样改写可能改变计算含义。条件线不输出数值的场景可看DRAWNULL与零值区别。

五、输出报错的核对清单

  1. 确认当前在技术指标还是条件选股分类,保留完整错误提示。
  2. 找出真正的命名输出声明,不把注释、字符串里的冒号算进去。
  3. 区分数值调试输出、绘图语句和最终条件,不以可见曲线数量替代结构检查。
  4. 把必要的中间计算改为赋值,保留最终条件输出,逐次重新校验。
  5. 在相同品种、周期与样本下比较改前改后的中间值,确认没有改变原条件。

基础入口见通达信教程中心;类型选择见主图、副图与条件选股区别;名称和语法提示见公式报错排查。

来源与限制

原始依据:通达信用户红宝书NODRAW、冒号输出和:=赋值条目。示例只用于理解结构,未核验复杂资源包、所有输出类函数或跨版本表现,不承诺编译通过、胜率或收益。