返回 Skill 列表
extension
分类: 数据与分析无需 API Key

待涨股票筛选工具(新增语音交互)

A 股每日估值偏离扫描器 v2.2:收盘后自动扫描全市场,筛选 6 类"估值偏离机会", 并支持生成 Excel / Word / PPT / HTML 四种格式的研究报告—— ① 绝对低估(v2.0 多倍数+多步DCF):6 大估值倍数综合判断 + 3 阶段 DCF 现金流折现 + 情景分析 + 敏感性测试 + 价值陷阱识别;② 相对低估(板块内对比):业务良好但估值 低于同板块同类型公司;③ 历史分位低估(市值/估值跌破历史最低分位);④ 舆情事件机会; ⑤ ETF 折溢价机会(akshare 1572 只 ETF);⑥ 高股息红利机会。v2.0 新增「板块偏离分析」: 板块 Z-Score 排名 + 板块低估榜 + 板块热力图 + 板块轮动信号。v2.1 新增「热门板块分析」: 板块资金流向 + 板块热度评分(资金50%+涨幅25%+换手25%)+ 热门板块排名 + 龙头股识别 + 「热门×低估」交叉命中(估值修复候选);新增「量化分析」:个股资金流信号(主力/超大单/ 大单)+ 动量信号 + 聪明钱综合分 + 融资融券信号;并补全财务字段提取(毛利率/经营现金流/ 资产负债率/自由现金流/EV-EBITDA),使价值陷阱识别与多阶段 DCF 在真实模式下真正生效。 v2.2 新增「组合聚合分析」(HHI 行业集中度 + 市值加权偏离度/风险 + 组合健康度)、 「数据质量评估」(完整性/时效性/一致性 → A/B/C/D 等级)、「轻量回测引擎」 (历史序列回放 → 命中率/前瞻收益/胜率/最大回撤/Sharpe)、「HTML 交互式 Dashboard」 (Chart.js 图表 + 可排序过滤表格)、并行扫描(--workers 提速)、JSON/CSV 结构化落盘, 并修复市值单位不一致导致的壳股误判(BUG-033)。 v2.3 新增「热门板块估值便宜股分析」(热门板块成分股内主动扫描估值洼地: 便宜度评分 0-100 = PE 折价 40 + PB 折价 30 + 市值 15 + 不追高 15,与板块 PE/PB 中位数对比,当日涨幅 ≥9% 标记追高风险,每板块输出 TOP N 补涨候选)与 「净值便宜板块分析」(ETF 折价按板块聚合:57 个板块关键词 + 同义词归一, 识别系统性净值折价板块,与热门板块交叉产出「热门+净值折价双重信号」), 新增 sample/etf.json(24 只 ETF)使 demo 模式 ETF/净值分析开箱即用, 四报告端全接线(Excel ⑭净值便宜板块 sheet / Word 五·六章节 / PPT 新页 / HTML 双面板)。 v2.4 新增「热门板块估值偏离股筛选」(板块估值画像 PE/PB 中位数 + 市值加权 PE + 跨板块 Z-Score;热度×估值象限:热门且便宜/热门且贵/冷门低估/冷门高估/中性; 个股偏离度评分 0-100 = 便宜度50 + 板块热度20 + 基本面质量15 + 资金确认15, 按强/中度/轻度/弱偏离分级输出补涨候选)与「板块资金流持续性」(今日/3日/5日 多周期交叉 → 持续流入/短期回流/持续流出/短期回撤/反复震荡);数据层全面增强: 指数退避重试(akshare 偶发超时不再直接降级 mock)+ 磁盘缓存(TTL 可配, 环境变量可覆盖)+ 多周期板块资金流接口 + 行情新字段(换手率/量比/60日涨幅) + 个股活跃度信号(放量活跃/缩量)与「净流入+放量」共振加分。 v2.5 新增「底部异动监控」:底部区判定(60日跌幅 + 市值历史分位 + PB 历史分位 → 0-100 底部得分)+ 量比/换手率异动检测(绝对阈值 + 全市场截面 robust z-score 双确认)→ 底部放量/高换手异动股名单(异动分 0-100,强/中/弱分级); 新增「资金监控」:主力净流入连续天数(持续流入/持续流出)+ 方向反转 (前期持续流出→今日流入 = 底部吸筹)+ 单日大额流入(占市值比); 量化算法优化:截面归一化升级为 median/MAD robust z-score(对妖股爆量稳健)+ 异动×资金共振加分(底部异动+吸筹/持续流入 → 异动分+5,对应股聪明钱分+5); 监控全程复用扫描阶段已拉取数据,不额外发请求,结果接入日志/终端/JSON 输出。 每日 15:30-16:00 输出四件套报告(Excel + Word + PPT + HTML),含股票代码、估值倍数、 综合偏离度评分 + 风险评分 + 触发逻辑链 + 机会确定性评分 + 量化信号 + matplotlib 图表。 Triggers include: 估值偏离、股票筛选、低估扫描、估值修复、超跌机会、事件驱动、 每日复盘、收盘后扫描、PEG 筛选、DCF 估值、相对估值、历史分位、管理层舆情、 估值分析、风险评分、综合偏离度、ETF 折价、ETF 套利、高股息、红利低洼、QDII 套利、 机会确定性、多步DCF、敏感性分析、板块偏离、板块Z-Score、Word报告、PPT报告、 研究报告、分析报告、板块热力图、板块轮动、热门板块、板块资金流、龙头股、 资金流向、主力净流入、聪明钱、量化信号、动量、融资融券、HTML报告、组合分析、 数据质量、回测、HHI、行业集中度、并行扫描、热门板块便宜股、便宜度评分、补涨候选、净值便宜板块、板块折价、ETF折价聚合、双重信号、 估值偏离股、偏离度评分、板块估值画像、热度估值象限、资金流持续性、多周期资金流、量比、换手率、放量活跃、网络重试、磁盘缓存、 底部异动、异动监控、资金监控、底部吸筹、放量异动、换手异动、底部放量、低位放量、robust z-score、连续流入、连续流出、大额流入。 v2.6 新增「语音交互」:说/打字均可操作(扫描/热门板块/底部异动/资金监控/ 单股分析/生成报告),TTS 三级降级(pyttsx3→Windows SAPI 零依赖→终端打印), STT 三级降级(speech_recognition→SAPI 听写→文本输入),口语指令解析支持 中文数字代码读法(「六零零五一九」→600519);「性能优化」:修复每股重复拉取 全市场快照的性能缺陷(spot 价格进程内缓存,N 次请求→1 次)+ sample JSON mtime 记忆化 + 个股资金流/ETF 磁盘缓存 + 多格式报告并行生成 + 阶段耗时分解 (--benchmark)。 Use when 用户需要在每个交易日收盘后筛选可能存在估值偏离的股票,生成 Excel + Word + PPT + HTML 四件套研究报告,并对每只股票给出明确的触发理由 + 风险提示 + 确定性评分 + 量化信号, 或需要监控底部区域量比/换手率异动与主力资金动向(吸筹/持续流入/大额流入)。

