通达信KDJ平滑参数默认是 9、3、3。这三个数字摆在参数表里,看起来是同一类东西,实际各管一层:9 管原始值的取数窗口,第一个 3 管 K 线的平滑强度,第二个 3 管 D 线的平滑强度。把它们当成「三个差不多的平滑系数」一起调,改出来的结果既不是你要的灵敏度,也不是你要的平滑度,因为改的根本不是同一层。

下面按计算顺序拆开:先看原始值怎么来,再看两次平滑,最后看 J 线为什么要单独处理。每一层都给出改参数之后能观察到的具体变化,以及可以当场做的验证。

一、三根线不是三个参数

KDJ 的源码写法在不同资料里措辞不同,结构是一致的:

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;

四行里只有三处可以调:N、M1、M2。J 线不是独立参数,它由 K 与 D 线性组合出来,系数 3 与 2 是固定的。所以「调 J 的参数」这句话在源码层面没有对应物,想让 J 变缓,只能改 K 或 D 的平滑,或者改窗口把 RSV 本身压平。

参数表里这三个位置各有名字与默认值,改完之后要按「测试公式」看输出区,确认三根线的数值都还在动。有一类改法是只改参数表里显示的数字、没有落到源码引用的变量上,结果线形一点没变,容易被当成「参数不起作用」。

二、窗口:N 同时改分子与分母

N 是 LLV(LOW,N) 与 HHV(HIGH,N) 里的窗口长度,也就是取最近 N 根 K 线的最低价与最高价。这两个值同时出现在分子与分母里,所以 N 一变,整条 RSV 的刻度跟着变,不是简单地平移。

N 调小,窗口收窄,区间高低点更贴近当前价格,RSV 在 0 与 100 之间来回跑得更快,触到两端的次数变多。N 调大,窗口拉长,区间高低点离当前价格更远,RSV 被压在中间一段,看上去变「稳」,代价是对近期变化的反应变慢。

这里有一个容易被忽视的边界:窗口内最高价与最低价相等时,分母为零。一字板、长时间停牌后复牌的头几根 K 线、数据缺失造成的整段同价,都会造成这种情形。除零的处理方式与结果,站内 公式报错与卡顿排查 里的异常值一节讲过,这里只提醒一句:改 N 之前先确认区间里没有整段同价,否则调参得到的变化里混着除零造成的跳变。

三、K 与 D 的平滑:SMA 的第三个参数

SMA(X,N,M) 的递推形式是:本次值等于 (M × 本次原始值 + (N − M) × 上次平滑值) ÷ N。第三个参数 M 决定新数据占多少权重,N 决定权重的分母。M 取 1 时,新数据的权重就是 1/N,这就是 Wilder 平滑的写法;M 取 N 时,平滑值等于原始值,等于没平滑。

KDJ 的两次平滑都写成了 SMA(..., M, 1),M 分别是 3 与 3。也就说 K 线的新数据在本次取值里占 1/M1 的权重,D 线的新数据占 1/M2 的权重。这两处权重作用的对象不同:K 平滑的是 RSV,D 平滑的是 K。改 M1 影响 K 的粗糙程度,改 M2 影响 D 对 K 的跟随速度。

改动 直接后果 图上能看到的变化
M1 调小 K 更贴近 RSV K 线毛刺变多,拐点提前
M1 调大 K 变成 RSV 的长平均 K 线变缓,拐点推后
M2 调小 D 更快跟随 K K 与 D 靠得近,交叉次数增加
M2 调大 D 变成 K 的长平均 K 与 D 拉得开,交叉次数减少

两个参数调在同一个方向,效果会叠加;调在相反方向,效果互相抵消一部分。常见的一类改法是把 M1 调大、M2 调小,想让 K 稳一点、D 跟得快一点,实际得到的是两条线贴在一起,交叉变得频繁而且互相穿插,读图时反而更难分辨。改之前先想清楚要的是「少交叉」还是「早拐点」,这两个目标在平滑参数上是反方向的。

验证方法:改完参数后,把同一段行情截两次图,一次用默认 9、3、3,一次用改后的值,两图叠着看三根线的相对位置。只看 K 与 D 的间距变化,先不管信号,能较快判断改的是哪一层。

四、J 的放大倍数:3K 减 2D

J = 3K − 2D 可以改写成 J = D + 3 × (K − D)。这个写法说明 J 的偏离幅度是 K 相对 D 偏离幅度的三倍:K 在 D 上方一点,J 就在 D 上方三点。J 起的作用是把 K 与 D 的差放大,让两条线之间的距离变得可读。

放大带来两个副作用。一个是 J 会越界:K 与 D 都在 0 到 100 之间,K 领先 D 较多时,J 会超过 100;K 落后 D 较多时,J 会低于 0。J 越界不是错误,它由外推带来,用固定阈值去卡 J 的写法要先把这一点考虑进去。

另一个是 J 的抖动被同步放大。K 与 D 的小幅差在 J 上变成大幅差,图上那些细长的尖刺就是这么来的。想让 J 平缓,改的方向不在 J 这一行,而在 M1 与 M2:把两次平滑都放宽,K 与 D 的差变小,J 自然收敛。

五、参数改动后能观察到什么

把通达信KDJ平滑参数的三处改动放在一起看,可以列成一张对照表,改一处只动一类现象。

  1. 只改 N:三根线的整体摆动幅度变化,K 与 D 的相对关系基本不变,J 的越界次数跟着变。
  2. 只改 M1:K 的粗糙程度变化,D 跟着 K 走,J 的尖刺数量变化,摆动幅度变化不大。
  3. 只改 M2:D 的跟随速度变化,K 与 D 的间距变化,交叉次数明显变化。
  4. 三处一起改:现象混在一起,无法归因。调参时不要这样改,一次只动一处,看完图再动下一处。

还要留意参数与周期的关系。同一组参数在日线与分钟线上的表现不同,因为 N 根 K 线覆盖的时间长度变了。日线的 9 根是九个交易日,分钟线的 9 根可能只是半小时。跨周期比较时,参数的物理含义已经变了,把日线上满意的参数直接搬到分钟线,看到的变化不能说明参数好坏。

六、与信号类写法的分工

这一篇讲的是通达信KDJ平滑参数的参数层:三处数字各管什么、改了会怎样。信号层是另一件事,判定条件怎么写、交叉怎么计数、钝化怎么识别,站内已经分开讲过:量价形态与信号拆解 里有一篇专讲金叉判定条件与钝化场景,另有一篇讲二次交叉的计数方式,还有一篇从读数边界讲 MACD 与 KDJ 的差别。本文不重复这三处的内容,只把参数层单独拎出来。

这样分工的理由很实际:参数没定下来,信号写得再细也是在一组会变的数上做判断。先把 N、M1、M2 定在一组自己解释得清的值上,再谈交叉与钝化,两次改动的效果才分得开。

把这一篇收在一句话上:通达信KDJ平滑参数不是三个可以一起推的旋钮,而是窗口、K 平滑、D 平滑三层,改哪一层,图上就动哪一类现象;分不清层就动手,改完也说不清是参数起了作用还是行情换了样子。

本文只作技术研究口径,内容为指标计算结构与参数机制说明,不涉及对任何标的的判断,也不提供操作层面的建议。参数默认值与函数写法以本机版本的公式管理器显示为准,不同版本的系统指标源码可能有所差异。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。