「5 日线上穿 20 日线就买」——这是 A 股最常见的入门规则之一。实盘里很多人很快发现:金叉不少,能赚钱的并不多。震荡市里,短均线上穿长均线后几天又死叉,俗称「假金叉」或「骗线」。
一个自然的升级思路是加第三根均线做趋势过滤:只有短、中、长均线呈多头排列(例如 MA5 > MA20 > MA60)时,才承认金叉有效。听起来合理,但量化研究不能停在直觉——你需要回答:过滤掉了多少噪声?是否连真突破也一起删了?交易频率下降后,回撤真的变小吗?单账户下还买不买得上?
本文把「双均线金叉 + 三均线多头排列过滤」写成可回测、可筛选、可复盘的全流程,界面示例来自 LemonPicking 零代码策略编辑器。方法可迁移到其他可视化回测工具;重点是把口头过滤变成可证伪的规则。
一、双均线假金叉从哪来:震荡 vs 趋势
假金叉不是「引擎算错了」,往往是规则与市况不匹配:
| 市况 | 双均线金叉典型表现 | 常见误判 |
|---|---|---|
| 单边上涨 | 金叉后延续,信号「很准」 | 把牛市样本当成普适规律 |
| 宽幅震荡 | 频繁金叉死叉,小亏小赚交替 | 误以为「均线失效」 |
| 阴跌反弹 | 反弹金叉后再次下跌 | 把下跌途中的反弹当反转 |
回测口径若不对,假金叉还会被放大:未复权除权把均线打穿、信号当根收盘价成交、不计佣金滑点——都会让「看起来能买」比真实更容易。常规 A 股趋势研究应优先后复权,并采用收盘确认、下一根开盘价成交 + 佣金与滑点的保守假设(与 LemonPicking 常规日线回测一致)。
若你已读过系列前文中关于「金叉 + 放量」「多指标 AND 共振」的写法,可以把本文理解为:在金叉条件之上,再叠一层「均线结构」过滤——逻辑相同,指标更少,但趋势语义更明确。
二、第三根均线到底过滤什么:结构定义要写死
「多头排列」口语里人人都懂,回测里必须无歧义。推荐拆成两层条件,用 AND 合并:
| 层级 | 含义 | 可回测写法(示例) |
|---|---|---|
| 事件 | 金叉 | MA(5) 上穿 MA(20)(交叉条件) |
| 结构 | 多头排列 | MA(5) > MA(20) 且 MA(20) > MA(60)(比较条件 + AND) |
| 合成 | 趋势中的金叉 | AND:金叉 且 多头排列 |
| 出场 | 趋势破坏或对称离场 | MA(5) 下穿 MA(20),或 MA(20) 下穿 MA(60) |
| 仓位 | 可执行比例 | 例如每次 25%–30%,单账户设最大持仓 |
注意:金叉当根 K 线是否同时满足 MA20 > MA60,与「金叉前早已多头」是两种严格度。较严写法要求金叉日三线已多头;较松写法允许 MA60 仍在 MA20 下方,仅把 MA60 当 distant filter。两种写法筛选命中数与回测曲线差异很大——必须选定一种写进策略名,避免改口径却不改结论。

