
一句话结论:MACD 金叉本身没有选股优势。全 A 股 10 年 36.8 万次金叉,持有 20 天胜率 48.8%,扣掉大盘和成本后跑输 0.22%;金叉买、死叉卖,逐笔胜率只有 34.3%。真正有用的是零轴:零轴下方的金叉略跑赢,零轴上方的金叉明显跑输。
MACD 可能是 A 股散户最熟悉的指标。这一课用全市场数据回答三个问题:金叉胜率多少?零轴上下有区别吗?红绿柱有没有用?

一、原理和公式
MACD 由三部分组成:
| 名称 | 公式 | 含义 |
|---|---|---|
| DIF(快线) | EMA12 − EMA26 | 短期均线比长期均线高多少 |
| DEA(慢线) | DIF 的 9 日 EMA | DIF 的平滑线 |
| 柱状线(红绿柱) | (DIF − DEA) × 2 | 两条线的距离,正为红柱、负为绿柱 |
常见用法:
- – 金叉:DIF 上穿 DEA,绿柱翻红,买入。
- – 死叉:DIF 下穿 DEA,红柱翻绿,卖出。
- – 零轴:DIF 在 0 上方说明 EMA12 高于 EMA26,处于多头区域。
- – 绿柱缩短:下跌动能减弱,提前预判金叉。
默认参数 12、26、9。国内软件的柱状线一般乘 2,不影响交叉判断。
二、青柠数据实验 1:六种信号,哪个有用
全 A 股 2016 年 1 月至 2026 年 10 月。信号日收盘确认,第二天开盘买入,持有 20 天,和同一天全部股票平均收益比较。
| 信号 | 次数 | 20 天收益 | 胜率 | 20 天超额 | 扣 0.15% 成本后 |
|---|---|---|---|---|---|
| 金叉(全部) | 367,832 | +1.03% | 48.8% | −0.07% | −0.22% |
| 零轴上方金叉 | 128,709 | −0.31% | 43.2% | −0.55% | −0.70% |
| 零轴下方金叉 | 239,123 | +1.74% | 51.9% | +0.18% | +0.03% |
| DIF 上穿零轴 | 177,102 | +0.94% | 48.7% | −0.24% | −0.39% |
| 绿柱连续缩短 3 天 | 329,621 | +1.06% | 48.7% | +0.12% | −0.03% |
| 死叉(对照) | 368,822 | +0.51% | 46.1% | −0.05% | −0.20% |
逐条看:
- 1. 金叉的胜率不到一半。持有 20 天,48.8% 赚钱,扣掉大盘和成本是跑输的。
- 2. 零轴是关键。零轴上方的金叉(已经涨了一段,再次加速)20 天平均亏 0.31%,胜率 43%;零轴下方的金叉(跌了一段,开始企稳)胜率 51.9%,是六种信号里唯一扣成本后仍跑赢的。这和第 15 课 DMA 的发现完全一致。
- 3. DIF 上穿零轴就是 EMA12 上穿 EMA26,跑输 0.24%,和第 11 课的结论一致。
- 4. 绿柱缩短比等到金叉稍好一点,但扣成本后也只是打平。
- 5. 死叉之后绝对收益确实更低(+0.51% vs +1.03%),但扣掉大盘后和金叉差不多。死叉多出现在大盘弱的时候,「死叉之后跌」主要是大盘在跌。
三、青柠数据实验 2:金叉买、死叉卖
信号级统计只看固定持有 20 天。再按最经典的用法逐笔交易:金叉第二天开盘买,死叉第二天开盘卖,每笔扣 0.15%。
| 参数 | 交易笔数 | 胜率 | 平均盈利 | 平均亏损 | 盈亏比 | 平均每笔 | 平均持有 | 平均超额 |
|---|---|---|---|---|---|---|---|---|
| 6/13/5(快) | 700,620 | 34.6% | +7.51% | −3.74% | 2.01 | +0.15% | 6.8 天 | −0.57% |
| 12/26/9(默认) | 365,010 | 34.3% | +11.25% | −5.08% | 2.21 | +0.53% | 13.2 天 | −0.76% |
| 24/52/18(慢) | 196,813 | 36.5% | +14.92% | −7.05% | 2.12 | +0.97% | 24.4 天 | −0.91% |
和第 8 课的均线金叉一模一样的形态:胜率三成多,盈亏比 2 左右,每笔小赚,扣掉同期大盘后跑输。12/26/9 这组参数没有什么特别的魔力,三组参数超额全部为负。
四、分年份和牛熊
金叉(全部)每年的 20 天超额:
| 年份 | 信号次数 | 20 天收益 | 胜率 | 20 天超额 |
|---|---|---|---|---|
| 2016 | 19,795 | +1.65% | 51.8% | −0.02% |
| 2017 | 23,101 | −1.07% | 45.7% | −0.06% |
| 2018 | 25,958 | −2.24% | 38.0% | −0.20% |
| 2019 | 28,555 | +2.49% | 55.1% | +0.07% |
| 2020 | 31,082 | +1.21% | 47.4% | +0.15% |
| 2021 | 35,594 | +1.88% | 51.2% | −0.03% |
| 2022 | 37,766 | −0.21% | 45.9% | −0.03% |
| 2023 | 42,685 | −0.23% | 45.7% | −0.21% |
| 2024 | 43,554 | +2.47% | 48.4% | −0.20% |
| 2025 | 46,554 | +3.89% | 60.1% | −0.16% |
| 2026 | 33,188 | −0.80% | 42.9% | +0.05% |
胜率随大盘起落:2025 年 60.1%,2018 年只有 38.0%。你在网上看到的「MACD 金叉胜率 60%」,很可能只是某一年大盘好。 扣掉大盘后,每一年都在 0 附近,扣成本后没有一年明显为正。
| 市况 | 信号次数 | 20 天收益 | 胜率 | 20 天超额 |
|---|---|---|---|---|
| 牛市 | 201,044 | +0.55% | 47.8% | −0.03% |
| 熊市 | 166,788 | +1.61% | 50.1% | −0.12% |
五、青柠数据实验 3:用 MACD 判断大盘
沪深 300 指数上两种用法,每次换仓扣 0.075%:
| 做法 | 总收益 | 年化 | 最大回撤 | 换仓次数 | 胜率 |
|---|---|---|---|---|---|
| 买入持有 | +14.84% | +1.29% | −45.60% | 1 | — |
| DIF > DEA 持有(金叉持有、死叉空仓) | +5.26% | +0.48% | −38.67% | 208 | 28.8% |
| DIF > 0 持有(零轴上方持有) | +20.91% | +1.78% | −25.02% | 82 | 36.6% |

