行情与数据函数
公式离不开「数据」——行情的价量、历史的引用、序列的统计。本章把通达信里最常用的数据类函数归成几组, 写公式时按需取用。
一、行情数据(开高低收量)
最基础的原料,每根 K 线一组值:
| 函数 | 含义 |
|---|---|
CLOSE / C | 收盘价 |
OPEN / O | 开盘价 |
HIGH / H | 最高价 |
LOW / L | 最低价 |
VOL / V | 成交量(手) |
AMOUNT | 成交额(元) |
实体: CLOSE - OPEN; { K 线实体大小 }
振幅: (HIGH - LOW) / REF(CLOSE,1) * 100; { 当日振幅 % }
二、历史引用 REF
REF(X, N) 取 X 在 N 周期前的值——访问历史最常用的函数。
昨收: REF(CLOSE, 1);
前高: REF(HIGH, 10); { 10 根前的最高价 }
涨跌: (CLOSE - REF(CLOSE,1)) / REF(CLOSE,1) * 100; { 涨跌幅 % }
三、序列统计(最值 / 求和 / 均值)
| 函数 | 含义 |
|---|---|
HHV(X, N) | 过去 N 周期 X 的最高值 |
LLV(X, N) | 过去 N 周期 X 的最低值 |
SUM(X, N) | 过去 N 周期 X 的累加和 |
MA(X, N) | 过去 N 周期 X 的简单均值 |
经典用法——N 日新高:
新高: HIGH >= HHV(HIGH, 20); { 创 20 日新高 }
四、条件计数与距今
| 函数 | 含义 |
|---|---|
COUNT(条件, N) | 过去 N 周期条件成立的次数 |
EVERY(条件, N) | 过去 N 周期条件是否全成立 |
EXIST(条件, N) | 过去 N 周期条件是否至少成立一次 |
BARSLAST(条件) | 距上次条件成立过了几根 |
FILTER(条件, N) | 条件成立后 N 周期内不再重复触发 |
连阳: EVERY(CLOSE > OPEN, 3); { 连续 3 根阳线 }
金叉后: BARSLAST(CROSS(MA(C,5), MA(C,20))); { 距上次金叉的根数 }
五、时间函数
| 函数 | 含义 |
|---|---|
DATE / TIME | 日期 / 时间 |
YEAR MONTH DAY | 年 / 月 / 日 |
WEEKDAY | 星期几 |
用途:比如只在特定月份/星期交易、或给尾盘信号加时间过滤。
六、数学函数
MAX、MIN、ABS、POW(乘方)、SQRT(开方)、LN、LOG、INTPART(取整)等,
和普通数学用法一致。
波幅: MAX(HIGH-LOW, ABS(HIGH-REF(CLOSE,1))); { 真实波幅的简化版 }
七、跨周期引用
通达信支持引用其他周期的指标值,语法 指标名.输出名#周期:
周MACD: MACD.MACD#WEEK; { 在日线下引用周线 MACD }
跨周期是把大周期信号拿到小周期用,常用于多周期共振判断。注意它会让信号更「未来」,回测要谨慎。
小结
记住这几组:开高低收量取价、REF 取历史、HHV/LLV/SUM/MA 做统计、 COUNT/EVERY/EXIST/BARSLAST 数条件。它们是几乎所有公式的积木。下一步看 技术指标函数,把它们组合成经典指标。