---
name: stock-screener
description: 全市场股票筛选：按市场、估值、成长、趋势或自定义条件生成候选列表并排序。已知个股的深度分析用 stock-analysis。
---

# 全市场股票筛选

## 执行流程

### 第一步：确定筛选条件

优先从用户请求提取：
- **市场**：A股 / 港股 / 美股（默认A股）
- **筛选偏好**：价值型、成长型、趋势型、还是自定义条件
- **返回数量**：默认 Top 20

未指定的项直接使用默认值并在结果中说明；只有自定义条件彼此冲突时才请用户补充。

### 第二步：运行筛选

运行数据采集脚本进行 L1 量化筛选：

```bash
python3 scripts/gather.py --market A --top 20
```

可选参数：`--market`（A/HK/US）、`--top`（返回数量）、`--config`（自定义 YAML 配置路径）、`--l2`（L2 量化增强开关，默认关闭）。

**何时开启 `--l2`**：需要对候选股做量化因子精排时开启。开启后逐股补算质量/成长/真实动量/波动率/资金流五类因子，结果更精细，但逐股抓取数据较慢，日常快速筛选保持关闭即可。开启 `--l2` 后候选按 `scores.final` 重新排序，config 里的 `sort_by`/`sort_order` 不生效；且 l2 模式下 `scores.momentum` 仍是 L1 参考值，不参与 final 综合分（final 用的是真实动量组）。

**`market_sentiment` 输出字段**：无论是否开 `--l2`，输出始终带 `market_sentiment`（市场情绪温度 0-100、level、multiplier 0.8-1.2 的 regime 调节器）。`multiplier < 1` 表示市场情绪偏弱，排序和推荐应更保守（收紧入选数量、降低激进度）；`multiplier > 1` 表示情绪偏暖，可适度放宽。

### 第三步：L2 智能排序

对 L1 筛选出的候选股，基于返回的各项数据进行 LLM 智能排序。

注意区分两层"增强"：`--l2` 是工具内的量化因子增强（在 L1 结果上补算因子，发生在排序之前）；本步的 LLM 排序是 skill 流程的最后一环，在量化结果之上综合形态/量价/安全边际做最终排序。两者可叠加使用：先 `--l2` 拿精细因子，再做 LLM 排序。

排序考虑因素：
1. **技术形态质量**：趋势明确 > 震荡 > 趋势不明
2. **量价配合度**：放量上涨 > 缩量上涨 > 放量下跌
3. **指标共振**：多个指标同时看多/看空 > 指标分歧
4. **安全边际**：接近支撑 > 中间位置 > 接近压力

### 第四步：输出推荐列表

```
## 选股结果 — [市场] Top [N]

### 筛选条件
- 市场：...
- 过滤条件：...
- 全市场 → L1 筛选 → L2 排序

| 排名 | 代码 | 名称 | 价格 | 涨跌幅 | PE | PB | 综合评分 | 推荐理由 |
|------|------|------|------|--------|----|----|----------|----------|
| 1    | ...  | ...  | ...  | ...    | .. | .. | ...      | ...      |

### 重点关注
对排名前3的股票给出简要分析

### 风险提示
- 筛选基于历史数据，不代表未来表现
- 建议结合个股深度分析后再做决策
```

完成标准：列出实际生效的市场、过滤条件、排序口径和候选数量，且推荐理由只使用返回数据。

## 策略模板

如果用户没有明确条件，提供预设策略：
- **价值型**：低PE + 低PB + 高ROE + 稳定分红
- **成长型**：中等PE + 高营收增长 + 高换手率
- **趋势型**：放量突破 + 均线多头 + 高量比
- **低估反转**：超跌 + 低PB + 资金净流入
