Back to skills
SKILL.md
Smart Strategy Stock Picking
BSecurity智能策略选股 — 基于 QuantDB 数据的条件选股。在 QuantBot / Claude Code 中按自然语言或条件筛选股票、构建股票池、生成策略时使用。触发词:筛选股票、股票池、条件选股、智能策略、按条件选股、自然语言选股、帮我选出
- 1,703 stars
- 0 votes
- 0 copies
- 0 views
- Added October 5, 2026
Works with
Security analysis
88/100- Downloads and executes remote scripts — classic supply chain attack
npx -y skills add qusong0627/QuantMind --skill smart-strategy-stock-picking --agent claude-codeAre you the author of Smart Strategy Stock Picking?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qusong0627-smart-strategy-stock-picking)---
name: smart-strategy-stock-picking
description: "智能策略选股 — 基于 QuantDB 数据的条件选股。在 QuantBot / Claude Code 中按自然语言或条件筛选股票、构建股票池、生成策略时使用。触发词:筛选股票、股票池、条件选股、智能策略、按条件选股、自然语言选股、帮我选出"
---
> ⚙️ 本技能遵循公共运行环境契约(最高优先级,先于本文其余内容执行):
> 详见 [_shared/env-contract.md](../_shared/env-contract.md),执行前先读它。
# 智能策略选股技能
基于 QuantDB 数据的条件选股。支持自然语言、结构化条件、DSL 三种方式,选出符合要求的股票池并附带量化指标。
## 数据基础
选股完全基于 **QuantDB** 本地 parquet。字段映射以后端字典为准:`backend/services/engine/ai_strategy/steps/step1_stock_selection.py`(DSL 字段 → QuantDB 表/列),覆盖以下数据源:
| QuantDB 数据源 | 字段 | 覆盖 |
|---|---|---|
| `l1_factors` | 66 | 动量/流动性/概念热度/资金流 |
| `technical_indicators` | 24 | 均线/RSI/KDJ/MACD/波动率 |
| `financial` | 20 | 财务指标 |
| `valuation` | 15 | PE/PB/市值/ROE |
| `sentiment` | 14 | 市场情绪 |
| `margin` | 10 | 融资融券 |
| `stock_list` | 6 | 行业/ST/上市天数 |
| `daily`/`turnover` | 3 | 量价 |
## 认证
```bash
BASE=http://127.0.0.1:8000
TOKEN=$(curl -s -X POST $BASE/api/v1/auth/login -H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123","tenant_id":"default"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('access_token',''))")
AUTH="Authorization: Bearer $TOKEN"
CT="Content-Type: application/json"
```
## 1. 常用选股因子(前 30 高频字段)
| 字段 | 含义 | 单位 |
|---|---|---|
| `market_cap` / `total_mv` | 总市值 | 亿 |
| `float_mv` | 流通市值 | 亿 |
| `pe` / `pe_ttm` | 市盈率 | — |
| `pb` | 市净率 | — |
| `roe` | 净资产收益率 | % |
| `close` | 收盘价 | 元 |
| `pct_change` | 当日涨跌幅 | % |
| `turnover_rate` | 换手率 | % |
| `ma5` / `ma10` / `ma20` / `ma60` | 均线 | 元 |
| `ma_gap_5` / `ma_gap_20` | 均线偏离度 | % |
| `rsi_6` / `rsi_14` | RSI | — |
| `kdj_k` / `kdj_d` / `kdj_j` | KDJ | — |
| `macd_dif` / `macd_dea` / `macd_hist` | MACD | — |
| `future_return_1d` / `future_return_3d` / `future_return_5d` / `future_return_20d` / `future_return_60d` | 未来 N 日收益(标签,勿作过滤) | % |
| `vol_std_5` / `vol_std_20` / `vol_std_60` | 波动率 | % |
| `vol_atr_14` | 14日ATR | — |
| `beta_20` | 20日Beta | — |
| `volume_ratio_5` / `volume_ratio_20` | 量比 | — |
| `main_flow` | 主力资金净流入 | 元 |
| `flow_net_amount` | 资金净流入总额 | 万元(2026-09 起;读入归一为元) |
| `inst_ownership` | 机构持仓 | % |
| `concept_ai` / `concept_chip` 等 | 概念热度 | — |
| `industry` | 行业 | — |
| `is_st` | 是否ST | — |
| `listed_days` | 上市天数 | 天 |
完整字段清单与映射以**后端字段字典为准**(`backend/services/engine/ai_strategy/steps/step1_stock_selection.py` + `api/schemas/stock_pool.py`)。⚠️ 前端 `electron/src/features/strategy-wizard/factors/dictionary.ts` 已移除,勿再引用。
## 2. 方式一:自然语言解析(推荐给用户用)
```bash
# 解析自然语言为 DSL(内部:可先用此步确认字段能否被识别)
curl -s -X POST "$BASE/api/v1/strategy/parse-text" -H "$AUTH" -H "$CT" \
-d '{"text":"市值大于500亿且ROE大于15%的沪深300成分股,剔除ST"}' \
-o /tmp/pt.json -w "HTTP %{http_code}\n"
cat /tmp/pt.json | python3 -m json.tool --no-ensure-ascii | head -30
```
## 3. 方式二:结构化条件解析(最可控)
```bash
curl -s -X POST "$BASE/api/v1/strategy/parse-conditions" -H "$AUTH" -H "$CT" \
-d '{"conditions":{"type":"numeric","factor":"pe","operator":"<","threshold":15}}' \
-o /tmp/pc.json -w "HTTP %{http_code}\n"
cat /tmp/pc.json | python3 -m json.tool --no-ensure-ascii
```
**条件结构**:
- 数值条件:`{"type":"numeric","factor":"pe","operator":"<|<=|>|>=|=","threshold":15}`
- 趋势条件:`{"type":"trend","factor":"ma5","window":5,"direction":"above|below"}`
- 复合条件:`{"type":"composite","op":"and|or","children":[...]}`(可嵌套)
**返回**:`dsl`(如 `SELECT symbol WHERE pe < 15`)+ `mapping` + `quantdb_filters`(如 `[{field:"pe_ttm", operator:"<", value:15, table:"quantdb_valuation"}]`)
## 4. 方式三:DSL 直接查询(执行选股)
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE pe < 15 AND roe > 10","market":"CN","exchange":"SH"}'
```
**参数**:
- `dsl`:`SELECT symbol WHERE 条件 [AND/OR 条件...]`(字段用上面的因子名)
- `market`:CN / HK / US / CRYPTO
- `exchange`:SH / SZ / BJ(仅 A 股)
**返回**:`items`(每只股票 symbol/name/metrics,metrics 含市值/PE/ROE 等)+ `summary`(matchRate/totalCandidates/universeTotal/asOf)
## 5. 实战示例(可直接复用)
### 5.1 低估值蓝筹(PE<15 且 市值>500亿)
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE pe < 15 AND market_cap > 500 AND roe > 10","market":"CN"}'
```
### 5.2 动量强势(过去 20 日收益>10% 且 RSI>60)
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE mom_ret_20d > 0.10 AND rsi_14 > 60 AND turnover_rate < 20","market":"CN"}'
```
> 勿用 `future_return_*`(旧名 `return_*`)做选股过滤——那是未来收益标签,会造成泄漏。
### 5.3 高波动小盘(波动大 + 市值小)
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE vol_std_20 > 5 AND market_cap < 100 AND pct_change > 0","market":"CN"}'
```
### 5.4 资金流入 + 概念热门(AI/半导体)
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE main_flow > 10000000 AND concept_ai > 0.5","market":"CN"}'
```
### 5.5 剔除 ST + 特定行业 + 换手活跃
```bash
curl -s -X POST "$BASE/api/v1/strategy/query-pool" -H "$AUTH" -H "$CT" \
-d '{"dsl":"SELECT symbol WHERE is_st = false AND industry = 半导体 AND turnover_rate BETWEEN 3 AND 15","market":"CN"}'
```
## 6. 分析建议
选出的股票池可结合其他技能深入分析:
- **查新闻**:`/news/articles` 带 tickers 看利好/利空 → [[quantmind-operations]] 第 7 节
- **查推理分数**:`/models/inference/stock/{symbol}/history` 看模型评分
- **挖新因子**:[[rd-agent-factor-mining]] 补充更多筛选维度
- **训练模型**:选出的池子可喂给模型训练 → [[quantmind-operations]] 第 1 节
## 7. 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 422 字段不匹配 | DSL 用了映射表外字段 | 用上面的常用因子名,或查后端字典 `step1_stock_selection.py` |
| 选股结果为空 | 条件过严 | 放宽阈值,或去掉 AND 条件 |
| summary.matchRate 极低 | 条件偏窄 | 检查 totalCandidates 是否正常 |
| 想要全市场 | dsl 用 `SELECT symbol WHERE true` | 返回全部候选 |
Attribution
Comments
Loading comments…