# Stock Screener

> 问财选股——按筛选意图筛池子 + 数据化打分排序，输出 Top-N 名单（HTML + 对话精简版），软提示交给 stock-buddy 深度分析。只筛不分析。触发：选股、筛股、筛选股票、筛池子、找票、选几只票、按条件选股、强势股、放量突破、低位反转、业绩成长、主力异动。不触发：分析某只持仓、要不要买、某只股票怎么样、企稳了吗（这些归 stock-buddy）。

- **Type:** Skill
- **Install:** `agentstack add skill-taosheng777-biga-stock-skills-stock-screener`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Taosheng777](https://agentstack.voostack.com/s/taosheng777)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Taosheng777](https://github.com/Taosheng777)
- **Source:** https://github.com/Taosheng777/BigA-stock-skills/tree/main/plugins/a-stock-skills/skills/stock-screener

## Install

```sh
agentstack add skill-taosheng777-biga-stock-skills-stock-screener
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 问财选股（stock-screener）

本 SKILL.md 即运行时唯一执行依据（自包含）。

**定位**：A 股投研副驾驶的**入口环节**——只做"筛池子 + 数据化打分排序"，出名单后交给 `stock-buddy` 深度研判。**与 stock-buddy 严格不重叠。**

## 能力边界（铁律）

| ✅ 做（本 skill） | ❌ 不做（交给 stock-buddy） |
|---|---|
| 意图 → 问财问句（模板/自由口述） | 上涨逻辑、催化剂判断 |
| 翻页抓全池子（带上限） | 估值贵不贵 |
| 去重、排除已持仓 | 技术结构 / 套牢盘解读 |
| 透明加权打分、Top-N 排序 | 风险点分析 |
| 输出 HTML 名单 + 对话精简名单 | 买入/观察/放弃裁决、止损止盈、仓位 |

**越界自检**：用户若问"这只能不能买 / 估值贵不贵 / 怎么分析 / 帮我看看风险"，**不作答分析**，软提示一句：
> 这属于深度研判。对该标的说「用 stock-buddy 分析 600xxx」即可。

## 运行流程

### 第 1 步 · 判意图
"选股/筛股/筛池子/找票/强势股/放量突破/某条件选几只" → 进本 skill。
若是"分析我的持仓/某只怎么样/要不要买" → 不接，提示用 stock-buddy。

### 第 2 步 · 载 Key
先 `source ~/.zshrc`。`IWENCAI_API_KEY` 缺失则口述取 Key 指引（见 `~/.claude/skills/hithink-market-query/SKILL.md`：iwencai.com/skillhub → 登录 → 安装方式-Agent用户-复制 Key），**不要把 Key 打印出来**。

### 第 3 步 · 取条件
- 命中模板名（放量突破/低位反转/业绩成长/主力异动）→ 用 `--preset `。
- 否则把用户自由口述改写为**标准问财问句**（保意图、术语标准化、带基础排除如 `非ST`），并把**问财专属打分列**词缀进尾部（`主力资金流向 归母净利润同比增长 净资产收益率`）→ 用 `--query ""`。
- ⚠️ 问财只下发问句里出现过的指标列（追加指标词不改筛选结果集，放心加）。**行情类打分列（换手率/涨跌幅/市盈率/市净率）不必写**：2026-07-15 起脚本内置腾讯批量 enrichment 确定性覆盖（零问财额度）；腾讯失败自动降级为问财返回列并在 JSON `enrich.note` 标记。
- 模板目录与写问句经验见 `references/strategy-presets.md`；不确定池子量级时，先用 hithink 的 cli.py 探 `code_count`。

### 第 4 步 · 调脚本
脚本路径 = 本 SKILL.md 所在目录下的 `scripts/screen.py`（手动安装时即 `~/.claude/skills/stock-screener/scripts/screen.py`，插件安装时在插件目录内，按本文件实际位置定位）。

```bash
source ~/.zshrc
python3 /scripts/screen.py --preset 放量突破 --top 15
# 或自由口述：
python3 /scripts/screen.py --query "今日主力净流入居前 换手率大于5% 非ST" --top 15
```
常用参数：`--top N`（默认 15）、`--max-records`（抓取上限，默认 100）、`--no-exclude-holdings`（不排除持仓）、`--no-enrich`（跳过腾讯行情覆盖，仅调试用）、`--date`。
脚本输出一段 JSON：`fetched/returned/holdings_excluded/enrich{enriched,hit,note}/html_path/top[]`。`enrich.enriched=false` 时在对话里说明"行情打分列降级为问财返回列"。

### 第 5 步 · 回结果
读脚本 JSON，对话内给：
1. **精简名单**：序号 / 代码 / 名称 / 综合分（+命中模板）；
2. **HTML 路径**：`html_path`（可排序表格，含分项贡献）；
3. 若 `holdings_missing=true`，说明"未找到持仓文件，未排除已持仓"；
4. **软提示交接**：让用户自己挑 1–3 只（控成本）对其说「用 stock-buddy 分析」；
5. 末尾固定一行非投顾声明（见下）。

### 第 6 步 · 登记胜率台账（可选：需已配置投资 vault 台账；未配置则跳过本步并在对话中说明）
出名单后，把本批选股追加登记到台账 `/09-选股池跟踪/选股策略胜率台账.md`（登记前先读现有批次号查重），供后续胜率回测：
- "批次汇总"加一行；"批次明细"新增 `### Bxxx` 区块，记 选股日 / 策略问句 / 数量 / **基准价=选股日收盘** / 各标的基准价与定位。
- 台账头部"记账规则"是唯一格式依据，按其结构写。跟踪检查点由 stock-buddy 跟踪时追加，本 skill 只负责登记新批次。

## 打分口径（一句话）
池内 rank 百分位归一 → 按方向加权求和 → 缩放 0–100；缺字段不计入并重归一、不编数据。详见 `references/scoring.md`。
打分数据源（2026-07-15 起）：行情列（涨跌幅/换手率/PE/PB）由腾讯批量 enrichment 覆盖（T3，零额度，亏损股 PE/PB 哨兵 0.00 已转 None）；资金/财务列仍由问财问句下发（T2）。台账登记的基准价等入库数字不受影响，仍按台账规则取。

## 输出与存储
- HTML 名单 → 输出目录默认 `~/Documents/投资笔记/选股名单/`（环境变量 `STOCK_SCREENER_OUT_DIR` 或 `--out-dir` 可覆盖，目录自动创建），文件名 `YYYY-MM-DD-.html`。
- 每份产出末尾固定（来源随 enrich 实况写）：
  > 研究分析，非持牌投顾建议，风险自担。数据来源：同花顺问财（筛选/资金/财务）+ 腾讯行情（行情打分列），数据日 YYYY-MM-DD。

## 与 stock-buddy 的关系
- **数据层**：共用 `hithink-market-query` + 同一 `IWENCAI_API_KEY`。
- **持仓层**：只读持仓文件做"排除已持仓"（默认 `~/Documents/投资笔记/03-持仓跟踪/持仓.md`，环境变量 `STOCK_SCREENER_HOLDINGS` 或 `--holdings-path` 可覆盖；文件不存在则自动跳过排除并在 JSON 标 `holdings_missing`），**不写不维护**。
- **交接**：解耦 + 软提示，**两 skill 不互相自动调用**。

## 硬边界
- 不下单、不碰交易、不动钱。
- 不编数据：缺字段标缺口，不臆造。
- **断数据必熔断（07-02 事故整改）**：问财额度耗尽/接口失败 → 停止本批次，台账登记"推迟（原因）"，不生成该批次任何内容，禁止推断替代。
- 不做深度投资分析（边界表右列全交 stock-buddy）。
- 每份产出注明非投顾声明。
- screen.py 纯标准库，不引重型依赖。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Taosheng777](https://github.com/Taosheng777)
- **Source:** [Taosheng777/BigA-stock-skills](https://github.com/Taosheng777/BigA-stock-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-taosheng777-biga-stock-skills-stock-screener
- Seller: https://agentstack.voostack.com/s/taosheng777
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
