通达信函数速查表按计算类别分组,比按字母顺序排列更好用。写公式时卡住的地方集中在「求一段区间内的最大值」这件事归哪一类、对应的函数是哪几个。按用途查比按名字查快一步。
下面按统计与平滑、极值与位置、引用与条件、绘图与输出四组整理常用函数。本文只列函数名、用途与使用要点,参数的具体个数与取值范围以你所装那版的函数说明为准,各版本之间有过调整。文中不涉及任何标的的判断。
一、为什么按计算类别分组
按字母排的表适合已知道名字、只想确认拼写的场景。写公式时的实际场景是反过来的:先有一个运算需求,再去找名字。按类别分组正好对应这个方向。
另一层原因是同类函数之间容易互相替换。求一段区间的极值,用 HHV 与用循环写法都能实现,区别在可读性与计算量。把它们放在同一行里,替换时的取舍就一目了然。
分组还有一个附带好处:写错了能按组排查。输出不对时先确认这一类运算有没有用错组,把极值类函数用在求和的位置上,编译可能通过,但输出的量纲与原意不符。按组核对比逐行通读快。
| 组别 | 回答的问题 | 典型函数 |
|---|---|---|
| 统计与平滑 | 这一串数的平均水平与波动是多少 | MA、EMA、SMA、SUM、STD |
| 极值与位置 | 这段区间里的高点和低点在哪 | HHV、LLV、HHVBARS、LLVBARS |
| 引用与条件 | 取历史值、判断成立与否 | REF、CROSS、COUNT、EVERY、IF |
| 绘图与输出 | 在图上画出标记与文字 | DRAWTEXT、DRAWICON、STICKLINE |
二、统计与平滑类
这一组处理的是数值序列的整体特征。名字里带 MA 的都属平滑,区别在权重分配方式。
| 函数 | 用途 | 使用要点 |
|---|---|---|
| MA(X,N) | N 周期简单平均 | 权重均等,对最新一根的响应较慢 |
| EMA(X,N) | N 周期指数平均 | 近期权重更高,转折更快 |
| SMA(X,N,M) | 带权重参数的平滑 | 比 MA 多一个参数,注意参数个数 |
| SUM(X,N) | N 周期求和 | 常用于累计量能 |
| STD(X,N) | N 周期标准差 | 用于衡量离散程度,量纲与原序列相同 |
{ 同一段数据的三种平滑写法,形态不同 }
A:MA(CLOSE,20);
B:EMA(CLOSE,20);
C:SMA(CLOSE,20,1);
三条曲线放在一张副图上,能直接看出权重分配带来的差别。EMA 在转折处更贴近价格,MA 更平滑,两者没有优劣,取决于要看什么。
参数 N 的写法上有一处细节:写成 MA(CLOSE,N) 时 N 是变量,改参数栏就能生效;写成 MA(CLOSE,20) 时 20 是常量,改参数栏无效。速查表里看到的三参数形式 SMA(X,N,M),中间的 N 是周期,最后的 M 是权重,两者不要填反。
三、极值与位置类
这一组回答的是区间内的极值及其位置。位置类函数的返回值是「距当前多少根」,而不是具体的时间点。
| 函数 | 用途 | 返回值含义 |
|---|---|---|
| HHV(X,N) | N 周期内的最高值 | 数值本身 |
| LLV(X,N) | N 周期内的最低值 | 数值本身 |
| HHVBARS(X,N) | 最高值距当前多少根 | 根数 |
| LLVBARS(X,N) | 最低值距当前多少根 | 根数 |
把两组混用时要留意量纲。写成 HHV(HIGH,20)-HHVBARS(HIGH,20) 是数值减根数,结果没有含义。位置类函数要与 REF 配合使用,例如用 REF(CLOSE,HHVBARS(HIGH,20)) 取到最高点那根的收盘价。
通达信函数速查表里「返回值含义」一列值得多看几眼。同为极值类,HHV 返回数值、HHVBARS 返回根数,两个函数名只差四个字母,用途却完全不同。靠名字区分容易出错,靠返回值含义区分不会。
四、引用与条件类
这一组是公式逻辑的骨架。引用类取历史值,条件类做判断与计数。
| 函数 | 用途 | 使用要点 |
|---|---|---|
| REF(X,N) | 取 N 周期前的值 | N 为正表示向前取,数据不足时返回空值 |
| CROSS(A,B) | A 上穿 B 的那一根 | 输出 0 或 1,可直接用于条件 |
| COUNT(X,N) | N 周期内 X 成立的次数 | 返回值是次数,可与阈值比较 |
| EVERY(X,N) | N 周期内 X 是否一直成立 | 输出 0 或 1 |
| BARSLAST(X) | 距上次 X 成立经过多少根 | 从未成立时返回空值 |
{ 条件计数与最近一次成立的间距 }
N: 20 (1, 250, 1)
条件:=CROSS(MA(CLOSE,5),MA(CLOSE,20));
成立次数:COUNT(条件,N);
距今根数:BARSLAST(条件);
第三行的 BARSLAST 在区间内从未成立时会返回空值,曲线上表现为断开。这是正常的返回值行为,不是公式写错。
条件类函数的输出可以直接相加减。把两个条件相加,得到的是它们成立根数的合计;把两个条件相乘,得到的是同时成立的根数。这一层用不着专门的函数,表达式本身就能完成,速查表里因此没有单列这一类。
五、绘图与输出类
绘图类函数只影响显示,不参与数值计算。放在速查表的最后一组,是因为它们可以后加,不影响前面的逻辑。
| 函数 | 用途 | 使用要点 |
|---|---|---|
| DRAWTEXT(X,PRICE,TEXT) | 在满足 X 的位置写文字 | 文字内容用单引号包裹 |
| DRAWICON(X,PRICE,TYPE) | 在满足 X 的位置画图标 | TYPE 为图标编号 |
| STICKLINE(X,P1,P2,W,F) | 在满足 X 的位置画柱 | 常用于把某段区间标出来 |
绘图函数会随条件成立位置的数量增加而增加绘制量。把 DRAWICON 挂在成立次数较多的条件上时,图面上会出现密集标记,读数反而变难。位置少、含义明确的条件更适合配绘图函数。
通达信函数速查表的五组加起来覆盖了公式里常见的几类运算。剩下的是与本机数据相关的接口,例如动态行情取值与扩展数据引用,它们不属于通用的计算类别,用到时按函数说明单独核对即可。
通达信函数速查表的用法就是这样:先在组别里定位需求属于哪一类,再在组内挑名字,最后用函数说明核对参数。三步走完,写公式时卡住的时间会明显缩短。
本文只整理函数的分类与用途,不涉及具体标的的判断,也不构成对任何公式效果的承诺。站内还有 公式编写与语法函数 里讲表达式与参数表的条目、指标原理与参数 里讲参数含义的条目、公式报错与卡顿排查 里讲编译提示原文的条目,可对照查看。
