通达信涨跌停标注公式的第一步是把涨跌停价算准,画图排在后面。涨停价不是把前收盘随手乘一个数就完事:它要先按标的所属板块取对应的倍数,乘完再四舍五入到分。标注只是把一个已经算准的判定结果画到 K 线上,判定错了,图上的记号就跟着错。下面按计算口径、判定口径、标注写法、计算式、失效情形、复盘取数六个环节往下讲。

一、涨跌停价的计算口径与分档

涨跌停价的计算对象是前收盘价,方式是用前收盘价乘一个倍数,再把结果四舍五入到分。这个倍数按标的所属板块取值,属交易所公开的交易规则,不由行情统计得出。

把常用的分档列成一张表,倍数写成小数。

板块 / 身份 涨停倍数 跌停倍数
主板 1.1 0.9
创业板、科创板 1.2 0.8
北交所 1.3 0.7
风险警示类 1.05 0.95

表的读法:涨停价等于前收盘乘涨停倍数,跌停价等于前收盘乘跌停倍数,四舍五入保留两位小数。同一个前收盘在 1.1 与 1.05 两档下算出的涨停价不同,这是身份变动时判定门槛会跟着移动的原因。

分档不要写死成常量。标的从普通主板转到风险警示身份,倍数由 1.1 切到 1.05,判定门槛随之下移;把 1.1 写死,身份切换后的结果就与规则值对不上。做法是把倍数提成参数,按当日身份取值。

二、「触及」与「收盘封住」两个判定口径

价格算准之后,第二个要定的是拿哪个价位去比。通达信涨跌停标注公式里可以挂两条判定线,一条看盘中触及,一条看收盘封住,两者的结果集并不重合。

触及口径拿当日最高价与涨停价比、最低价与跌停价比:最高价大于或等于涨停价,视为当日到达过涨停;最低价小于或等于跌停价,视为到达过跌停。这条线回答的是「盘中是否摸到过」。

收盘封住口径拿收盘价与涨跌停价比:收盘价大于或等于涨停价,视为当日收在涨停;收盘价小于或等于跌停价,视为当日收在跌停。这条线回答的是「价格最终停在哪一端」。

{两个口径的比较对象}
口径        比较对象                     回答的问题
触及        最高价 / 最低价 对 涨跌停价    盘中是否到达过
收盘封住    收盘价 对 涨跌停价            收盘是否停在那一端

两条线都留,是有意的设计。盘中摸到涨停而收盘回落的交易日,触及线会亮、收盘线不亮;两条都不亮,说明当日价格没有进入任何一端。只保留一条,就要先讲清这条在回答哪一个问题。

比较符号决定边界。写成大于,价格恰好等于涨停价的交易日不进结果集;写成大于或等于,进。价格可以正好停在涨停价上,贴近规则值的一侧用大于或等于更贴合实际。

三、标注写法:DRAWTEXT 与 STICKLINE

判定出来了,接下来是在 K 线上做记号。通达信涨跌停标注公式的标注部分用两个函数:DRAWTEXT 负责写字,STICKLINE 负责画柱。显示上站内沿用红涨绿跌,涨停用红色,跌停用绿色。

DRAWTEXT 的写法是「在满足条件的那根 K 线上,于指定价位写一段文字」。把涨停判定作为条件、最高价作为落笔价位,文字写成标记词,末尾接颜色修饰;跌停把条件换成跌停判定、价位换成最低价。

STICKLINE 的写法是「在两个价位之间画一段柱体」,参数依次是条件、起价、止价、宽度、空心标记,末尾同样接颜色修饰。用它把收盘封住的交易日画成短柱,红色对应涨停、绿色对应跌停,与 DRAWTEXT 的文字标记叠在同一根 K 上。

{涨跌停标注:分档倍数 + 两个口径 + 红涨绿跌}
ZTK := 1.1;   DTK := 0.9;                 {主板倍数,其余板块按分档表改}
ZTJ := ROUND(REF(C,1) * ZTK, 2);          {前收盘取前一根,四舍五入到分}
DTJ := ROUND(REF(C,1) * DTK, 2);
CJ_ZT := H >= ZTJ;   CJ_DT := L <= DTJ;   {口径一:盘中触及}
SB_ZT := C >= ZTJ;   SB_DT := C <= DTJ;   {口径二:收盘封住}
DRAWTEXT(CJ_ZT, H, '涨停'), COLORRED;      {触及写文字}
DRAWTEXT(CJ_DT, L, '跌停'), COLORGREEN;
STICKLINE(SB_ZT, O, C, 3, 0), COLORRED;    {封住画柱}
STICKLINE(SB_DT, O, C, 3, 0), COLORGREEN;