LemonPicking 组件对应关系:三根 MA(或 EMA)→ 交叉条件(上穿)→ 两条 比较条件(>)→ AND → 入场信号;出场接 交叉条件(下穿)或比较条件;仓位用固定比例。界面没有名为「多头排列」的魔法开关——比较 + AND 就是全部语义。
MA 与 EMA:该用哪一套?
| 类型 | 特点 | 对过滤的影响 |
|---|---|---|
| MA(简单均线) | 平滑、滞后略大 | 多头排列切换更「钝」,假金叉相对少 |
| EMA(指数均线) | 对近期价更敏感 | 金叉更早,但震荡里「骗线」也可能更多 |
研究时建议:同一策略内三根线统一用 MA 或统一用 EMA,不要 MA5 配 EMA20 配 MA60——除非你有明确理由。对比实验应做「全 MA」与「全 EMA」两组,而不是在单组里混用。
两种严格度:同期多头 vs 滞后确认
| 写法 | 规则 | 松紧 |
|---|---|---|
| 严格同期 | 金叉当日必须 MA5>MA20>MA60 | 最严,易 0 命中 |
| 结构先行 | 金叉前 5 日内曾出现多头排列 | 较松,需 SEQUENCE 或自定义间隔 |
| 仅 distant filter | 金叉 + Close>MA60(不要求 MA20>MA60) | 介于两者之间 |
若你读系列前文关于 SEQUENCE 的说明,可把「结构先行」写成:先满足 MA20>MA60 持续 3 日,再允许 MA5 上穿 MA20 触发——这比纯 AND 更贴近「趋势已成立再金叉」的口语,但参数更多,更需 WFO 或手工样本外。
三、双均线 vs 三均线过滤:预期差异对照表
在跑回测之前,先建立可检验的假设,避免结果出来再编故事:
| 维度 | 仅双均线金叉 | 金叉 + 三均线多头过滤 |
|---|---|---|
| 信号频率 | 高,震荡市尤其多 | 明显降低 |
| 震荡市假信号 | 多 | 通常减少 |
| 趋势启动初期 | 能抓到更早 | 可能晚几根 K 线(等 MA60 排列) |
| 筛选命中(全市场) | 偏多 | 偏少,需警惕「过严 = 0 结果」 |
| 平均持仓时间 | 偏短 | 偏长(过滤后更像趋势跟踪) |
| 最大回撤 | 不一定更小 | 常因交易次数减少而下降,非保证 |
| 单账户可执行性 | 信号多 → 抢槽位 | 信号少 → 更易执行,但可能错过妖股 |
这张表是方向性预期,不是结论。你的参数(5/20/60 还是 10/30/120)、出场规则、标的池都会改写答案——这正是为什么要回测。
四、路径 A:编辑器手搭「趋势过滤金叉」
适合:希望完全掌控每一根均线周期与 AND 结构的人。
1. 新建策略并命名
建议名称包含周期与过滤语义,例如:金叉_5_20_60_多头过滤_v1。策略保存在本地,便于与「无过滤版」对比。
2. 组装顺序(与界面工作流一致)
- 1. 指标:MA(5)、MA(20)、MA(60)——三根独立组件,周期在属性面板修改。
- 2. 条件 A(金叉):交叉条件,MA5 上穿 MA20。
- 3. 条件 B、C(结构):比较条件 MA5 > MA20;比较条件 MA20 > MA60。
- 4. 逻辑:AND 合并 A、B、C(若 B 冗余可省略,但保留可读性)。
- 5. 入场信号:绑定 AND 输出。
- 6. 出场:MA5 下穿 MA20(与金叉对称),或增加 MA20 下穿 MA60 作硬止损趋势。
- 7. 仓位:如 30%;回测时启用单账户最大持仓数(例如 5)。
3. 验证策略
点「验证策略」检查逻辑闭环。筛选阶段只用入场;回测使用完整策略(含出场、仓位)。
五、路径 B:AI 翻译草稿,再人工收紧

可在 AI 输入框写(示例):
5 日均线上穿 20 日均线,且 5、20、60 日均线呈多头排列时买入;5 日均线下穿 20 日均线卖出;每次使用 30% 仓位。
生成后必做三件事(系列前文「AI 生成策略怎么验收」同一原则):
- 1. 核对周期与方向:是否误写成 EMA、是否把「上穿」写成「大于」。
- 2. 打开可视化编辑器:确认 AND 结构是否把「金叉」与「MA20>MA60」绑在同一入场。
- 3. 与无过滤版各跑一遍筛选:看命中数是否从「过多」降到「可研究区间」(如 5–30 只/日,视你的标的池而定)。
AI 是翻译官,不是保证过滤有效的裁判。
六、筛选:用命中数校准松紧

建议固定标的池(先自选股,再指数成分,最后全市场),用两种模式各扫一次:
| 模式 | 用途 |
|---|---|
| 最新 K 线 | 收盘后看「今天谁符合趋势过滤金叉」 |
| 区间任意 K 线 | 统计某段行情里信号密度 |
决策树:筛选结果怎么读
筛选结果 = 0?
├─ 是 → MA60 周期是否过长?→ 缩短至 MA40 试一次
│ └─ 仍 = 0 → 是否 AND 过严(金叉日强制 MA20>MA60)?→ 放宽结构或改 SEQUENCE
└─ 否 → 命中 > 50 只/日?
├─ 是 → 过滤不足,考虑加长 MA60 或加量能条件(见系列量价文)
└─ 否 → 进入批量回测
反例(口头共振,不可回测)
- – 「大概均线都向上」——没有比较条件,无法复现。
- – 「金叉且 K 线好看」——主观形态,引擎无法执行。
- – 无过滤版 80 只/日,有过滤版 0 只/日——不是「过滤有效」,是过滤过严到无法研究。
七、回测:批量普适性 + 单账户可执行性

