# Jingjia Stock Selector Custom

> 个人版9:25集合竞价选股（v5-Top3策略，80.6%胜率）。当用户提到"我的竞价策略"、"自定义竞价"、"个人选股"、"跑我的策略"、"我的短线策略"、"custom竞价"、或明确要求用个人版/自定义版竞价选股时触发。不同于通用版(jingjia-stock-picking)，本版为用户专属策略配置，可自由调参。支持实时筛选和盘后回测。

- Skill: `huang1125677925/jingjia-stock-selector-custom` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add huang1125677925/jingjia-stock-selector-custom`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huang1125677925/jingjia-stock-selector-custom/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: huang1125677925 (https://skillmd.com/u/huang1125677925)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/huang1125677925/jingjia-stock-selector-custom

---


# 9:25 竞价选股 Skill (个人定制版 v5-Top3)

基于 Tushare 数据的 A 股超短线竞价选股系统。这是你的**个人可编辑版**，可自由调整评分参数、风控阈值、权重分配。

**完整策略参考：** `../tushare-data/strategies/9-25-jingjia-strategy-v5-top3.md`

## 触发条件（与通用版区分）

本技能触发于用户明确要求**个人版/自定义版**竞价选股时：

- "跑我的策略" / "我的竞价策略" / "用我的选股"
- "自定义竞价" / "个人选股" / "custom竞价"
- "帮我调参" / "改评分权重" / "优化我的策略"
- 明确说"用个人版" 或 "用 custom 版"

> ⚠️ 通用竞价请求（"今天买什么""竞价选股""打板"）由 `jingjia-stock-picking` 处理，本技能不响应。

---

## v5 统一数据架构

> 🔥 **v5 核心决策：实时和回测统一使用 `stk_auction`。**
> 理由：`stk_auction` 支持历史日期回查（有 `trade_date` 参数），且 `price`（成交均价）就是 9:25 竞价时看到的实际执行价。回测和实盘用同一数据源，绩效结果直接可比。

```python
# 实时 & 回测 完全一致：单接口搞定
df = pro.stk_auction(trade_date=date)  # date = 今天 或 历史日期

# 字段映射
# price    → open      （成交均价作为竞价开盘价，A股集合竞价一次性撮合，差异极小）
# vol      → vol        （竞价成交量）
# amount   → amount     （竞价成交额）
# pre_close → pre_close （昨收价，自带！无需额外 join）
```

| 接口 | 用途 | 备注 |
|:---|:---|:---|
| `stk_auction` | **竞价数据（主接口）** | 支持实时+历史，`trade_date` 传当天/历史均可，自带 `pre_close` |
| `limit_step` | 昨日连板梯队 | 晋级率计算 |
| `limit_list_d` | 涨跌停+封板质量 | 按 `trade_date` |
| `limit_cpt_list` | 概念板块TOP10 | 按 `trade_date` |
| `daily_basic` | 流通市值 | 按 `trade_date` |
| `moneyflow` | 资金流 | 取前一日 |
| `daily` | 近20日行情 | 累计涨幅计算 |
| `stock_basic` | 股票名称 | 一次性缓存 |

### 🔗 统一计算层

```python
df.rename(columns={'price': 'open'}, inplace=True)  # price → 统一字段名
df['竞开涨幅'] = df['open'] / df['pre_close'] - 1
df['竞价额占流通市值比'] = df['amount'] / df['流通市值']  # join daily_basic 后
```

---

## 运行模式

### 模式1：每日选股（默认）

**执行步骤：**

1. **数据采集** — 按上述双模式架构获取数据
2. **情绪判断** — 判定友好期✅ / 分歧期⚡ / 退潮期🛑
3. **评分筛选** — 按 v5-Top3 评分体系打分
4. **输出 TOP3** — 取评分最高的 3 只进入首选买入池

### 模式2：回测验证

执行 `scripts/run_backtest.py`，指定回测区间，输出绩效报告。

**回测参数：**
- 买入：9:25 竞价开盘价
- 卖出：次日竞价开盘与收盘择高
- 单日上限：TOP3
- 退潮日跳过

---

## 市场情绪判断

| 情绪 | 条件 | 操作 |
|:---|:---|:---|
| ✅ 接力友好 | 3进4晋级率≥35%, 炸板率≤30%, 最高板≥4, 无核按钮 | 正常筛选 |
| ⚡ 分歧观察 | 晋级率20~35%, 炸板率30~45% | 降分1~2分，观察为主 |
| 🛑 退潮防守 | 晋级率<20% 或 炸板率>45% 或 核按钮 | 不推荐接力 |

**核心指标：3进4 晋级率（近半年基准 49%）**

---

## v5-Top3 评分体系（总分 25 + 附加分）

### A. 竞价量能（25%）
按流通市值分档：

| 竞价额/流通市值 | ≤200亿 | >200亿 |
|:---:|:---:|:---:|
| ≥0.5% | 5 | 5 |
| 0.3~0.5% | 4 | 4 |
| 0.2~0.3% | 3 | 4 |
| 0.1~0.2% | 2 | 3 |
| <0.1% | ❌ | 2 |

### B. 开盘位置（20%）
| 竞开涨幅 | 得分 | 备注 |
|:---:|:---:|:---|
| 8~10% | 5 🌟 | 黄金开盘点 |
| ≥10%(一字) | 5(观察) | 买不到，仅观察 |
| 3~8% | 4 | 稳定区间 |
| 0~3% | 3 | 微高开 |
| -3~0% | 2(不排除!) | 低开拉板常见 |
| <-3% | ❌ | 大幅低开除外 |

### C. 连板位置（15%）
| 连板 | 得分 | 晋级率 |
|:---:|:---:|:---:|
| 3板 | 4.5 | 49% |
| 2板 | 4 | 31.7% |
| 首板 | 2.5 | 16.2% |
| 4板+ | 2 | 39.9% |

### D. 板块热度（20%）
- TOP5 且涨停>20：5分
- TOP5：4分
- TOP10：3分
- 不在 TOP10：❌

### E. 竞价形态（20%）
| 昨板质量 | 今开模式 | 得分 | 依据 |
|:---|:---|:---:|:---|
| 一字板 | 放量高开≥4% | **5** 🌟 | 40.7%成功率 |
| 换手板 | 高开≥6%+放量>0.3% | **5** | 36.8% |
| 一字板 | 一字≥10% | 4(观察) | 买不到 |
| 烂板 | 放量高开≥4% | **4** | 弱转强37% |
| 烂板 | 平开/低开 | 3 | 样本偏少 |
| 烂板 | 小幅高开1~4% | **2** | 弱承接 |
| 换手板 | 小幅高开1~4% | **1** | 陷阱! |
| 缩量板 | 任意开盘 | 2 | 缩量尽头 |

### 附加分项
- 股性加分：近10日涨停≥3次 +0.5，≥5次 +1
- 量比惩罚：量比>1.0% 扣 0.5 分
- 烂板扣 0.5 分

### 最终分
```
最终分 = A×25% + B×20% + C×15% + D×20% + E×20%
       + 附加分 - 风控扣分 + 龙头加分 + 风格系数