颜色修饰写在语句末尾,用逗号接在分号之前。修饰符的具体写法以本机函数说明为准,不同版本对颜色常量的支持范围有差异,改完让公式重新测试一次即可。

标注只改变显示,不改动结果集。

四、计算式的写法与两处笔误

把计算式落到源码,核心是两件事:前收盘怎么取,结果怎么进舍入。前收盘用 REF 取前一根,写成 REF(C,1);涨跌停价在前收盘上乘倍数,再交给 ROUND 保留两位小数。

写成公式就是 ROUND(REF(C,1)*1.1,2) 与 ROUND(REF(C,1)*0.9,2) 这两条。REF 的第二个参数 1 表示往前取一根,与前一交易日对齐;ROUND 的第二个参数 2 表示保留两位小数。两处参数都写对,算出的价格才与规则值一致。

两处笔误要绕开。一是用截断代替四舍五入,比如把结果直接取整、砍掉小数位,价格会偏低一分,边界那天的判定就漏掉;二是把 REF(C,1) 写成 REF(C,2) 或直接写 C,前收盘取错一根,乘出来的门槛整体偏移。两处都不会报语法错,只在结果集上表现为多一条或少一条。

「一分钱误差」的来源就在这里:前收盘乘倍数得到的值未必落在整分上,四舍五入把它挪到邻近的分位。挪动方向决定涨停价是抬高一档还是压低一档;收盘价恰好落在原值附近时,判定会随这一分翻转。舍入方式统一为 ROUND 到分,误差来源就被收拢到一处。

五、失效与例外:几类必须提前处理的情形

价格与倍数都写对,结果仍可能与肉眼判断不一致。下面几类情形要在公式里处理,或读结果时剔除。

{失效情形与处理方向}
1. 除权除息 : 前收盘被摊薄,跨除权日不可比 → 先核对复权口径
2. 上市初期 : 新股头几日不设涨跌幅 → 该区间无有效判定
3. 部分板块 : 上市前几日不设涨跌幅 → 起始段单独标注
4. 停牌复牌 : 复牌首日前一根非相邻交易日 → 时间轴断开
5. 身份变动 : 风险警示身份切换,倍数改变 → 按当日身份取倍数
6. 一分钱误差 : 四舍五入落点 → 与规则值逐笔对一遍

除权除息是第一类。前收盘在除权日被摊薄,用未复权数据算出的涨跌停价与当日实际门槛对不上,比较随之失真;处理方向是先确认复权口径,把跨除权日的比较隔开。

新股与部分板块在上市初期不设涨跌幅,这段价格不受倍数约束。公式在这一区间不必给出判定,做法是把起点段单独排除,或按上市天数做过滤。

停牌复牌会让时间轴断开。复牌首日前的一根 K 线不是相邻交易日,REF 取到的是停牌前的收盘,拿它算涨跌停价没有意义。处理办法是在复牌处跳过,或在记录里注明这一段。

风险警示身份的变动会切换倍数。身份生效当日用于计算的前收盘属于前一个身份区间,倍数却要按当日身份取,两者错配会让门槛偏差。做法是按身份生效日期分段取值。

六、复盘用法:取数与逐日核对

标注做完,复盘环节把它落到数据上。DRAWTEXT 与 STICKLINE 只负责在图上显示,同样的条件还可以导出成一组记录,把满足判定的交易日逐条列出来。

导出后按日期排成一张表,每行记录交易日、当日最高价与最低价、收盘价、前收盘,以及按倍数算出的涨停价与跌停价。用这一行的数值回代一遍比较符号,就能判断当日的记号对不对。

核对顺序固定下来:先看除权除息日,再看上市初期与复牌日,末尾看普通交易日。前几类处理干净之后,普通交易日的分歧会收到一分钱舍入上,按分位复算一遍即可。整张表只记事实,不夹走势上的推断。

通达信涨跌停标注公式能不能用,取决于判定口径与板块倍数这两处有没有交代清楚;口径不写清、倍数写死,图上的记号就只是一堆与规则值对不上的色块。

本文只作技术研究口径,不涉及也不构成对任何标的的判断。

站内还有 复盘方法与数据工具 的条目,通达信主图副图指标 里讲挂载与输出渲染,通达信公式编写教程 里讲语法与函数引用,可对照查看。

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