均线连续贴在一起,看不出方向,想拿一个量去判断它接下来往哪边走,这就落到通达信均线扣抵公式要回答的问题上。N 日均线的值是最近 N 根收盘价的算术平均,每往前走一根,窗口丢掉最老的那一根,接进来新的一根。被丢掉的那一根的价格叫扣抵值。均线往哪拐,就看接进来的这一根与扣抵值谁高。

下面按扣抵值是什么、用哪个函数取、靠它判断方向、画出来做对照、适用哪类均线、哪些情况会把扣抵值改掉来写。函数取值以本机公式编辑器里的函数说明为准,方向判断只讲均线自身的算法含义。

一、均线每天在丢掉一根什么

算术平均的写法决定了扣抵这件事。把上一根的均线值记住,往前推一根的过程可以写成一条递推式:新的均线值,等于上一根的均线值乘上窗口长度,先减去被丢掉的那一根价格,再加上新接进来的一根价格,整体再除回窗口长度。

{ 均线的递推形式 }
MA_t = ( MA_(t-1) * N - C_(t-N) + C_t ) / N
{ C_(t-N) 就是被丢掉的那一根,也就是扣抵值 }
{ 其余 N-1 根在两次计算里都参与,相互抵消 }

这条式子说明一件重要的事:相邻两根的均线值之差,只由接进来的价格与被丢掉的价格决定,中间那 N-1 根不参与。窗口越长,这个差被摊得越薄,均线看起来越平缓;窗口越短,同样一根价格对均线的影响越明显。

二、扣抵值怎么写:回到 N 根之前

取扣抵值用的是引用函数,把收盘价往前推 N 根。窗口长度写在参数里,引用函数直接用它。

{ 扣抵值的取法 }
N   := 20;
KD  := REF(C, N);
{ KD 就是 20 根之前的那一根收盘价,即本根之后要被丢掉的那一根 }

这里有一个容易写错的地方:往前走 N 根,取到的是即将被丢掉的那一根;如果窗口长度取 N,均线当前值用的是最近 N 根,那么往后再走一根时被丢掉的正是 N 根之前的那一根。N 与引用根数写成同一个数,两者才对得上。写成 N-1 或 N+1,扣抵值就偏了一根,方向判断跟着偏。

可以做一个自检:把上一根的均线值、扣抵值、新接进来的价格代进递推式,算出来的结果与均线函数给出的当前值对照。两者相等,说明取数根数没错。

写通达信均线扣抵公式时,取数根数与窗口长度是同一组参数,不另外定义。这一点在公式里显式写出来比较好,让参数表里只有窗口长度这一项,引用根数从它推出来。参数分成两个,改了其中一个忘了另一个,扣抵值就偏位,而公式照样能编译通过。

三、用扣抵值判断均线往哪走

把新价格与扣抵值的差写成一条输出线,这条线的正负就对应均线接下来的移动方向。

{ 方向判据 }
N    := 20;
MA1  := MA(C, N);
KD   := REF(C, N);
DIR  : C - KD;
{ DIR 大于 0,本根之后均线继续上移 }
{ DIR 等于 0,均线走平 }
{ DIR 小于 0,均线转为下移 }

这条判据的好处是把「均线会不会拐」换成了一个减法。均线的方向不需要等 N 根新数据堆出来才能判断,在当前这一根就能算出来,因为参与比较的只有两个价格。

要注意它回答的范围:它只说均线自己往哪走,不说价格往哪走。均线是价格的平滑结果,平滑会延迟,均线下移的同时价格可能正在回升。这条线是算法层的量,用它能看均值的方向,看不到别的。

窗口取 N,扣抵值取 REF(C,N),这两个 N 是同一个。写成别的根数,扣抵值就错位。判断方向之前,先用递推式核对一遍取数根数,比事后在图上找原因要快。

四、把扣抵值画出来做对照