person作者: user_9d5a2a39hubcommunity

stock-valuation-screener

A 股每日估值偏离捕捉器 v2.6:收盘后自动扫描全市场,筛选 6 类"估值偏离机会", 输出 Excel + Word + PPT + HTML 四件套报告,含 Z-score/EV-EBITDA/DDM 量化分析、 组合聚合分析、数据质量评估与轻量回测引擎。v2.6 新增语音交互(说一句话就能 扫描/查板块/查个股/出报告,零依赖自动降级)与性能优化(spot 缓存修复 + 样本记忆化 + 报告并行 + 阶段计时)。

⚠️ 重要限制(请先阅读)

| 限制 | 说明 | |------|------| | 🔴 DCF 是简化版 | 基于历史 PE 中位数法估算,不是专业 DCF 模型(不预测未来现金流),仅作辅助参考 | | 🔴 公告检测基于关键词 | 通过关键词匹配判断"治理负面",存在误判可能 | | 🔴 次新股/冷门股支持不足 | 历史数据不足 5 年时,历史分位策略无法触发;冷门股财务数据可能缺失 | | 🟡 评分≠买入推荐 | 所有输出均为"机会提示",综合偏离度 70 分不代表一定会涨 | | 🟡 依赖 akshare | 真实模式需 pip install akshare,未装时自动降级到 mock 数据 | | 🟡 回测仅供参考 | v2.2 回测用历史市值变化代理收益,非实盘验证,不构成投资建议 |