```

### 输出分级
- **≥16分** → 🏆 首选买入池
- **12~15分** → 📋 观察池
- **硬排除触发** → ❌ 排除池

---

## 输出格式

```
## 📊 今日竞价选股结果 (YYYY-MM-DD)

### 一、市场情绪判断
| 指标 | 数据 | 判断 |

### 二、🏆 首选买入池 (TOP3)
| 股票 | 代码 | 连板 | 竞开% | 量比% | 评分 | 操作建议 |

### 三、📋 观察池
| 股票 | 代码 | 评分 | 注意 |

### 四、❌ 排除标的
| 股票 | 排除原因 |

### 五、最终结论
```

---

## 关键风控规则

1. **退潮日不买** — 退潮防守期不输出买入池
2. **硬排除** — ST、北交所、市值<20亿、低开<-3%、竞价无量<0.05%、封单/成交<5%
3. **TOP3 精简** — 每天最多3只，宁缺毋滥
4. **操作建议仅5类** — 买/轻仓/观察/不买/排除
5. **禁止绝对承诺** — 不说"必涨""稳赚""无风险"

---

## 免责声明

本技能、脚本和输出结果仅用于个人研究、策略复盘和数据分析，不构成任何证券、基金、期货或其他金融产品的投资建议、交易指令、收益承诺或代客理财服务。

集合竞价、涨停接力和短线交易波动大、风险高，可能发生快速亏损。Tushare 等第三方数据源也可能存在延迟、缺失、错误、接口变更或口径差异。回测结果基于历史数据和固定假设，不代表未来收益，也不保证实盘可成交、可复制或可盈利。

使用者应自行核验数据、独立判断风险，并对自己的投资决策和交易结果承担全部责任。输出中如出现候选标的、评分、观察池或操作建议，均应理解为研究线索，而非买卖依据。

---

## 回测战绩 (v5-Top3)

| 指标 | 数值 |
|:----|:----:|
| 回测期 | 2026/4/9~5/8 (18天) |
| 交易 | 31笔 |
| 胜率 | **80.6%** |
| 均收 | **+4.56%** |
| 累计 | **+141.23%** |
| 18分+胜率 | **93%** |

---

## 脚本说明

- `scripts/run_daily.py` — 每日竞价选股脚本
- `scripts/run_backtest.py` — 回测验证脚本

```bash
# 每日选股（指定日期）
python scripts/run_daily.py --date 20260508

# 回测验证（指定区间）
python scripts/run_backtest.py --start 20260409 --end 20260508

# 快速回测
python scripts/run_backtest.py --quick
```

---

## 个性化调参指南

作为个人版，你可以随时修改以下内容（告诉我即可）：

- 各维度权重（A/B/C/D/E 百分比）
- 评分阈值（16分门槛、12分观察线）
- 市值排除线（当前 <20亿）
- 风控扣分值
- 竞价量能分档阈值
- 开盘位置评分区间
- TOP3 数量上限
- 输出格式偏好