1. 批量单标的回测——回答「规则广不广」
配置建议:
| 项目 | 建议 |
|---|---|
| 标的池 | 沪深300成分或自选股 30–50 只 |
| 区间 | 免费版近约 3 年日线;需更长牛熊切换用专业版约 15 年 |
| 对比组 | A 组仅金叉;B 组金叉 + 多头过滤 |
| 关注 | 中位数收益、胜率、最大回撤——不只盯最优一只 |
若 B 组中位数回撤下降、但中位数收益也明显下降,你要问:少做的交易,值不值——没有标准答案,只有你的风险偏好。
2. 单账户交易模拟——回答「买不买得上」
双均线版信号密集时,常出现「批量很好看、单账户买不进第 6 个信号」。三均线过滤后信号变少,单账户曲线有时反而更接近批量——这不是过滤「提高收益」,是降低资金冲突。
务必设置:初始资金、单次仓位比例、最大同时持仓。与系列前文中「批量 vs 单账户」一文同一逻辑:两种模式缺一不可。
3. 成本敏感
趋势过滤减少交易次数,佣金与滑点占比往往下降——但若剩余信号集中在追涨日,单笔滑点仍可能放大亏损。改过滤条件前后,对比交易次数与平均每笔收益,别只看年化。系列前文专门讨论过佣金与滑点对结论的扭曲——对低频趋势策略,费用占比通常低于高频双均线;但若过滤后仍剩「追涨型」买点,单笔滑点 0.2% 仍可能吃掉整段波段利润。
4. 如何读回测报告(别只盯年化)
| 指标 | 过滤前可能 | 过滤后常见变化 | 怎么解读 |
|---|---|---|---|
| 年化收益 | 波动大 | 可能下降 | 结合回撤一起看 |
| 最大回撤 | 深、次数多 | 有时变浅 | 非保证,需看中位数 |
| 胜率 | 40%–50% | 略升或不变 | 趋势策略胜率未必高 |
| 交易次数 | 多 | 明显减少 | 过少则统计不可靠 |
| 夏普(若有) | 被噪声拉低 | 可能改善 | 样本太短时夏普失真 |
批量模式下,请导出或记录每标的最大回撤分布:若过滤版只是把「最亏的几笔」删掉,中位数回撤会改善;若改善来自两只龙头,换一批股票可能失效——这正是动画复盘要抽查的内容。
八、概念推演:同一轮震荡里的两种命运
下面用概念性场景说明过滤在做什么(非实盘推荐,仅帮助建立直觉):
场景 A(震荡市假金叉):MA5 上穿 MA20,但 MA60 仍在 MA20 上方不远、走平。无过滤版触发;有过滤版因 MA20 未高于 MA60 而不触发。随后价格回落死叉——过滤版少一次小亏。
场景 B(趋势初段):价格 V 型反转,MA5 快速上穿 MA20,但 MA60 仍向下。无过滤版早进;有过滤版等待 MA20 上穿 MA60 后才在下一次金叉入场——可能晚 5–10 根 K 线,或完全错过急速拉升的题材短波。
场景 C(真趋势):三线已多头,MA5 回调后再金叉。两版都触发,买点接近——过滤版没有额外优势,但也没有伤害。
这三个场景说明:过滤不是免费午餐,而是在 A 与 B 之间权衡。你的研究问题应具体化为:「我更怕场景 A 的小亏,还是更怕场景 B 的错过?」回测用批量中位数回答,复盘用抽样回答。
九、动画复盘:过滤掉的是假金叉还是真启动?

