昨天在图上用 ZIG 标出的那个高点,今天挪到了右边两根的位置。没有换参数,也没改周期,只是多收了几根 K 线。通达信未来函数ZIG 的折点不是一次性算完的,最后一个折点在价格反向运行到位之前一直是暂定的,新数据进来它就会重算,看上去像是自己会走。

这篇只讲一件事:折点为什么会动,以及动了之后对判读与验证带来什么。折点会不会动、动多少,由转向幅度的设定与最后一根 K 线离折点的距离共同决定。

先把结论摆出来:折线在历史段上是稳定的,在最后一段上是浮动的;这两段的差别不是软件没算完,而是折点本身要等一个确认动作。下面把这个动作拆开看。

一、折点由一次反向运行确认

ZIG 画的是之字转向线。它从一段行情的起点出发,先假定价格沿当前方向走,同时盯着反向的幅度;反向运行的幅度超过设定的转向幅度,就把前一个极值确认成折点,方向翻转,接着盯下一个方向。

确认这个动作发生在事后。在反向幅度没达标之前,函数把当前方向上的极值当成暂定折点画在图上;价格继续沿原方向走,暂定折点跟着往前移;价格一旦反向达标,暂定折点被钉死,同时在新方向起一个暂定点。

{ ZIG:第一个参数选价格位置,第二个参数给转向幅度 }
Z: ZIG(3, 5);
{ 折点由一次超过转向幅度的反向运行确认 }
{ 参数位置与取值含义以本机函数说明为准 }

这条规则带来了一个不对称:已经钉死的历史折点不再变化,最后一个暂定折点随时会变。同一张图上,两段折点的可信度不是一个量级。

ZIG 的折点与均线的拐点不是一回事。均线的拐点由取值窗口内的价格加权算出来,同一根 K 线上算一次就定下来;ZIG 的折点由反向运行的幅度触发的确认动作产生,触发之前没有折点可言。把两者混着看,会把「线拐了」当成「方向确认了」。

转向幅度决定了确认的门槛,也决定了折点看出去的疏密。幅度调小,反向运行容易达标,折点密、方向切换频繁,最后一段也短;幅度调大,确认动作要等更大幅度的反向运行,折点数量下降,图上留下的都是大波段。

二、PEAK 与 TROUGH 取的是同一批折点

PEAK 取峰、TROUGH 取谷,第三个参数指定取第几个:从最近的一个往回数,取 1 就是最近的那个转折点。它们没有自己的折点集合,取的就是 ZIG 算出来的那一批。

{ 取最近一个峰与最近一个谷 }
P1: PEAK(3, 5, 1);
T1: TROUGH(3, 5, 1);
{ 参数顺序与含义以本机函数说明为准 }

这层依赖决定了 PEAK 的取值特性:当那批折点里的最后一个还是暂定的,PEAK 取到的值跟着暂定值走,刷新一次变一次。写成显示数值的公式,图上变化不明显;把它接进条件判断,同一个位置在不同时间可能得出不同结果。

要把这件事看清楚,可以把 PEAK 的两个序号并排输出,取 1 与取 2 对比。取 2 的是已经钉死的那个折点,取 1 的是暂定点,两者在图上的表现差别就是重绘的直观形态。

并排输出还能看出重绘的方向。取 1 的折点值在动,说明价格还在原方向上推进;取 1 与取 2 的差值在收窄,说明反向运行正在累积。这两条都只描述当前状态,不预示后面往哪走。

三、浮动的只有最后一段

通达信未来函数ZIG 的重绘范围是有限的,不是整条线都在动。已经确认的折点由当时的极值与反向幅度共同定死,新数据只影响尚未确认的那一段。

判断一段折点是否已经确认,看的是它后面有没有出现过符合条件的反向运行。出现过的,折点已经定死;没出现过的,就是最后那一个暂定点。换个说法,折点浮动的根数与转向幅度成反比:幅度设得小,反向达标容易,暂定段就短;幅度设得大,暂定段被拉长,图上最后那一大段都处在会变的状态。

转向幅度 折点密度 暂定段的长度 观察到的现象
设得小 折点密集,折线贴近价格 短 折点位置小幅移动,方向翻转频繁
设得居中 折点数量中等 中等 最后一段随行情推进而伸缩
设得大 折点稀疏,折线成大波段 长 最后一段整体重新定位,可能整个消失再出现

表里的顺序是机制推出来的:确认条件越难达到,暂定段就越长。这也是为什么同一段行情换一个转向幅度,图上看起来像是两条不相干的线。

暂定段的存在也决定了一条看图习惯:凡是拿折线做参照的位置关系,都要先说明它取的是最后一段还是已确认段。同一条折线上这两段的可信度不同,放在一起下结论会失真。

四、用它构造判读会遇到什么

把通达信未来函数ZIG 接进条件判断,问题的形状就变了。历史区间上回看,每个折点都落在事后看来最合适的极值上,折线把大波段切得清清楚楚;把这条规则原样搬到实时位置,最后一根 K 线上得不到同样干净的结果,因为当时那个折点还没有被确认。

这不是参数没调好,是确认机制本身决定的。要复现历史图上的效果,等于要求当时就知道未来的反向幅度,这件事在实时状态下不成立。

还有一层容易忽略:折点重绘会改掉依赖它的其他变量。同一支公式里如果用 PEAK 的值去计算距离、区间或比例,那么这些派生量也一起浮动。排查这类问题时,先把输出拆成两部分:已确认的折点值与暂定的折点值,再看哪一部分在变。

复权方式会改变折点的历史位置。折点由极值与反向幅度共同确认,价格序列被重写之后,同一段行情上的极值位置跟着移动,此前记下来的折点坐标不能直接套用。核对历史折点时,先确认复权设置与当初一致,再看数值。

K 线长度的起点也会影响结果。ZIG 从序列的第一根开始推,序列起点前移或后移,最初几个折点的位置就会变。拿不同时间窗口导出的数据去比同一段行情的折点,先对齐序列起点。

把 ZIG 的折点直接当作可统计的样本使用,会得到偏乐观的分布:被统计进去的每一次转向,都是事后确认过的。要在历史区间上做任何涉及样本性质的观察,先把 ZIG 的取值换成不依赖未来数据的写法,再比较两者的差别。

五、适用边界

把通达信未来函数ZIG 的机制收拢成几句判断,边界部分一并说清。

适合的用法是描述已经走完的形态:把历史段的方向切换画出来,观察波段结构,或者比较不同转向幅度下折线的疏密。这些都建立在对已确认折点的读取上。

参数敏感性值得单独看一遍:把转向幅度按相邻两档各跑一次,比较折点的数量与位置。两档之间差异很大,说明当前参数正落在临界附近,换一段行情结论就会变。

不适合的用法是把它当成实时判定的依据,也不适合在没有替换写法的情况下拿它的历史折点去做样本性质的统计。

最后是验证方法:把 Z 输出到副图,与收盘价叠在一起看最后一段的偏移;隔一个交易日再打开同一张图,对比最后一段的形状有没有变。前面折点形状不变、最后一段变了,说明读到的正是应当出现的行为。

本文讲的是 ZIG 与 PEAK 自身的取值机制。未来函数的检测流程、替换写法与不含未来函数公式的验证口径,各自另有专文,此处不展开。

站内还有 通达信公式编写教程 的条目,通达信指标回测与风险验证 讲样本与偏差控制,通达信指标原理与参数 讲参数与取值口径。

本文只作技术研究口径,内容是指标取值的计算机制,不涉及也不构成对任何标的的判断。

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