踏浪寻底·估值洼地猎手
Overview
一个低估行业三维筛选系统:先扫描申万二级行业挑出估值洼地,再对入选行业用均线 / MACD / 量能三维共振研判动量,最后为达成“关注”的行业筛选规模最大(AUM 最大)的场内行业 ETF。输出单文件自包含的中文 HTML 网页(白色背景、金牛图标、移动端适配、含免责声明)。
何时使用
- 用户想找“低估行业 / 估值洼地 / 被错杀的板块”
- 用户要求用均线排列 + MACD 金叉 + 量能放量三维共振研判行业走势
- 用户要求输出“低估行业对应的行业 ETF(按规模取最大)”
- 用户提到“踏浪寻底 / 估值洼地猎手 / 三维共振”等关键词
三步筛选流程
第一步 | 低估行业筛选
扫描申万二级行业,按规则取估值指标(一般行业取 PE(TTM),周期行业取 PB),比较当前估值处于近五年日度序列的百分位,保留 < 10% 的行业。结果表含:行业、申万代码、类型、当前 PE、当前 PB、信号指标近五年百分位、是否达标、数据来源。
第二步 | 行业走势三维分析
以各行业代表性行业 ETF(紧密跟踪行业指数,走势代理)的日 K 线,从三维度研判:
- 均线:MA5 / MA20 / MA60 排列 —— 多头(红/强势) | 震荡(橘/中性) | 空头(绿/弱势)
- MACD:长线参数 (24, 52, 18) 金叉(近 20 个交易日内 DIF 上穿 DEA)
- 量能:近一个月(21 个交易日)阳线成交量 / 阴线成交量 > 1.5 为“放量”
满足 2 项 标“关注”,满足 3 项 标“重点关注”。
第三步 | 行业 ETF 筛选
为第二步标注为“关注 / 重点关注”的行业,筛选对应规模最大(AUM 最大)的场内行业 ETF;无对应 ETF 则显示“无”。未达关注标注的行业不在此步列出。
运行方式
# 在 skill 根目录下
python3 scripts/valuation_hunter.py
- 输出:
/workspace/踏浪寻底_估值洼地猎手.html(若无/workspace则输出到当前目录) - 金牛图标
bull.png与脚本同目录,运行时自动 base64 内嵌进 HTML,单文件自包含、跨设备可打开;图标缺失时回退为内联 SVG 简笔金牛。
依赖与数据来源
- 运行依赖:Python 标准库即可(
urllib/base64/json等)。 - 可选依赖
akshare:用于通过新浪 ETF 列表刷新各 ETF 实时价;未安装或拉取失败时,自动回退到脚本内置的兜底价(2026-10-23 快照),不影响主流程。 - 走势 K 线 / ETF 实时行情:新浪财经(
money.finance.sina.com.cn)/腾讯自选股(qt.gtimg.cn)—— 默认数据源,遵循用户“首选新浪 / 腾讯”的要求。 - 申万行业估值五年百分位:新浪 / 腾讯不提供申万行业估值序列,唯一可靠源是东方财富数据中心。
扩展:LIVE 实时估值模式
当前内置 UNDERVALUED_SNAPSHOT(2026 年公开研报真实快照:证券Ⅱ / 保险Ⅱ / 食品饮料 / 中药 / 能源金属),保证沙箱与本机均可直出结果。
要获得全市场实时扫描,在用户本机(不受沙箱反爬限制)实现 fetch_live_valuation():以东方财富近五年 PE/PB 日度数据扫描全部 105 个申万二级行业并计算精确百分位,替换 UNDERVALUED_SNAPSHOT 即可。行业→ETF 映射表 INDUSTRY_ETF_MAP 与指标算法(compute_ma_arrangement / compute_macd / compute_volume_ratio)无需改动。
输出物与免责声明
- 交付物:
踏浪寻底_估值洼地猎手.html(主报告)+valuation_hunter.py(可运行系统)+bull.png(金牛图标)。 - 报告页头与页脚均标注:“筛选结果仅供参考,不作为投资依据。市场有风险,投资需谨慎。”
- 纯量化筛选演示,不构成任何投资建议。