🎯 Stop 5 估值看板 · 更新于 2026-06-13 07:22 · 共 143 只(4⭐+5⭐) · 重资产 20 只 / 轻资产 123 只
显示 0 / 143 只
📖 筛选过程说明
完整解析 Stop 5 估值看板的算法、字段、评分逻辑 · 更新于 2026-06-13 07:22
🎯 业务背景
本看板是 A 股 5400 只 → ~195 只 → ~103 只 → 10-20 只核心持仓池 的中间环节。Stop 5 从 Stop 4 输出的 4⭐ + 5⭐ “好公司”中、以量化估值指标 + 主力资金 跰选最适合“动手”的品种。
- Stop 1: 4877 只上市状态正常 + 存续超过 1 年
- Stop 2: 303 只 财务健康 (连续 3 年 ROE>8%, 连续 3 年净利润为正, 手头现金>有息负债等)
- Stop 3: 195 只 运营高效 (ROIC、ROA、毛利率、应收账款周转、扣非利润等)
- Stop 4: 4⭐ + 5⭐ 共 103 只 (质量 + 估值 + 管理层风险扣分, 绝对分数≥85)
- Stop 5 (本看板): 在 103 只基础上、5 个估值指标 + 主力资金 60 日 → 重点关注 5-20 只
🔄 5 个估值指标 + 两套权重
估值总分 100% 由 5 个指标加权得出。按“轻资产” / “重资产” 选不同权重(产业特征决定)。
5 个指标 (各打 0-4 分)
| 指标 | 口径 | 分位越低越好 | 取数源 |
| PE (pe_ttm) | 滚动 12 个月市盈率 | 5 年内 PE 分位 % | tushare daily_basic |
| PB | 市净率 | 5 年内 PB 分位 % | tushare daily_basic |
| 股息率 (dv_ratio) | 近 12 个月现金分红 / 股价 | 5 年内 分位 % (越高越好) | tushare daily_basic |
| PEG (pe/增长率) | PE / 未来 3 年净利增速预期 (未来接入) | 目前默认 2 分 | — |
| 回撤 (max_dd_1y) | 近 240 个交易日 max drawdown | 起 -45% 递增 | tushare daily |
PE / PB 5 档评分 (越低越贵打分越高)
pe_pct < 10% → 4 分 (极便宜)
pe_pct < 30% → 3 分 (便宜)
pe_pct < 50% → 2 分 (合理)
pe_pct < 70% → 1 分 (偏贵)
pe_pct ≥ 70% → 0 分 (极贵)
股息率 5 档评分 (越高越好)
div_pct > 90% → 4 分
div_pct > 70% → 3 分
div_pct > 50% → 2 分
div_pct > 30% → 1 分
其余 → 0 分
回撤 5 档评分 (越接近 0 越好)
dd > -15% → 4 分 (仅小跌, 抗跌)
-25% ~ -15% → 3 分
-35% ~ -25% → 2 分
-45% ~ -35% → 1 分
dd < -45% → 0 分 (深跌, 绕开)
两套权重 (重/轻资产)
| 指标 | 轻资产 (医药/科技/消费) | 重资产 (银行/房产/钢铁/公用事业) |
| PE | 40% | 15% |
| PB | 15% | 40% |
| 股息率 | 20% | 25% |
| PEG | 15% | 0% (重资产不适用) |
| 回撤 | 10% | 10% |
重资产行业关键词 : 银行 / 房地产 / 钢铁 / 水泥 / 煤炭 / 有色 / 化工 / 化纤 / 航空 / 航运 / 电力 / 公用 / 运输 / 建筑 / 公路 / 港口 / 农林 / 传媒 / 汽车
💰 主力资金 60 日流向 (买入信号重要参考)
从 tushare.moneyflow 拉取超大单 + 大单 + 中单 + 小单 的 60 日买卖金额。
主力 = 超大单 + 大单 (买 - 卖)
散户 = 中单 + 小单 (买 - 卖)
主力资金 5 档评级
| 60 日主力净流入 (亿元) | 等级 | 含义 |
| ≥ +5 亿 | 🟢 强流入 | 主力抢购, 资金面报好 |
| +1 ~ +5 亿 | 🟢 流入 | 主力介入 |
| -1 ~ +1 亿 | 🟡 中性 | 主力观望 |
| -5 ~ -1 亿 | 🟠 流出 | 主力减持 |
| < -5 亿 | 🔴 强流出 | 主力出逃, 回避 |
买入信号 5 档 (颜色 + 资金 联合判定)
最终信号评分 = 颜色分 × 0.6 + 资金分 × 0.4 (颜色更重要)
| 信号 | 综合分 | 含义 |
| 🔔 强买入 | ≥ 3.5 | 深绿/绿 + 主力强流入 → 重点关注 |
| 🟢 可关注 | 2.5 ~ 3.5 | 颜色不差 + 资金流入 |
| 🟡 观忘 | 1.5 ~ 2.5 | 中性, 继续跟踪 |
| 🟠 谨慎 | 0.5 ~ 1.5 | 资金或颜色 3 个负信号 |
| ⚪ 回避 | < 0.5 | 颜色 + 资金双负 |
🟰 主力 vs 散户 的关系
主力与散户是零和游戏。主力净流入 + 散户净流出 约 0 价(资金不变)。
- 主力强流入 + 散户交出筹码 = 🟢 健康上涨 (资金向聪明钱集中)
- 主力流出 + 散户进场 = 🔴 危险信号 (散户接棒, 远离)
- 双方都中性 = 🟡 震荡
🎨 颜色 + 行动 判定
按加权分 + 估值分位 联合判定(估值分位是 max(pe_pct, pb_pct))。
| 颜色 | 加权分 | 估值分位限制 | 行动 |
| 深绿 | ≥ 3.5 | < 40% | 可买 |
| 绿 | ≥ 2.5 | < 40% | 可分批 |
| 绿 (等回调) | ≥ 2.5 | ≥ 40% | 可分批 (等回调) |
| 黄 | 1.5 ~ 2.5 | — | 观望 |
| 淡红 | 1.0 ~ 1.5 | — | 不买 |
| 深红 | < 1.0 | — | 不碰 / 卖出 |
| 深红 (特例) | 任意 | PE>70% 且 PB>70% | 不碰 / 卖出 |
🛡️ PE / PB 双口径 min 验证 (关键算法)
为避免季报披露日 PE 跳变 (如奥普科技单日 PE 17 → 117) 污染分位计算,加入两道防护:
第一道: ma60 平滑序列
给每只股票的 PE / PB 计算 ma60 + excluded 两列:
ma60[t] = average( vals[t-60 ~ t-1] 中, is_excluded=False 的值 )
is_excluded[t] = ( vals[t] > ma60[t] × 2.5 )
特点 : ma60 是不含当天的纯历史均值; 异常日 不贡献给未来的 ma60。
第二道: 双口径交叉验证
对 PE / PB 同时计算两个分位:
分位 A (去噪分位) = (vals[excluded=False] < cur) / count × 100
分位 B (ma60 分位) = (ma60_clean < cur) / count × 100
最终分位 = max(A, B) ← 取更保守 (估值更贵) 那个
这样 既去掉了异常日, 又用平滑序列交叉验证。如果 A 和 B 差异大, 说明该股 PE 有明显跳变问题。
典型例子
奥普科技 603551.SH :
- 原始分位: 17.3% (看似极便宜) — 被 60 个异常日 (2022-04 季报爆雷后) 拉低
- ma60 分位: 49.0%
- 去噪分位: 46.1%
- 最终: 49.0% (中位偏下) — 假便宜被识破
茅台 600519.SH :
- 原始分位: 1%
- ma60 分位: 7.8%
- 去噪分位: 12.1%
- 最终: 12.1% (仍便宜, 但不像原始那么极端) — 季报 跳变是上跃不是下跳
📊 字段说明 (表格列)
code / name
股票代码 / 名称 (点击可跳东方财富)
industry
所属申万行业
asset_type
重资产 / 轻资产 (判定见上文关键词)
pe_ttm
滚动 12 个月 PE (原始值, 看板只看这个)
pe_pct
PE 双口径 min 后分位 (%) — 0%=最便宜, 100%=最贵
pe_pct_a
PE 类型 A 分位: 去噪分位 (剔除了 ma60×2.5 以上异常日)
pe_pct_b
PE 类型 B 分位: ma60 序列分位 (平滑后)
pe_excluded_today
今日 PE 是否是异常日 (True/False)
pb
当前市净率 (原始值)
pb_pct
PB 双口径 min 后分位 (%)
div_yield
近 12 个月股息率 (%, 原始值)
div_pct
股息率分位 (%) (越高越好)
max_dd_1y
近 240 个交易日最大回撤 (%, 负数)
weighted_score
最终加权分 (0-4) = 按重/轻资产 权重 × 5 个指标 score
color
颜色 (深绿 / 绿 / 黄 / 淡红 / 深红)
action
行动建议 (可买 / 可分批 / 观望 / 不买 / 不碰)
quality_star
Stop 4 质量星级 (⭐⭐⭐⭐ / ⭐⭐⭐⭐⭐)
🔄 完整数据流
1
tushare daily_basic 拉取
某只股票近 5 年的 daily_basic (含 pe_ttm / pb / dv_ratio), 增量拉取到今天
↓
2
缓存 (parquet)
存到 cache/meta/<code>_basic.parquet, 增量时 pd.concat + drop_duplicates 合并
↓
3
add_ma60_and_excluded (现算)
逐只计算 ma60 + excluded 两列 (不存 parquet, 每次现算 30ms/只)
↓
4
双口径分位计算
类型 A (去噪) + 类型 B (ma60) → max(A, B) 作为最终分位 → score_pe_pct 换算 0-4 分
↓
5
加权 + 颜色 + 行动
5 个 score 按重/轻资产权重加权 → 0-4 分 → color_action() 判定颜色 + 行动
↓
6
看板生成 + 部署
stop5_dashboard.py 读 CSV → stop5_dashboard.html → 部署到公网
⚠️ 已知问题 + 未来计划
- PEG 未接入 : 需 tushare 预测数据或自维护“未来 3 年净利增速预期”, 目前默认 2 分
- 对周期股 PE 分位偏高 : 重资产权重里 PE 只占 15%, 主要看 PB (40%)
- Stop 6 未启动 : 接下来从深绿/绿 + 行业集中度过滤 → 10-20 只核心持仓
- 季度重跑 : 每季度跑一次 Stop 2/3/4 刷新 195 只池子, Stop 5 日常跑增量