| name | screener |
| description | 行业 / 主题选股。当用户问"找一些 X 板块的好股票""筛选 PE < Y 的标的""推荐几只 X 类型的股票"时调用。 |
行业 / 因子选股工作流
v0.2 限制: faro-research 当前只有 resolve_ticker 的本地缓存覆盖了
全 A 股 stock_basic(5800+ 只)。没有批量筛选 daily_basic 的工具。
所以这个 skill 走"半自动"路线:
- 先在 stock_basic 缓存里按行业过滤候选池
- 用户确认候选池后, 对 top 5-10 调
get_company_data 批量出估值
- 输出按用户筛选条件排序的表格
进度清单
- [ ] 1. 解析筛选意图 (行业 + 因子条件)
- [ ] 2. 列候选池 (用 resolve_ticker 拉行业近似匹配)
- [ ] 3. 批量评估 top N
- [ ] 4. 排序输出
- [ ] 5. 限制说明
步骤 1:意图解析
把用户的自然语言映射成两个变量:
- 行业关键字: "白酒" / "光伏" / "医药" / "AI 芯片" 等
- 筛选条件: PE_TTM < X / ROE > Y / 营收增速 > Z%
A 股行业映射 (Tushare stock_basic.industry 字段, 申万一级):
- 白酒 → 白酒、其他酒类
- 光伏 → 光伏设备、电池组件
- 半导体 → 半导体、集成电路
- 新能源车 → 汽车整车、汽车零部件
- 医药 → 化学制药、生物制品、医疗器械、医疗服务
- 银行 → 国有大型银行、股份制银行、城商行、农商行
- 白色家电 → 白电、厨卫、小家电
如不在上面的列表里, 用 substring 匹配。
步骤 2:列候选池
调 resolve_ticker(query="<行业关键字>") 第一次, 大概率只返回 5 个匹配。
然后用关键字逐个尝试几个相关词扩展列表。
告诉用户: "我从 stock_basic 里筛出 N 只候选, 是否需要全部评估?"
如果 N > 10, 让用户选 top 5-8。
步骤 3:批量评估
对每个候选 (≤ 8 个) 调 get_company_data(ts_code=...) (跳过 resolve)。
利用 meta-tool 的并发能力, 在一个 turn 里同时拉多个。
提取每只的:
- PE_TTM, PB, 股息率
- 最新 ROE, 毛利率
- 营收 YoY, 净利 YoY
- 总市值
步骤 4:排序输出
按用户筛选条件排序, 用紧凑表格:
| 公司 | ts_code | PE_TTM | PB | ROE | 营收YoY | 净利YoY | 总市值 |
|---|
加 1-2 句结论 ("3 只满足 PE < 25 + ROE > 15%, 推荐先看 X 和 Y").
步骤 5:限制说明
末尾必加:
> 数据来源: Tushare stock_basic (本地行业关键字匹配 ≠ 完整申万分类)
> 当前候选池基于 N 只样本, 不代表行业完整列表
> v0.3 计划接入 daily_basic 全市场扫描, 届时支持精确因子筛选