把日线上跑得好好的信号搬到 30 分钟周期,线的位置对不上,这不是软件坏了,是取数口径换了。通达信30分钟指标公式处理的是每根 K 代表 30 分钟的数据,同一组参数换到另一个周期上,线的疏密与数值区间都会跟着变。先把这根 K 的含义、参数与周期的对应关系、跨周期怎么取数这三件事分开讲清楚,再回头看公式里的每一行,才不会把两种口径混在一张图上。
本文以通达信金融终端个人版为准,公式编辑入口是 Ctrl+F 打开的公式管理器;不同版本的菜单措辞与按钮位置可能有差异,以官方版本说明为准。
一、一根 30 分钟 K 是怎么聚合出来的
在 30 分钟周期下,软件把每 30 分钟的成交记录聚合成一根 K 线:开盘价取这段窗口的第一笔,收盘价取最后一笔,最高与最低取窗口内的极值,成交量取这 30 分钟里的累计量。公式在这一根 K 上执行一次运算,输出的值落在该根的收盘位置,线向右延伸的那一段属于下一根还没走完的 K。
这带来一个直接后果:同一组参数在不同周期上算的不是同一个东西。以 MA(CLOSE,20) 为例,在日线上它取最近 20 个交易日收盘价的均值;在 30 分钟周期上它取最近 20 根 30 分钟 K 的收盘均值。按一天 8 根 30 分钟 K 来算,20 根覆盖的时间长度是两个半交易日,对应的价格区间比日线窄,拐点也比日线密。参数值没变,参数代表的时间长度变了。
再看下面这张表里的几种现象,判断方向就清楚了。
| 现象或提示 | 含义 | 处理 |
|---|---|---|
| 日线上的信号在 30 分钟图上位置明显前移 | 30 分钟一根 K 只覆盖一天中的一小段,指标对短时波动更敏感 | 先确认信号按哪个周期计算,避免把两个周期的线叠在一起比大小 |
| 同一参数在 30 分钟周期上拐点更密 | 参数代表的时间长度随周期缩短而缩短 | 要保留同样的时间跨度,就把参数值按周期比例放大 |
| 副图数值区间与日线对不上 | 参与计算的样本区间不同,分母的根数不同 | 把副图单独挂载,或把线做归一化之后再叠加 |
| 界面提示数据不足或缺根 | 该周期可加载的历史根数少于参数所需根数 | 缩短参数、切换更大周期,或先补足该周期历史数据 |
二、通达信30分钟指标公式的参数怎么对上周期
通达信30分钟指标公式里的参数要与周期对上,做法是把参数换算成时间长度,而不是背下某个数字。日线参数 20 对应 20 个交易日;要在 30 分钟周期上表达接近的时间跨度,先算出这段时间里有多少根 30 分钟 K,再把根数填进参数。换算用到两个已知量:该品种每天有多少根 30 分钟 K,以及一段行情里有多少个交易日。
参数放大之后会碰到另一处约束:软件对该周期可加载的历史根数有上限。参数值取得越大,需要的根数越多;历史不足时公式前段会留出一段空白,这段空白不是计算错误,是样本不够。要把两个周期的同名指标对齐看,先把各自参数代表的时间长度写成一行注释挂在公式里,之后调整时照着注释改,不会调着调着把口径调丢。
参数调整要在公式管理器里改,不要在图上双击指标线弹出的属性框里改。图上那一处改动只影响当前画面的显示,不写回公式本身,重新加载公式之后回到原值。改完参数先另存一个公式名,保留原版,两个版本挂同一张副图对照,改动前后的差异一眼可见。
三、通达信30分钟指标公式的跨周期取数写法
通达信30分钟指标公式要在 30 分钟图上引用日线或周线的值,用跨周期引用格式:被引用的指标名、输出的那一行名、井号加周期。写法形如 “MACD.DIF#DAY”、”MA.MA1#WEEK”,在 30 分钟周期里也可以写成 “VOL.VOLUME#MIN30” 把周期写死。
跨周期引用格式(引号内是要引用的指标输出行): "MACD.DIF#DAY" 引用 MACD 指标里的 DIF 行,取日线口径 "MA.MA1#WEEK" 引用 MA 指标里的 MA1 行,取周线口径 "VOL.VOLUME#MIN30" 把引用周期写死为 30 分钟 条件写法示例: DIFD := "MACD.DIF#DAY"; CROSS(DIFD, 0) 比较式里的小于号: CLOSE < MA(CLOSE,20) 大于号照写即可: CLOSE > MA(CLOSE,20)
跨周期取到的值有一个要留意的特征:被引用的大周期那一根还没走完时,取到的是这根未完成 K 的实时值,它会随后续数据变化。同一根 30 分钟 K 上,引用的日线值在盘中会一直刷新,只有日线收盘之后才定下来。做验证与记录时把时间放在收盘后,盘中看到的数只是过程量。
引用名写错会在「测试公式」这一步暴露,公式管理器给出无法识别引用的提示。图上不显示某条线时先去跑一次测试,再看周期是否切对,比反复切周期找原因省事。
四、适合与不适合用 30 分钟周期的几种情况
需要看日内节奏的场景适合用这个周期:同一个规则想在半天里得到更多次判断,或者要观察参数在短周期上的敏感性,30 分钟提供的时间切片比日线细。不适合的场景同样明确。
把只在日线上验证过的参数直接搬过来,不做时间跨度换算,是第一类不适合。参数的含义随周期变了,原来的结论在新周期上不再对应同一个东西。第二类不适合落在停牌与数据缺失较多的品种上:30 分钟 K 按交易时间连续排下来,中间停牌会造成这一段没有 K,公式用 REF 回取时会跨过这段空白,取到的不是紧邻的那一根。需要写清取值口径时,先用 BARSLAST 一类函数确认两根之间的距离,再决定要不要参与计算。
第三类不适合是把它当成更精确的版本看。周期缩短只是把时间切片切细,切片里的噪声一起放大,指标线的振荡幅度与日线不在一个量级上,同一个阈值参数在两处的表现也不同。把阈值一并换算,是使用这个周期时容易漏掉的一步。
五、数据长度、停牌段与验证方法
数据长度不足的表现是公式前段出现空白,或者某些输出行整段不显示。判断方法很直接:在图上把 K 线向左拉到底,看空白从第几根开始;换成更大的周期再看这段空白是否缩短,缩短说明是样本根数不够,与公式写法无关。
停牌段的表现是 K 线之间出现时间跳空,而根数是连着的。引用前一根的值时,REF(CLOSE,1) 取到的是停牌前的那一根,不是自然日里的前一天。把这两者分开,量能类与均线类公式的结果才对得上。
验证按三步走。第一步在公式管理器里选中公式,点「测试公式」,这一步只做语法与函数名检查,能过不代表逻辑对。第二步把公式挂到 30 分钟副图,把 K 线切到最近一段,看它与日线上同名指标的方向是否一致。第三步补足该周期数据之后再看一遍,确认之前那段空白来自数据还是来自参数。公式文件与本地数据都放在安装目录的 T0002 下,导出的公式文件是 tn6 或 tne,备份目录是 T0002\gs_bak,改版之前把 T0002\PriGS.dat 一并留一份。
边界在这里:通达信30分钟指标公式把一套计算规则放到 30 分钟这个切片上执行,输出的是按规则算出的数值与线形,不包含对行情方向的结论。参数换算、引用格式、数据长度这三件事归它管;超出这个范围的问题,公式本身给不出答案,也不该由公式来给。
本文只作技术研究口径,不涉及也不构成对任何标的的判断。
站内还有 指标原理与参数 的其他条目,公式编写教程 里讲表达式与函数的写法,信号拆解 里讲信号在图上怎么定位,可对照查看。
