Source: task5-ashare-leader/input/brief-v0.md
Last modified: 2026-05-16 18:43:47 · 16,401 bytes

Task #5 — A 股领头羊策略 (CANSLIM + Minervini SEPA) · Brief v0

Author: @RayDario

Sources: O'Neil 《How to Make Money in Stocks》 + Minervini 《Trade Like a Stock Market Wizard》 + 《Think and Trade Like a Champion》 + A 股 2015-2025 实证

Status: v0 — Kaite verification + @JimSimons data/backtest spec

---

0. 一页摘要

A 股 stock-picking strategy = **CANSLIM** (O'Neil 7 维度 基本面 + 价格 + 大盘) × **Minervini SEPA** (Stage 2 + VCP + 严格风控) × A 股本土化

**目标** (Kaite locked): **年化 15-25%, MDD ≤ 25%**

**核心选股 5 步**:

1. 大盘环境过滤 (M, 没有 ≠ 等于不交易, 是 mini-cypress 该策略最重要的开关)

2. 基本面筛选 (C + A: 单季 + 年度 EPS / 营收 / ROE / 现金流加速)

3. 价格强度 + 趋势 (L + Stage 2 trend template)

4. 入场 形态 (突破 + VCP 近似)

5. 风控硬规则 (-7% 到 -10% 止损, 单票 ≤ 8% NAV)

**A 股 4 大本土化关键**:

1. **M (大盘) 滤波器权重高于美股** (A 股 beta 占年化收益 70%+, 熊市硬选股是徒劳)

2. **涨跌停影响形态识别 + 止损执行** (止损不一定即时, 需要次日开盘价确认)

3. **概念股 / 题材股 是 leader 假象主要来源** (排除规则必备)

4. **机构 sponsorship 用北向资金 + 龙虎榜 + 主动型公募季报** 替代美股 Mutual Fund holdings

**关键不做** (v0):

- 不做 行业 ETF (那是 Task #6)

- 不做 题材 / 概念股 (排除)

- 不做 Pre-IPO / 次新股 (流动性 + 上市时间过滤)

- 不做 ST / *ST / 退市 风险股 (硬剔除)

- 不做 涨停接力 (短线游资玩法, 不是 leader strategy)

- 不做 主观选股 (v0 纯量化 CANSLIM 量化版)

---

1. 框架综合

1.1 CAN SLIM (O'Neil, 1959)

七维度筛选, 综合权重思想:

- **C** — Current Quarterly EPS: 最近季度 EPS YoY ≥ +25%

- **A** — Annual Earnings: 近 3 年 EPS CAGR ≥ +25%

- **N** — New: 新产品 / 新管理 / 新高 (catalyst)

- **S** — Supply and Demand: 低流通量 (small float) preferred + 量价配合

- **L** — Leader: RS rank ≥ 80 (in universe)

- **I** — Institutional sponsorship: 机构持仓 增加 + accelerating

- **M** — Market direction: only buy in uptrending market (O'Neil estimates this is ~75% of strategy success)

1.2 Minervini SEPA (Specific Entry Point Analysis)

- **Stage 2 Uptrend Trend Template** (8 条, 全部满足):

1. Current price > 150 MA

2. 150 MA > 200 MA

3. 200 MA trending up ≥ 1 month

4. 50 MA > 150 MA AND 50 MA > 200 MA

5. Current price > 50 MA

6. Current price ≥ 30% above 52-week low

7. Current price ≥ 75% of 52-week high (within 25%)

8. RS rank ≥ 70 (preferred ≥ 80)

- **VCP (Volatility Contraction Pattern)**: 横盘整理 with 波动率收敛 (3-5 次 contraction, 后一次比前一次窄)

- **入场**: 突破 pivot point with 放量 (≥ 1.5x 30 日均量)

- **风控**: **-7% 到 -10% 止损 (硬规则)**, 持仓 cap

1.3 两个 framework 的共通核心

- **基本面加速** (CANSLIM C/A + Minervini "earnings up" criterion)

- **相对强度** (CANSLIM L = Minervini Trend Template 第 8 条)

- **大盘环境** (CANSLIM M = Minervini Market Health)

- **严格风控** (Minervini -7% / O'Neil "cut your losses fast")

1.4 我对两者的整合 + 取舍

元素 O'Neil CANSLIM Minervini SEPA mini-cypress v0 采纳
基本面加速 C + A 单季 + 年度 EPS "earnings up" + "sales up" ✅ 整合: 季度 EPS YoY + 3 年 EPS CAGR + 经营现金流 sanity check
价格强度 L (RS ≥ 80) RS ≥ 70-80 ✅ A 股版: 250 日 RS rank ≥ 80 vs 沪深 300
趋势 不显式 Trend Template 8 条 ✅ 直接采用 Minervini 8 条, 量化版
入场形态 突破 + 放量 VCP + pivot breakout ✅ 量化近似: 突破 60 日 high + 放量, VCP 用 volatility contraction 量化标准
大盘环境 M (very critical) Market Health ✅✅ A 股权重比美股高, 必须独立模块
止损 "cut losses fast" -7% 到 -10% 硬规则 ✅ -8% 硬规则 (中位数)
机构 I (mutual fund) 不显式 ✅ A 股版: 北向资金净买入 + 龙虎榜 + 公募季报
新事件 N 新产品 / 管理 / 新高 不直接, 但 trend template 第 7 条含义类似 ⚠️ "新事件" 难量化, 我用 252 日新高 + 公告事件流近似
供给侧 S Small float preferred 不显式 ⚠️ A 股 small cap 流动性问题, 我反向用 — 排除流通市值 < 30 亿

---

2. A 股本土化关键调整

2.1 涨跌停 (vs 美股无此限制)

- **影响形态识别**: 突破日涨停 → 形态确认变滞后 (买不到 + 量真假难辨)

- **影响止损执行**: 跌停时无法即时止损 → 实际止损价可能远低于 -8% (次日开盘价确认)

- **应对**:

- 入场: 突破日涨停 → 待 T+1 / T+2 缩量回踩确认后再买 (避免追涨停)

- 止损: 跌停时不强制平仓 (没法成交), 待复牌或解封 → 按 close 价格触发 (实际可能 -15% 或更深)

- 回测: 涨跌停的实际成交假设要保守 (滑点 50bp+)

2.2 大盘环境 (M) — 最重要的本土化

- A 股 beta 占年化收益 70%+ (vs 美股 ~40%): **熊市硬选股是徒劳**

- M 滤波器开 / 关:

- **开** (允许新建仓): 沪深 300 收盘价 > 50 日 MA AND 50 日 MA > 200 日 MA

- **关** (停止新建仓, 持仓维持但触发止损正常): 沪深 300 跌破 200 日 MA OR 50 日 MA 跌破 200 日 MA

- **紧急关** (清仓): 沪深 300 单月跌 > 12% + 北向资金净流出 > ¥200 亿 → 全部持仓减至 30%, 等 M 重新开

- **历史校准**:

- 2018 全年 M 关 → 应该没有新仓位

- 2020-2021 H1 M 开 → 标准 stock-picking 期

- 2022 全年 M 关 → 减仓

- 2024 H1 M 关 → 减仓 (避开 1 月小盘股闪崩)

- 2024-09-24 后 M 重新开 → 抓反弹

2.3 排除规则 (题材 / 概念股 leader 假象)

- **排除**:

- ST / *ST / 即将 ST (硬过滤)

- 上市时间 < 12 月 (次新股波动失真)

- 流通市值 < 30 亿 (流动性 + 操控风险)

- 主营业务无 (壳公司)

- 行业属性: 高度概念 / 题材依赖 (e.g. 仅有"AI 概念" 但无 AI 实际收入的) — 用"基本面加速"过滤天然排除

2.4 机构 sponsorship A 股代理

- 北向资金净买入 (近 20 日 / 近 60 日) — 大资金外资风向

- 龙虎榜机构净买入 (近 60 日) — 主力监测

- 公募基金季报持仓变化 (季度更新, 慢但权威)

- 沪股通 / 深股通 持股比例增量

2.5 行业政策风险

- 风险: 个别行业被政策定点打压 (2021 教育 / 互联网, 2024 房地产)

- 应对: 不预判政策, 让基本面 + 价格信号说话; 但加 "行业近 20 日有重大监管利空" 触发筛除该行业新建仓 (e.g. 财新 / 国务院 政策事件流监控)

- 这条 v0 难自动化, v0+ 加入

---

3. CANSLIM 量化版 spec (JimSimons 可执行)

3.1 基本面层 (C + A)

对每只 A 股 i, 计算:

- **EPS_QoQ_i**: 最近季度 EPS YoY 增长率 (%)

- **EPS_YoY_3Y_i**: 近 3 年 EPS CAGR (%)

- **REV_QoQ_i**: 最近季度 营收 YoY (%)

- **ROE_TTM_i**: 滚动 12 月 ROE

- **OCF/NI_i**: 最近 4 季 经营现金流 / 净利润 (sanity check, 防"利润高但收不到钱")

**Pass 条件** (全部满足):

- EPS_QoQ_i ≥ +25%

- EPS_YoY_3Y_i ≥ +20% (略松, A 股 3 年 25% CAGR 太严)

- REV_QoQ_i ≥ +15% (营收增速作为利润支撑)

- ROE_TTM_i ≥ 12% (or 行业前 30%)

- OCF/NI_i ≥ 0.5 (防"利润高但现金流差")

3.2 价格强度层 (L + Stage 2)

对每只 通过 §3.1 的股票:

- **RS_250_i**: 过去 250 日收益 - 沪深 300 同期收益

- **RS_rank_i**: cross-section rank (1 = best)

- **Trend Template 8 条** (全部通过):

1. close > 150 日 MA

2. 150 日 MA > 200 日 MA

3. 200 日 MA 近 21 个交易日 斜率 > 0

4. 50 日 MA > 150 日 MA AND 50 日 MA > 200 日 MA

5. close > 50 日 MA

6. close ≥ 52 周低点 × 1.30

7. close ≥ 52 周高点 × 0.75

8. RS_rank_i ≤ universe top 20% (即 rank in top 20% of stocks passing §3.1)

3.3 入场形态 (S + VCP 量化近似)

对每只通过 §3.2 的股票, 计算最近 60 日:

- **VCP 量化**: 过去 60 日, 用 12 日窗口滚动计算"高点-低点" 振幅. 振幅序列应**单调收敛** (后一窗振幅 < 前一窗 × 0.85, 至少出现 2 次)

- **Pivot point**: 60 日 high

- **突破信号**: close > pivot point × 1.005 (≥0.5% 突破, 防假突破)

- **放量确认**: 当日成交量 ≥ 30 日均量 × 1.5

**入场触发**: VCP 通过 + 突破 + 放量 三条件**全部满足** → 当日收盘买入

3.4 机构 sponsorship (I, A 股版)

- **北向资金 60 日净买入** (基于持仓变化) > 0 → +0.5 score

- **龙虎榜近 60 日机构净买入** > 0 → +0.3 score

- **最近季报 公募基金持仓占流通股** 比上一季报增加 → +0.2 score

(I 不作为硬过滤, 作为打分加权, score 越高 优先级越高)

3.5 大盘环境 (M, 已 §2.2 详述)

- M 开 → 允许新建仓

- M 关 → 不新建仓, 持仓维持

- M 紧急关 → 减仓至 30% NAV

3.6 排除规则 (§2.3)

- ST / *ST / 上市 < 12 月 / 流通市值 < 30 亿 — 硬过滤前置

3.7 最终选股流程

1. **§3.6** 排除规则 → 全 A 股 - 排除 = 候选池 (~3500)

2. **§3.1** 基本面 → 通过 ~200-500 (因 regime 而异)

3. **§3.2** 价格强度 + Trend Template → 通过 ~30-80

4. **§3.3** VCP + 突破 + 放量 → 通过 5-15 (这是 trigger 信号, 不是当日全部入场)

5. **§3.4** sponsorship score → 排序

6. 选 top score 入场, 配合 §4 风控 (单票 ≤ 8% NAV, 单行业 ≤ 30%, 持仓 ≤ 15 只)

---

4. 风控 (硬规则 + 软监测)

4.1 单票风控

- **-8% 单笔止损** (硬规则) — 入场后 8% 跌幅自动 stop-loss (按 close 触发)

- 涨跌停时止损顺延至次日开盘 (无法即时成交)

- **保护性止损**: 持仓涨 ≥ 20% 后, 止损位上移至成本价 (breakeven)

- **趋势止损**: 持仓涨 ≥ 50% 后, 止损位上移至 50 日 MA

4.2 组合风控

- **持仓数 ≤ 15 只** (集中度, 防止过度分散稀释 alpha)

- **单票 ≤ 8% NAV** (持仓建立时)

- **单票 ≤ 12% NAV** (持仓涨幅触发上限, 超过则强制减至 8%)

- **单行业 ≤ 30% NAV**

- **现金 / 满仓**: M 开 → 满仓 (15 只 × 6-8%); M 关 → 不新建仓, 持仓维持; M 紧急关 → 30% NAV

4.3 整体组合止损

- 月度组合 MDD > -10% → 仓位减至 70%

- 月度组合 MDD > -15% → 仓位减至 40%

- MDD > -20% → 全清仓, 等 M 重新开

4.4 调仓节奏

- **入场扫描**: 每周一次 (周一上午基于上周收盘价 + 财务数据更新), 触发信号当周内 enter

- **退场**: 触发条件即时 (单票 -8% 止损 / 财务基本面证伪 / Trend template 破坏)

- **大盘环境检查**: 每日 close 后

---

5. 失败模式备忘

5.1 大盘单边熊 (CANSLIM M 失效场景)

- 风险: M 滤波器正确关闭, 但已建仓部分被熊市 dump

- 应对: §4.3 整体组合止损; M 紧急关 触发清仓

5.2 题材 / 概念股伪 leader

- 风险: 概念股 RS 排名前 20% 但基本面无, 入场后崩盘

- 应对: §3.1 基本面硬过滤 (EPS / 营收 / 现金流) 排除题材股 (无真实业绩支撑的)

5.3 涨跌停滑点

- 风险: 跌停止损实际 -15% 而非 -8%

- 应对: 接受 (A 股结构问题), 回测中模拟 50bp+ 滑点; 实盘时 prefer 流通市值 > 100 亿股票 (较少出现一字跌停)

5.4 行业政策黑天鹅

- 风险: 2021 教育 / 2024 房地产 全行业暴跌

- 应对: §4.2 单行业 ≤ 30%; §5.5 行业事件流监控 (v0+ 加自动 trigger)

5.5 财务造假 (A 股结构风险)

- 风险: 单季 EPS 高 + 营收高 但是财务造假 (e.g. 康得新 / 康美 / 瑞幸)

- 应对: §3.1 OCF/NI ≥ 0.5 sanity check; §3.1 ROE ≥ 12% 维持基本经营质量

- v0+: 加 "审计意见非标 + 应收账款增速 > 营收增速 × 2 倍" 二次过滤

5.6 因子衰减 (CANSLIM 在国内 2025-2026 weak market 表现)

- 风险: CANSLIM 在结构性行情中 (e.g. 2022-2023 哑铃市) leader 集中在少数赛道, 模型可能 over-concentrate

- 应对: §4.2 单行业 ≤ 30%; v0+ 监测因子各季度 IC, 失效时降权

5.7 信号 lag (财报披露窗口)

- 风险: 季报披露窗口 (4/8/10 月, 年报 4 月) 之间无新数据, 信号"陈旧"

- 应对: 接受 (制度问题); 在披露窗口后第 2 周做密集扫描

---

6. JimSimons 数据 + 回测 spec

6.1 数据层

**A 股股票**:

- 全市场日线 OHLCV + 复权因子 + 停牌 / ST / *ST / 退市 标记

- 流通市值 (动态) + 上市日期

- 行业分类 (申万一级 + 中信一级)

**财务**:

- 单季 EPS / 营收 / 净利润 / 经营现金流 (基础 4 季 + 历史 12 季 累计)

- TTM ROE / ROIC / 毛利率 / 净利率

- 年报 EPS / 营收 / 净利润 (3 年历史)

**机构持仓**:

- 北向资金日级 持股 (每股 / 每天)

- 龙虎榜机构净买入 (日级)

- 公募基金季报持仓 (季度)

**Benchmark**:

- 沪深 300 / 中证 800 日线 (RS + M 滤波器用)

- 北向资金每日总流入 / 流出 (M 紧急关 用)

**历史**:

- 股价 + 财务: 2015-01-01 至今

- 北向资金: 2015-01-01 起 (沪深港通开通)

- 龙虎榜: 2018-01-01 起

- 落地: ~/data/mini-cypress/rqdata/equity/2015-2026/

6.2 回测任务

**baseline 配置**:

- §3 选股流程 → §4 风控 → 每周扫描 + 即时退出

- M 滤波器开关

- 单票 -8% 硬止损

**OOS 拆分** (与 Task #4/#6 同):

- IS: 2015-01-01 至 2023-12-31 (覆盖 2015 股灾 / 2016 熔断 / 2018 单边熊 / 2019-20 结构牛 / 2021 高低切 / 2022 全年熊 / 2023 震荡)

- OOS-A: 2024-01-01 至 2024-09-23 (M 关期 + 1 月小盘股闪崩, 关键 stress test)

- OOS-B: 2024-09-24 至 2025-06-30

- OOS-C: 2025-07-01 至今

**输出指标** (每个 OOS 段独立):

- 年化 / vol / Sharpe / Sortino / Calmar

- max DD + recovery 时长

- 单笔胜率 + 平均盈亏比 + 平均持仓周期

- 行业暴露分布 + 单行业最大占比

- vs 沪深 300 / 中证 800 alpha / IR / beta

- M 开 / 关 期间表现差异 (验证 M 滤波器有效性)

- 排除概念股 vs 不排除 alpha 对比 (验证 §2.3)

- 涨跌停滑点敏感性 (0bp / 50bp / 100bp)

- 单票止损 -7% / -8% / -10% sensitivity

6.3 Failure case (回测异常 ping 我)

- IS 年化 > 35% → 极可能 overfit, 检查 RS rank threshold 或 入场量化标准

- IS Sharpe > 2.5 → 可能未计入交易成本 + 滑点

- OOS-A 年化 > 5% → 检查 M 滤波器是否正确关闭 (2024 H1 应该 M 关)

- 单笔胜率 > 60% → 异常高, 检查是否未模拟实际涨跌停

---

7. @Kaite verification

7.1 核心 framework 取舍

- 我整合 CANSLIM + Minervini SEPA, 而非二选一 (附件 §1.4 表格) — 你接受?

- A 股本土化 4 关键 (§2): 大盘 M 权重高 / 涨跌停 / 排除概念股 / 北向替代 — 你认同?

7.2 量化阈值

- 基本面 (§3.1): EPS YoY ≥ +25% / 3 年 CAGR ≥ +20% / 营收 ≥ +15% / ROE ≥ 12% / OCF/NI ≥ 0.5 — 你 OK 还是 build / strict?

- RS (§3.2): rank top 20% — 接受?

- Trend Template 8 条全部要满足 — 接受还是要松?

- VCP 量化 (§3.3): 12 日窗口振幅单调收敛 ≥ 2 次 — 接受还是要 toggle?

7.3 排除规则

- 流通市值 < 30 亿 排除 — 接受?如果你想覆盖小盘股, 可以降到 20 亿或 15 亿, 但要小心流动性

- 上市 < 12 月 排除 — 接受?

7.4 风控

- -8% 硬止损 — 接受还是要 -7% / -10%?

- 持仓 ≤ 15 只 + 单票 ≤ 8% — 接受?

- 单行业 ≤ 30% — 接受?

- 大盘 M 触发清仓 至 30% — 接受?

7.5 调仓节奏

- 每周扫描, 即时退出 — 接受还是要 daily / monthly?

7.6 不做的部分

- v0 不做 主观选股 + 不做日内 + 不做 涨停板接力 + 不做次新股 + 不做概念股 — 你接受?

- v0+ 是否优先实现哪条?

---

8. 与其他 task 协同

- **Task #4 全天候**: 不重叠 (Task #5 = 个股, Task #4 = 宽基 ETF + 多资产)

- **Task #6 ETF 轮动**: 不重叠 (Task #6 = 行业 ETF, Task #5 = 个股); 但行业 ETF 涨跌可作为 Task #5 选股的"行业景气度" 信号 (v0+ 引入)

- **Task #7 可转债**: 正股数据复用 (Task #5 拉的正股数据可直接给 Task #7 用)

- **Task #8 组合层**: Task #5 占资金权重 20% / 风险预算 ~30% (per Kaite + 我初版)