
一句话结论:KDJ 低位金叉有一点超额,但很小。全 A 股近一年,K 在 20 以下上穿 D 后持有 20 天,跑赢全市场 0.51%,扣成本后只剩 0.36%。任意金叉扣成本后接近打平。散户最爱的「金叉就买」,近一年选不出多少优势。
第 25 课的 RSI 看涨跌日谁占上风。KDJ 换一把尺子:收盘价在最近几天高低点之间的位置,再平滑成三条线。A 股行情软件几乎都有它。

一、原理和公式
KDJ 是随机指标的 A 股变体。先看收盘在近 9 日高低区间里的位置,再平滑:
| 线 | 公式 |
|---|---|
| RSV | (收盘 − 9 日最低) ÷ (9 日最高 − 9 日最低) × 100 |
| K | 前一日 K × 2/3 + 当日 RSV × 1/3,初值 50 |
| D | 前一日 D × 2/3 + 当日 K × 1/3,初值 50 |
| J | 3K − 2D |
青柠组件说明里写的是 SMA,引擎实际用的是上面这种递推,和通达信、同花顺一致。区间为 0 时 RSV 取 50。J 线没有 0–100 的边界,可以小于 0 或大于 100。
教材用法:K 在 20 以下上穿 D 是金叉,K 在 80 以上下穿 D 是死叉。青柠默认 9 / 3 / 3。
二、青柠数据实验 1:金叉有没有用
全 A 股最近一年(2025-10-14 至 2026-10-14)。信号日收盘确认,第二天开盘买入,持有 20 天。
| 规则 | 信号次数 | 20 天收益 | 胜率 | 20 天超额 | 扣 0.15% 成本后 |
|---|---|---|---|---|---|
| K 上穿 D 且 K < 20 | 17,438 | +1.20% | 48.9% | +0.51% | +0.36% |
| K 上穿 D(任意位置) | 101,951 | +0.78% | 46.6% | +0.22% | +0.07% |
| K 下穿 D 且 K > 80 | 6,291 | +0.25% | 43.7% | +1.12% | +0.97% |
低位金叉比任意金叉好一截,但扣成本后只有 0.36%。一年里每只股票大约金叉 20 次,绝大多数发生在中间区域,那些金叉没有选股优势。
高位死叉绝对收益最低(+0.25%),相对全市场却最好(+1.12%)。和 RSI 超买一侧类似:强势股自己没怎么涨,同一天别的股票更差。把它当卖点,近一年会卖在相对不差的股票上。
三、K 值分桶
每天按当日 K 值分组,不是交叉:
| K | 样本数 | 20 天收益 | 20 天超额 |
|---|---|---|---|
| 低于 20 | 199,387 | +0.69% | +0.13% |
| 20 ~ 50 | 458,312 | +0.62% | +0.01% |
| 50 ~ 80 | 422,587 | +0.49% | −0.15% |
| 高于 80 | 93,686 | +0.30% | +0.35% |
不是「K 越低越好」。低于 20 略有超额,高于 80 的超额还更高。中间两档占大多数,接近打平或略负。
牛市里低位金叉 15,611 次,20 天超额 +0.35%,扣成本后 +0.20%。熊市窗口短、很多信号凑不齐 20 天,不单独当结论。
四、常见误区
「KDJ 金叉就是买点」
任意金叉一年 10 万次,扣成本后超额 +0.07%。没有低位过滤,等于没过滤。
「高位死叉该逃顶」
绝对收益弱,相对全市场却是三组里最好的。近一年不是干净的卖点。
「软件里的 SMA 和回测对不上」
青柠引擎按 2/3 + 1/3 递推,和国内看盘软件一致,不是三根等权平均。
在青柠中实操
- 1. 量化策略 → + 新建策略,在 指标 → 动量 里拖入 随机指标KDJ,周期 9 / 3 / 3。
- 2. 用 金叉/上穿,快线选 K线、慢线选 D线。
- 3. 再加 区间判断:K 线 低于 20。用 全部满足 (AND) 接到 入场信号。
- 4. 用 批量回测 对照「任意金叉」和「低位金叉」,看过滤之后笔数和超额差多少。
更多策略可以在青柠策略市场查看。下一课(第 27 课)看 KDJ 的原版:STOCH。
常见问题
KDJ 和 STOCH 差在哪?
都是收盘在高低区间里的位置。KDJ 默认 9 日、递推平滑、多一条 J 线;STOCH 默认 14 日、真用 SMA。下一课对着比。
J 线小于 0、大于 100 有用吗?
J 只是放大 K 和 D 的差距。本课主规则看 K、D 交叉,没有单独测 J。
为什么金叉这么多?
K、D 贴在一起时会反复交叉。一年任意金叉超过 10 万次,大部分是噪音。
口径说明
股票池为全 A 股,排除 ST(按当前名称)和北交所,剔除未复权收盘价低于 3 元的股票,价格后复权;信号日 2025-10-14 至 2026-10-14,共 4,959 只股票、243 个交易日。KDJ(9,3,3) 按引擎递推:K、D 初值 50,系数 1/3,个股截断到最近 60 根 K 线。金叉定义为前一日 K 不高于 D、当日 K 高于 D。信号日收盘确认,次日开盘买入,持有至第 20 个交易日收盘;次日一字涨停剔除。超额收益 = 信号股票收益 − 同日股票池全部股票同口径平均。个股每笔来回成本 0.15%。牛熊按沪深 300 收盘相对其 250 日均线划分。本课只用最近一年。数据由青柠量化回测数据库计算。历史统计不代表未来表现,不构成投资建议。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。