金叉死叉太频繁,10 年换仓 208 次,没跑赢买入持有。只看零轴,换仓少一半多,收益和回撤都比买入持有好,作用和第 10 课的长均线类似。这段时间沪深 300 有一次三年半的下跌,零轴过滤帮它躲过了大部分,这个优势不能简单外推。
六、常见误区
「MACD 金叉胜率很高」
全市场 10 年平均 48.8%,逐笔交易只有 34.3%。高胜率只出现在大盘好的年份。
「零轴上方的金叉更强,更可靠」
恰好相反,零轴上方金叉 20 天平均亏 0.31%,是六种信号里最差的。
「死叉之后一定跌」
死叉之后的绝对收益更低,但扣掉大盘后和金叉差不多,主要是大盘在跌。
「换个参数就好了」
6/13/5、12/26/9、24/52/18 三组逐笔超额全部为负。
在青柠中实操
- 1. 量化策略 → + 新建策略,在 指标 → 趋势 里拖入 MACD,默认快线 12、慢线 26、信号线 9。
- 2. 用 金叉/上穿,快线选 MACD线(DIF)、慢线选 信号线(DEA)。
- 3. 再加一条 数值比较:MACD线(DIF) < 0,表示只做零轴下方的金叉。
- 4. 用 全部满足 (AND) 连起来接 入场信号;用 死叉/下穿 接 离场信号。
- 5. 用 批量回测 对比加不加「DIF < 0」,看胜率和收益的变化。
- 6. 想用 MACD 看大盘:入场写「DIF 上穿 0」,离场写「DIF 下穿 0」,对沪深 300 相关标的回测。
更多策略可以在青柠策略市场查看。下一课(第 18 课)讲 TRIX:用三重平滑过滤噪音。
常见问题
MACD 和第 8 课的均线金叉有什么区别?
MACD 的 DIF 本身就是两条 EMA 的差,DIF 上穿 DEA 相当于「均线差开始变大」,比均线金叉更早。但两者在 A 股个股上的逐笔结果非常相似。
背离信号有用吗?
顶背离、底背离会在第 34 课专门检验。
红绿柱的长短能用吗?
本课检验了「绿柱连续缩短 3 天」,比金叉略好,扣成本后打平。柱子长短本身不是买卖信号。
周线 MACD 会不会更好?
本课只测了日线。周线信号更少、更慢,可以在青柠里切换周期自己验证。
口径说明
股票池为全 A 股,排除 ST(按当前名称)和北交所,剔除未复权收盘价低于 3 元、日线不足 100 根的股票,价格后复权;区间 2016-01-04 至 2026-10-12,共 4,992 只股票、2,614 个交易日。EMA 在数据库中用截断到最近 50 根 K 线的加权窗口近似;沪深 300 使用递归 EMA。金叉定义为前一日 DIF 不高于 DEA、当日 DIF 高于 DEA;绿柱连续缩短 3 天只记满 3 天的第一天。信号日收盘确认,次日开盘买入,持有至第 20 个交易日收盘;次日一字涨停剔除。逐笔交易为金叉次日开盘买入、死叉次日开盘卖出,同一股票持仓期间不重复买入,每笔扣 0.15%;逐笔超额 = 该笔开盘到开盘收益 − 同信号日全市场等权、相近持有期的平均收益(持有期分组近似)。信号超额 = 信号股票收益 − 同日股票池全部股票同口径平均。牛熊按沪深 300 收盘相对其 250 日均线划分。沪深 300 使用指数日线(000300.SH,价格指数,不含分红),每次换仓扣 0.075%。2026 年为不完整年度。数据由青柠量化回测数据库计算。历史统计不代表未来表现,不构成投资建议。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。