扣抵值是一条可以画出来的线,把它与均线放在同一张图上对照,方向判据的对错一眼能看出来。

{ 扣抵线与均线同图对照 }
N   := 20;
MA1 : MA(C, N);        { 均线本体 }
KD1 : REF(C, N);       { 扣抵值 }
{ 两条线的相对高低,对应均线的移动方向 }

看的时候注意两条线的口径。均线是最近 N 根的平均,扣抵值只是其中被丢掉的那一根,一条是均值、一条是单根价格,尺度相近但含义不同,不能直接相减当作强度来用。要做比较,用上一节那条差值线,不要用这两条线本身。

通达信均线扣抵公式画出来做对照还有一处便利:把扣抵值连成一条线之后,均线的走向与这条线的高低变化能同时看到。均线拐头的位置,对应差值线穿过零点的那一根,两者在同一次刷新里对齐。这条对照线不参与输出判断,只用来核对前面那条判据有没有写对根数。

如果对照线与均线走向对不上,顺序是先把扣抵值的引用根数改正,再看复权与周期设置。根数错是最直接的一类,改动之后重新对照一次就能确认,不必先去动均线的写法。

记录的时候把窗口长度、引用根数与复权口径写在同一行,这一组数决定了扣抵值,三者拆开记,换一台机器或换一支公式之后,同样的名字对应的数就对不上了。

五、这组判据用在哪类均线上

扣抵的写法依赖一个前提:窗口里每一根价格的权重相同。算术平均满足这个前提,指数加权平均与带权移动平均不满足。

均线类型 窗口内权重 能不能用扣抵值
简单算术平均 N 根等权,每根占 N 分之一 能,被丢掉的就是 N 根之前那一根
指数加权平均 越近的权重越大,按比例递减 不能,没有一根价格是独立被丢掉的
带权移动平均 权重由参数给定,分配方式不同 不能,权重表变了,扣抵关系不再成立

指数加权平均的变化方式是整体缩放再叠加新品,旧数据的影响按比例衰减,不是被某一根整段替换掉。带权移动平均的权重由参数决定,换一组参数,同样一段价格的取值就换了。这两类的方向来自权重分配的更新规则,套扣抵值算出来的差没有对应关系。

六、会改变扣抵值的三种情况

扣抵值取的是 N 根之前的收盘价,这个数会随着口径变化而变化,改动之后方向判据也跟着变。

一是复权口径。除权除息之后,历史价格被调整过,REF 取到的历史收盘价与调整前不是同一个数,扣抵值随之改变。同一支公式在不同的复权设置下算出来不一样,记录时要写清用的哪一套口径。

二是缺根与停牌。窗口往前推 N 根,数的是图上存在的 K 线根数。停牌或数据缺失留下的空档,会让这 N 根对应的时间跨度与没有空档时不同。跨过空档去比,扣抵值对应的日期就错开了。

三是周期切换。日线上的 N 根与周线上的 N 根不是同一段时间。同一条公式换到别的周期,扣抵值覆盖的时间长度被放大或缩小,方向判据的敏感程度跟着变。跨周期对照时,两边的窗口根数要在同一时间尺度上换算过再比。

扣抵值判的是均线的移动方向,不是价格的走向,更不构成任何买卖判断。它的用途是把均线的拐点从「等它拐了再看」提前到「算出来」这一层,属于算法上的便利,不改变均线的滞后性质。

通达信均线扣抵公式讲的是窗口进出这件事:进一根、出一根,均线值变多少,由这两根决定。把扣抵值取对根数,把均线的类型确认在算术平均这一支,这组写法就是可核对的。取数根数错一根、均线类型选错一支,判据都会失真,而失真在图上依然画得出来,这才是要留意的地方。

站内还有 通达信指标原理与参数 的条目,通达信信号拆解 讲把均线关系拆成判断段,通达信公式编写教程 讲引用函数的用法,可对照查看。

本文只作技术研究口径,不涉及也不构成对任何标的的判断。

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