汇总指标无法告诉你:被删掉的信号里,有没有后来翻倍的那只。动画复盘要做三件事:
- 1. 抽 5 只「B 组未触发、A 组触发」的票:看是被过滤「救了一命」还是「错过启动」。
- 2. 抽 5 只两组都触发的票:看买点是否仍在震荡区假突破。
- 3. 对照 MA60 斜率:过滤版若总在 MA60 走平仍买入,说明结构条件还需加「MA60 上行」类比较(若组件支持斜率;否则用 MA60 > MA60[5] 前一日近似)。
复盘若发现:大量假金叉确实消失,但趋势初段晚进 3–5 根 K 线——这是可接受的 trade-off,还是你策略目标不兼容,由你定。
与「信号太多买不过来」的联动
双均线版若出现系列前文所述「一天 30 个信号、单账户只能买 5 个」,三均线过滤的第一功能往往是降频而非「提高胜率」。验证时应同时记录:
- – 无过滤版:筛选命中数、单账户跳过信号比例
- – 有过滤版:同上
若过滤版跳过比例从 60% 降到 10%,单账户曲线会更接近批量——这是执行改善;若过滤版命中仍 > 30 且跳过比例仍高,应优先调最大持仓与仓位,而非继续加 MA120。
十、参数与稳健性:别在一只票上「调到完美」
| 做法 | 风险 | 建议 |
|---|---|---|
| 单票把 MA60 改成 MA47 直到曲线完美 | 过拟合 | 固定 1–2 组经典周期对比 |
| 只看 2024 年牛市段 | 样本偏 | 覆盖震荡 + 下跌段 |
| 过滤版收益更高就宣布胜利 | 幸存者偏差 | 看批量中位数与单账户 |
专业版提供参数实验室与 WFO(Walk-Forward) 样本外验证:若 5/20/60 在样本内最优、样本外失效,说明过滤可能是「拟合噪声」。免费版至少做:两组周期 + 两个时间段 的手工对比。
十一、常见反例与诚实边界
- 1. 「三均线一定比双均线稳」
错。震荡末期三线仍可能短暂多头,金叉后一样回落。
- 2. 把 MA 周期换成「斐波那契」就高级
回测只认数字。13/34/55 与 5/20/60 没有先天优劣,只有样本表现差异。
- 3. 过滤后 0 信号 = 策略成功
0 信号是不可操作,不是「无风险」。
- 4. 界面组件边界
LemonPicking 无「唐奇安通道」「均线斜率」等命名组件时,近似趋势可用比较条件组合(如价格 > MA60 且 MA20 > MA60),勿假设存在未实现功能。打板、分钟线、未复权等特殊口径属专业版能力,与本文日线后复权趋势过滤不是同一赛道。
- 5. 把过滤当成「保证盈利」
过滤只改变信号集合,不改变市场分布。三线多头时的金叉照样可能遇到宏观利空跳空——回测能做的是频率与期望的统计,不是消除风险。
十二、与出场、仓位联动的完整策略模板
仅改入场过滤不够。建议完整模板如下,便于 A/B 对比时只改一处:
| 模块 | 无过滤版 | 有过滤版(唯一差异) |
|---|---|---|
| 入场 | MA5 上穿 MA20 | MA5 上穿 MA20 且 MA5>MA20>MA60 |
| 出场 | MA5 下穿 MA20 | 相同 |
| 仓位 | 30%,最大 5 持仓 | 相同 |
| 回测区间 | 相同 | 相同 |
出场若改为「MA20 下穿 MA60 才卖」,会拉长持仓、改变回撤结构——那是另一个策略,不要与「仅加过滤」混在同一结论里。系列前文中关于止盈止损的深度讨论同样适用:过滤解决的是入场噪声,出场决定利润回吐与回撤长度。
十三、可执行清单:从双均线升级到三均线过滤
- 写清金叉定义(哪两条线、上穿)
- 写清多头排列(MA5>MA20>MA60 是否含金叉当日)
- 用 AND 合并,验证策略通过
- 补齐出场(死叉或结构破坏)与仓位
- 无过滤版 / 有过滤版各跑筛选,记录命中数
- 批量回测看中位数收益、回撤、交易次数
- 单账户模拟看资金曲线与买不进比例
- 动画复盘抽样对比「被过滤信号」
- 至少两个时间段或参数组交叉验证
周节奏建议(与系列 SOP 一致)
| 日 | 任务 |
|---|---|
| 周一 | 搭建无过滤 / 有过滤两版,跑筛选记录命中 |
| 周二 | 批量回测 + 记录中位数 |
| 周三 | 单账户模拟 + 对比差异 |
| 周四 | 动画复盘抽样 10 笔 |
| 周五 | 写结论:继续 / 改参数 / 证伪放弃 |
不必每天改参数;同一版策略至少跑满一周观察,避免「每天一个新策略」的研究幻觉。
数据与存储提醒
按 LemonPicking 架构,策略 SDL 与回测摘要保存在本机,不上传个人策略内容。对比无过滤 / 有过滤两版时,建议各保存独立策略文件(如 _baseline / _filter 后缀),回测结果本地可查——便于日后用同一口径复跑,而不是凭记忆说「上次过滤好像更好」。
结语:过滤假金叉,靠证据不靠口号
三均线多头排列是 A 股散户最经典的趋势过滤器之一,但是否值得叠在你的金叉策略上,只能由筛选密度、批量普适性、单账户可执行性、复盘抽样共同回答。零代码组件已经够用:MA、交叉、比较、AND、入场、出场、仓位——语义清晰,比「感觉均线都好了」强一个数量级。
若希望在本机完成「搭建 → 筛选 → 双模式回测 → 动画复盘」闭环,可了解 LemonPicking(零代码 A 股量化):策略与结果本地保存,A 股日线开箱可研究;AI 草稿、更长历史、参数实验室与 WFO 在专业版按需开启。
最后强调一句:过滤假金叉的目标不是把曲线调好看,而是明确你愿为「少做噪声交易」付出多少「晚进场」代价——这笔账只能由你的回测笔记回答,不能由短视频里的「三均线稳赢」回答。
下载与说明见产品页:
https://www.zpyztech.com/product/lemonpicking/
免责声明: 本文仅作量化研究方法与软件使用说明,不构成任何投资建议。历史回测不代表未来表现,请独立判断并自行承担交易风险。