💡 本工具定位:辅助研究分析的"估值偏离扫描器",帮您快速筛出值得关注的标的,不替代深度研究和专业判断

30 秒上手

# 1. 安装依赖
pip install -r requirements.txt

# 2. Demo 模式(不连网,使用 sample/ 内置数据)
python scripts/daily_scan.py --demo

# 3. 真实模式(连 akshare 拉数据)
python scripts/daily_scan.py

# 4. v2.2 全家桶:四件套 + 并行 + JSON/CSV + 回测
python scripts/daily_scan.py --report-format all --html-report \
    --workers 4 --save-json --save-csv --backtest

# 5. v2.6 语音交互(说/打字均可,无麦克风自动降级文本输入)
python scripts/daily_scan.py --voice --demo
python scripts/voice_interface.py --demo        # 也可直接启动

# 6. v2.6 性能基准(打印各阶段耗时分解)
python scripts/daily_scan.py --demo --benchmark

🧹 上传前清理(v2.0.2)

skill 内不应包含二进制文件。运行后如产生 .pyc 缓存或临时图表,上传时会触发"禁止上传二进制文件"错误。

# 清理 .pyc 缓存(推荐每次打包前运行)
python scripts/clean_pyc.py

# 推荐:设置环境变量避免 .pyc 生成
# Windows CMD:    set PYTHONDONTWRITEBYTECODE=1
# Windows PS:     $env:PYTHONDONTWRITEBYTECODE=1
# Linux/Mac:      export PYTHONDONTWRITEBYTECODE=1

图表 PNG 默认输出到 %TEMP%\stock-valuation-screener\charts\不在 skill 包内,无需手动清理。

6 类筛选策略

| # | 策略 | 核心指标 | |---|---|---| | ① | 绝对估值低估 | DCF / PEG / DDM(含 v1.5 两阶段 Gordon)综合判断内在价值高于当前市值 | | ② | 相对估值低估 | 同板块内 PE/PB 百分位 < 20% 且 ROE > 10% | | ③ | 历史分位低估 | 当前 PE/PB/市值跌破近 5 年最低 10% 分位(+ v1.5 Z-score σ 偏离) | | ④ | 舆情事件机会 | 治理负面 + 业务面正常 + 近 N 日累计跌幅 > 10%(v1.5 修复跌幅逻辑) | | ⑤ | ETF 折溢价机会 | 折价率 < -1% 或 溢价率 > 1.5%(v1.5 接线,独立数据源 fund_etf_spot_em) | | ⑥ | 高股息红利机会 | 股息率>5% + ROE>8% + PB≤5 + 增长/稳定分红(v1.5 接线) |

