通达信时间函数用法里有一个前提要先立住:这些函数取的是「当前这一根 K 线所属的时间刻度」,功能上不指向任何固定区间。同一段带时间条件的公式,挂在日线图上算出来的值,切到五分钟图上就不一样;把图切回日线,数值又回到原样。刻度没有变,变的是它对应的那根 K 线。

下面按「取哪一层时间、两个基础函数的取值形态、年月日与星期的分解、周期标识与跨周期引用、分钟刻度上的对齐、误判与核对」的顺序讲。全文只讲取数口径与写法,不涉及任何品种判断。文中函数名以通达信公式编辑器内附的函数列表为准,券商定制版的函数集可能与通用版不同。

一、时间函数取的是哪一层时间

通达信时间函数用法里最先要分清的是两个层次。一个是日期层,回答「这一根 K 线属于哪一个交易日」;一个是刻度层,回答「这一根 K 线在交易日内落在什么位置」。前者在一整天里是同一个值,后者在一整天里逐根递增。

{ 时间的两层含义 }
日期层 —— 一根 K 线对应一个交易日,日线图上一天一根
刻度层 —— 交易日内按周期切分,五分钟图一天对应 48 根
{ 两个层次用不同的函数读取,混用会得到看似随机的值 }

判断当前处在哪一层,看图表周期即可。日线、周线与月线图上,两个层次被压在一根 K 线里;分钟图上,两层都有意义。写公式之前先把目标图表的周期确认一遍,这一步能避免相当一部分返工。

二、DATE 与 TIME 的取值形态

读取日期用 DATE,读取刻度用 TIME。两者返回的都是数值,而不是带分隔符的文本,这一点决定了它们可以直接参与比较与运算。

函数 返回形态 取值示例
DATE 年月日连写的数值 2026 年 9 月 1 日返回形如 20260901 的数值
TIME 分钟制的四位数值 上午 9 点 30 分返回形如 930 或 0930 的数值

TIME 的返回值是分钟制的整数表示,不是从零点起算的分钟数。10 点 05 分对应的数值是 1005,而不是 605。把两个时点相减得到差值,这样算出来的差并不是分钟数,需要先按位把小时与分钟拆开再换算。这是通达信时间函数用法里最容易算错的一处。

写比较条件时用等号要谨慎。TIME 的值随周期变化,五分钟图上的 930 与十五分钟图上的 930 表示两根不同长度的 K 线,同一个常数在不同周期下命中的根数不同。跨周期复用的公式,把时间条件写成区间比写成等值更稳定。

三、年月日与星期的分解

要从 DATE 里单独取出年、月、日,有两条路:用现成的分解函数,或者按位截取。分解函数读起来更直观,按位截取不依赖函数集,两种写法都可以用。

{ 从 DATE 取年月日:按位截取的思路 }
年 = 取数值的高四位
月 = 取中间两位
日 = 取末两位
{ 通达信另有专门的年月日与星期函数,名称见编辑器内的函数列表 }

星期属性适合用来处理周期性规律,例如按月内位置、按周边界分组。使用时要注意返回值的起算点:星期函数返回的是一个整数序列,起点对应一周里的哪一天,需要先在图上验证一次再写进条件,不同版本对起算点的处理可能不同。

验证起算点的做法是选一个已知日期的位置,把星期函数的输出挂在副图上,用光标读那一根的数值,与日历对照。一次对照就能确定起算点,比反复查资料快。

四、周期标识与跨周期引用

公式被挂到哪个周期,由图表决定,公式本身不主动改变周期。需要在公式里读取另一个周期的取值时,用带周期标识的引用写法:在引用后面加一个周期标记,表示这个取值按另一个周期计算。

跨周期引用需要额外的数据支持。引用的周期比当前周期长时,本地必须存在对应周期的数据,否则取到的是空值;引用的周期比当前周期短时,同一根 K 线里会出现多个取值,公式需要自己说明取其中哪一个。

情形 表现 处置方向
引用更长周期 取不到值或整段为空 先在客户端里补齐该周期的数据
引用更短周期 同一根上取值不稳定 用首值或末值把取值固定下来
引用同周期 无额外开销 直接写函数即可

五、分钟刻度上的对齐问题

分钟图的刻度按交易时段切分,切分结果与自然时间并不一一对应。开盘前与收盘后的非交易时段不产生 K 线,因此相邻两根 K 线之间的时间间隔,在跨过午间休市与跨过收盘时会变得不连续。

这种不连续会影响两类写法。一类是按根数平移的引用:往前推 N 根,跨过休市之后拿到的时间跨度并不等于 N 乘以周期。另一类是按时间间隔判断的条件:用两个时点相减判断间隔,遇到跨休市的位置会得到超出预期的差值。

判断「间隔多久」时,按根数平移比按时点相减更稳。根数的含义在任何时段下都一致,时点相减的含义会随休市与半日市改变。

六、不连续与空值造成的误判

时间函数在停牌与数据缺失的位置会表现出异常。停牌期间不产生新的 K 线,日期序列在停牌前后直接跳过大段区间,因此用日期相减判断「相隔几天」的写法,在这些位置会得到与交易根数不一致的结果。

新股上市初期的数据长度也不足。需要往前引用 N 根的写法,在上市首日附近没有足够的上一根可取,取到的是空值。这类位置建议先用数据条数做一个前置判断,把不足长度的位置排除掉,而不是把它们当成满足条件。

另一类误判来自复权与周期的组合。切换到不同周期之后,同一根 K 线覆盖的时间范围变了,基于 TIME 的条件需要重新核对一遍。核对不需要整套重算,只看条件命中的位置是否发生了变化即可。

七、一次核对把口径钉住

核对通达信时间函数用法只需要一次动作:新建一个副图公式,把 DATE 与 TIME 直接作为输出画出来,观察副图上的数值;再把光标移到图上某一根 K 线,读取图表标题栏显示的日期与时间,与副图上的数值对照。对照一致,说明取值口径已经确认。

{ 核对步骤 }
① 新建副图公式,输出 DATE 与 TIME
② 光标定位到一根 K 线,读图上显示的日期时间
③ 与副图上的两个数值逐位对照
④ 换一个周期重复一次,确认刻度层的变化符合预期
{ 四步走完,两个函数的取值形态就钉住了 }

确认之后把核对时的周期、日期与数值记下来,写进公式的说明里。时间条件与周期绑定,缺了这条记录,同一段公式换一台机器或换一个周期之后,读到的时间值就无法解释。相关的内容可以对照 公式编写教程 一栏里的其他函数分类,以及 指标原理与参数 一栏里关于周期与参数取值口径的部分。

时间函数本身不难写,难的是记住它取的是「当前这一根所属的时间刻度」而不是一段固定区间。把这一层记住,周期切换之后的数值变化就不再是意外,而是可以预先说明的结果。核对过一次,往后的写法就有了统一的参照。

文中函数名、返回值形态与周期引用写法以通达信金融终端通用版为参照;券商定制版与移动端的可用函数集、时间刻度切分方式以及跨周期引用的支持范围可能存在差异,请以你所用版本公式编辑器内的函数列表与图上实际显示的日期时间为准。

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