通达信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与零值区别。
五、输出报错的核对清单
- 确认当前在技术指标还是条件选股分类,保留完整错误提示。
- 找出真正的命名输出声明,不把注释、字符串里的冒号算进去。
- 区分数值调试输出、绘图语句和最终条件,不以可见曲线数量替代结构检查。
- 把必要的中间计算改为赋值,保留最终条件输出,逐次重新校验。
- 在相同品种、周期与样本下比较改前改后的中间值,确认没有改变原条件。
基础入口见通达信教程中心;类型选择见主图、副图与条件选股区别;名称和语法提示见公式报错排查。
来源与限制
原始依据:通达信用户红宝书NODRAW、冒号输出和:=赋值条目。示例只用于理解结构,未核验复杂资源包、所有输出类函数或跨版本表现,不承诺编译通过、胜率或收益。




