行情与数据函数

公式离不开「数据」——行情的价量、历史的引用、序列的统计。本章把通达信里最常用的数据类函数归成几组, 写公式时按需取用。

一、行情数据(开高低收量)

最基础的原料,每根 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星期几

用途:比如只在特定月份/星期交易、或给尾盘信号加时间过滤。

六、数学函数

MAXMINABSPOW(乘方)、SQRT(开方)、LNLOGINTPART(取整)等, 和普通数学用法一致。

波幅: MAX(HIGH-LOW, ABS(HIGH-REF(CLOSE,1)));   { 真实波幅的简化版 }

七、跨周期引用

通达信支持引用其他周期的指标值,语法 指标名.输出名#周期

周MACD: MACD.MACD#WEEK;     { 在日线下引用周线 MACD }

跨周期是把大周期信号拿到小周期用,常用于多周期共振判断。注意它会让信号更「未来」,回测要谨慎。

小结

记住这几组:开高低收量取价、REF 取历史、HHV/LLV/SUM/MA 做统计、 COUNT/EVERY/EXIST/BARSLAST 数条件。它们是几乎所有公式的积木。下一步看 技术指标函数,把它们组合成经典指标。