关键能力

  • 零密钥:akshare 公开数据,无需任何 API Key
  • 可降级:无网络时用 sample/ 数据离线跑
  • 可配置:所有阈值在 config.yaml 中可调
  • 可调度:v1.4 起通过 cmd /c + schtasks 直接调用 daily_scan.py(不依赖 .bat)
  • 可解释:每个股票都附自然语言触发理由
  • 合规:仅"机会提示",无买卖建议,含免责声明
  • 四件套报告(v2.2):Excel + Word + PPT + HTML Dashboard
  • 组合视角(v2.2):HHI 行业集中度 + 加权偏离度/风险 + 组合健康度
  • 数据质量(v2.2):完整性/时效性/一致性 → A/B/C/D 等级
  • 回测验证(v2.2):策略历史命中率 / 前瞻收益 / 胜率 / 回撤
  • 并行提速(v2.2):--workers N 线程池扫描
  • 结构化输出(v2.2):--save-json / --save-csv
  • 热门便宜股(v2.3):热门板块内估值洼地主动扫描(便宜度评分 0-100 + 追高风险惩罚)
  • 净值便宜板块(v2.3):ETF 折价按板块聚合 + 热门×净值折价双重信号(--strategies nav
  • 语音交互(v2.6):--voice 进入会话;「扫描一下 / 热门板块 / 底部异动 / 资金监控 / 分析 600519 / 生成 word 报告」;TTS 三级降级(pyttsx3 → Windows SAPI 零依赖 → 终端打印),STT 三级降级(语音 → 听写 → 打字),中文数字读法自动转代码(「六零零五一九」→ 600519)
  • 性能优化(v2.6):修复每股重复拉取全市场快照的缺陷(spot 进程内缓存,N 次请求 → 1 次)+ sample JSON 记忆化 + 个股资金流/ETF 磁盘缓存 + 多格式报告并行生成 + timings 阶段耗时分解(--benchmark

输出示例

每日估值偏离扫描汇总
  扫描时间:    2026-08-09 15:30:00
  全市场股票数: 35
  命中股票数:   30
  命中比率:     85.7%

策略分布:
  ①绝对低估  23  57.5%
  ②相对低估  2   5.0%
  ③历史分位  13  32.5%
  ④舆情机会  2   5.0%

组合摘要(v2.2):
  行业集中度 HHI: 1291(分散)
  加权综合偏离度: 65.3
  组合健康度:    良(72.0)

数据质量(v2.2):
  平均分: 80.0  等级: A 30 / B 0 / C 0 / D 0

每个股票展示:

| 字段 | 示例 | |---|---| | 代码 | 002230 | | 名称 | 科大讯飞 | | 行业 | 人工智能 | | 触发类型 | 3 历史分位低估 + 4 舆情事件机会 | | 评分 | 98 | | PE-TTM | 65.8 | | PB | 4.50 | | ROE | 8.5% | | 触发理由 | 历史分位低估:PE-TTM 65.8(百分位 10%,近 5 年最低 60.5)... |

目录结构

stock-valuation-screener/
├── SKILL.md               # 主文档(agent 执行手册)
├── README.md              # 本文件
├── requirements.txt       # Python 依赖
├── pytest.ini             # pytest 配置
├── config.yaml            # 阈值/股票池/参数
├── (run_daily.bat 已删除)  # v1.4 起通过 cmd /c + schtasks 直接调用
├── scripts/
│   ├── daily_scan.py      # 主入口(v2.6:--voice / --benchmark / 报告并行)
│   ├── voice_interface.py # 🆕 v2.6 语音交互(口语解析 + TTS/STT 降级 + 会话)
│   ├── data_fetcher.py    # 数据获取层(akshare + mock;v2.6 spot 缓存 + 记忆化)
│   ├── export_excel.py    # Excel 导出(v1.x 兼容路径)
│   ├── strategies/
│   │   ├── absolute_value.py   # 策略 ①
│   │   ├── relative_value.py   # 策略 ②
│   │   ├── historical_low.py   # 策略 ③
│   │   ├── event_drive.py      # 策略 ④
│   │   ├── etf_discount.py     # 策略 ⑤
│   │   ├── dividend_yield.py   # 策略 ⑥
│   │   ├── hot_sector.py       # v2.1 热门板块分析(v2.3 便宜股评分)
│   │   ├── backtest.py         # v2.2 轻量回测引擎
│   │   ├── nav_discount.py     # v2.3 净值便宜板块分析
│   │   └── undervalued_screener.py  # v2.0 多倍数综合 + 多步DCF
│   ├── utils/
│   │   ├── valuation_analyzer.py  # 综合偏离度(10 维度动态加权)
│   │   ├── risk_analyzer.py       # 风险评分
│   │   ├── dcf_simplified.py      # 简化 DCF / 两阶段 DDM
│   │   ├── data_validator.py      # 数据校验
│   │   ├── quant_analyzer.py      # v2.1 量化信号(资金流/动量/聪明钱)
│   │   ├── portfolio_aggregator.py  # v2.2 组合聚合(HHI/健康度)
│   │   ├── data_quality.py          # v2.2 数据质量(A/B/C/D)
│   │   ├── anomaly_monitor.py       # v2.5 底部异动 + 资金监控
│   │   └── opportunity_confidence.py  # 机会确定性
│   └── reports/
│       ├── base.py / chart_builder.py  # 字体/图表基础
│       ├── excel_reporter.py           # v2.0 Excel(v2.2 加组合/质量 sheet)
│       ├── word_reporter.py            # v2.0 Word(v2.2 加组合/质量章节)
│       ├── ppt_reporter.py             # v2.0 PPT(v2.2 加组合/质量页)
│       └── html_reporter.py            # v2.2 HTML Dashboard
├── tests/                 # 639 个测试用例(v1.0~v2.6 全量)
├── sample/                # 内置数据(无网络时可跑 demo;v2.3 新增 etf.json)
├── references/            # 参考文档
│   ├── valuation-methods.md   # 估值方法详解
│   ├── data-sources.md        # 数据源对比
│   ├── disclaimer.md          # 免责声明
│   └── scheduling.md          # 定时任务配置
└── outputs/               # 默认输出目录

定时任务

schtasks /create /tn "StockScreenerDaily" ^
  /tr "cmd /c cd /d D:\claude 开发\skill of me\stock-valuation-screener && python scripts\daily_scan.py" ^
  /sc weekly /d MON,TUE,WED,THU,FRI /st 15:30:00

❓ 常见问题与避坑指南

Q1: DCF 估值偏差很大?

A: 本工具的 DCF 是简化版(历史 PE 中位数法),不是专业 DCF 模型(不预测未来现金流)。它只是一种快速估算,用来判断当前估值是否偏离历史中枢。

Q2: 策略④舆情事件机会总是 0 条?

A: 舆情策略依赖公告关键词匹配"治理负面",如果近期没有负面公告,该策略不会触发。这是正常的。

Q3: 次新股分析结果为空?

A: 历史分位策略需要近 5 年数据,次新股历史不足会自动跳过。绝对估值和相对估值策略仍可触发。

Q4: 真实模式报错?

A: v1.2 起已自动降级到 mock 模式。如需真实数据:pip install akshare

Q5: 如何只跑某一个策略?

A: 使用 --strategies 参数:

python scripts/daily_scan.py --strategies etf,dividend          # 只跑策略⑤⑥
python scripts/daily_scan.py --strategies absolute,relative    # 只跑策略①②

Q6: 综合偏离度评分多少算"低估"?

A: 评分是相对值。一般:≥70 高度关注、50-70 适度关注、<50 暂时观望。但请结合风险评分和触发逻辑综合判断。


📖 术语解释

| 术语 | 含义 | |------|------| | DCF | 现金流折现估值法。本工具使用简化版(历史 PE 中位数法),非专业 DCF | | DDM | 股利折现模型。v1.5 新增两阶段 Gordon DDM | | PEG | 市盈率/盈利增长率。PEG<1 通常认为估值合理或偏低 | | PE-TTM | 滚动 12 个月市盈率 | | PB | 市净率。PB<1 表示股价低于每股净资产 | | ROE | 净资产收益率 | | Z-score | 标准分数,表示当前值偏离历史均值多少个标准差 | | EV/EBITDA | 企业价值/息税折旧摊销前利润 | | IOPV | ETF 的实时参考净值 | | 综合偏离度 | 10 维度加权评分(0-100),越高表示当前估值越低于合理水平 |


⚠️ 重要声明

本工具仅供研究分析使用,不构成任何投资建议。 详见 references/disclaimer.md

更新日志

v2.6.0 (2026-08-22) — 语音交互 + 性能优化

  • 新增语音交互(scripts/voice_interface.py--voice):六大口语指令(扫描/热门板块/底部异动/资金监控/单股分析/生成报告);中文数字读法转代码;代码提取不用 \b 词边界(Unicode 下汉字也是单词字符)改用数字守卫
  • 零依赖语音引擎:TTS 三级降级(pyttsx3 → Windows SAPI → 终端打印);STT 三级降级(speech_recognition → SAPI 听写 → 文本输入);config.yaml 新增 voice 配置节;speak/listen/executor 全可注入便于测试
  • 性能修复:旧版 fetch_financial_akshare 每股重复拉一次全市场快照(ak.stock_zh_a_spot_em)算股息率,现为 get_spot_price_map() 进程内缓存(600s 内只拉 1 次)
  • 性能优化:sample JSON mtime 记忆化(深拷贝隔离)+ 个股资金流/ETF 磁盘缓存(TTL)+ 多格式报告线程池并行生成 + timings 阶段耗时分解 + --benchmark
  • 测试 582 → 639 passed(v2.6 新增 57)

v2.3.0 (2026-08-17) — 热门板块便宜股 + 净值便宜板块

  • 新增热门板块估值便宜股分析:便宜度评分 0-100(PE/PB 折价 + 市值 + 追高惩罚),每板块 TOP N 补涨候选(strategies/hot_sector.py
  • 新增净值便宜板块分析:ETF 折价按板块聚合(关键词提取 + 同义词归一)+ 热门×净值折价双重信号(strategies/nav_discount.py
  • 新增 sample/etf.json(24 只 ETF),demo 模式 ETF/净值分析开箱即用;CLI 支持 --strategies nav
  • 四报告端全接线:Excel「⑭净值便宜板块」sheet + Word「五·六」章节 + PPT 新页 + HTML 双面板
  • 质量固化:全项目编译零警告 + 禁止裸 except 烟囱测试
  • 测试 465 → 507 passed

v2.2.0 (2026-08-17) — 组合分析 + 数据质量 + 回测 + HTML 四件套

  • 新增组合聚合分析:HHI 行业集中度 + 市值加权偏离度/风险 + 组合健康度 + 警示(utils/portfolio_aggregator.py
  • 新增数据质量评估:完整性/时效性/一致性 → A/B/C/D 等级(utils/data_quality.py
  • 新增轻量回测引擎:策略 1/3/6 历史命中率 / 5·20·60 日前瞻收益 / 胜率 / 最大回撤 / Sharpe(strategies/backtest.py--backtest
  • 新增 HTML 交互式 Dashboard(Chart.js 图表 + 可排序过滤表格,reports/html_reporter.py
  • 并行扫描 --workers N(线程池,与串行结果一致)+ --save-json / --save-csv 结构化落盘
  • 修复 BUG-033:mock 市值单位(亿元)与 akshare(元)不一致导致 demo 壳股误判
  • Excel 增「⑮组合摘要」「⑯数据质量」sheet;Word/PPT 增对应章节/页
  • 测试 390 → 465 passed

v1.5.0 (2026-08-10) — 接线修复 + 量化分析增强

  • 修复 4 类接线缺陷:ETF(⑤)/高股息(⑥) 策略此前从未真正执行、export_excel 忽略策略 5/6、event_drive 跌幅逻辑、DCF 股本计算
  • 新增 3 个量化维度:Z-score 统计偏离(σ)、EV/EBITDA 相对估值、两阶段 Gordon DDM
  • 综合偏离度从 7 维扩到 10 维动态加权(缺失维度权重自动分摊)
  • 机会确定性评分接入 Excel(⑨机会确定性 sheet)
  • 测试 223 → 267 passed

v1.2.0 (2026-08-09) — 健壮性 + 测试覆盖

  • 修复 7 类真实缺陷(详见 SKILL.md BUG 列表)
  • akshare 失败自动降级到 mock
  • ROE 负数显示 N/A(保留亏损信号)
  • 配置文件缺键回退默认值
  • 日期生成用 PowerShell(跨区域稳健)
  • 测试 47 → 86 passed

v1.0.0 (2026-08-09) — 首发

  • 4 类筛选策略 + 6 sheet Excel + mock/akshare 双后端