back
loading skill details...
每日精选1-3只股票的四层漏斗策略系统。从量价形态初筛池出发,依次通过量价二次过滤、基本面安全排雷、资金流向打分、板块与形态质量打分,最终输出精选股票,选不出则空仓。触发词:精选、每日优选、深度筛选、资金确认、精筛、4层漏斗。
---
name: hectorlee-daily-precision-picker
slug: hectorlee-daily-precision-picker
version: 2.2.1
displayName: 每日精选
description: "每日精选1-3只股票的四层漏斗策略系统。从量价形态初筛池出发,依次通过量价二次过滤、基本面安全排雷、资金流向打分、板块与形态质量打分,最终输出精选股票,选不出则空仓。触发词:精选、每日优选、深度筛选、资金确认、精筛、4层漏斗。"
agent_created: true
---
# 每日精选策略 V2.2.1 — 四层漏斗 + 三层分级 + 离线容错
## V2.2.1 更新(2026-08-25)
- 修复资金流向打分解析:westockdata `fund flow` 输出为英文表头 markdown 表格(`JumboNetFlow`/`MainNetFlow` 在表头),原解析按"数据行含 jumbo/主力 关键词"匹配导致资金分恒为 0,现改为按表头列索引提取数值。
- 新增 `--json <路径>` 参数:将分层结果(tier1/tier2/tier3)及数据可用性写结构化 JSON,供外部程序/定时任务读取生成卡片。
## 概述
从量价形态初筛池(volume-price-screener 或其他来源)中,通过 4 层漏斗过滤和打分,输出**三个层级**的精选结果:
| 层级 | 标签 | 数量 | 分数阈值 | 用途 |
|:---:|:-----|:----:|:---:|:-----|
| ⭐ 第一层 | **精选** | 1-3 只 | ≥ 82 | 重点关注,信号最确定 |
| 👍 第二层 | **优选** | 5-10 只 | ≥ 60 | 备选标的,信号较好 |
| 👀 第三层 | **关注池** | ≤ 50 只 | ≥ 38 | 宽基观察,通过 L1+L2 底线 |
各层独立筛选,不互相依赖。每层可能不满(信号不足时空出),第三层也可能超过 50 只(按总分截断)。
**核心设计原则**:基本面做硬过滤兜底,资金流向做核心打分(d=1.21 超大单区分力远超量价特征),量价只做 MA 支撑初筛和辅助打分。
**V2.1 更新(2026-08-03)— 基于端到端回测优化**:
基于 103,758 条记录、655 个交易日的 VPS 全量回测,关键发现:
- VPS 纯量价评分 Top30 仅产生 **+0.10%** 超额收益(vs 随机基线),区分力极弱
- DPP L1 过滤中,**仅 MA 支撑**有实质边际贡献(+0.48%),缩量天数/振幅/背离预警近乎零贡献
- **少而精**胜过大而全:L1+Top3 = **+2.04%** vs L1+Top30 = +1.17%
- 量价质量得分从 20% 降至 10%,资金流向提升至主导地位(75%)
**数据依据**:基于 103,758 条历史回测记录的赢家画像 + 近期多维度截面分析 + 端到端路径对比回测(详见 `references/research_findings.md`)。
## 运行模式
### 收盘模式(默认)
每日收盘后运行一次,数据完整、信号稳定。全链路约 3-8 分钟。
### 盘中模式(可选)
盘中可多次运行,但需注意以下限制和调整:
**与收盘模式的区别**:
| | 收盘模式 | 盘中模式 |
|:--|:--|:--|
| K线数据 | 完整日K | 盘中K线(当日未完成) |
| 资金流向 | 当日完整数据 | 前一日数据(当日未出) |
| 量价形态 | 完整确认 | 可能不满足条件(缩量天数不足) |
| 运行频率 | 1次/日 | 可多次(建议每30-60分钟) |
| 信号可靠性 | 高 | 较低,仅供盘中参考 |
**盘中模式调整**:
1. **L1 放宽**:缩量天数阈值不强制(盘中缩量可能未完成),但振幅、MA支撑、背离预警仍需检查
2. **L3 降级**:资金流向使用前一日数据(标注"T-1数据")
3. **历史信号去重**:盘中多次运行产生的命中记录,**按 `(code, date)` 去重后再统计出现天数**,避免同一交易日的重复扫描抬高历史计数
```python
# 去重示例
history_count = len(set(
(rec['code'], rec['date'])
for rec in records
if rec['code'] == target_code and rec['date'] < today
))
```
4. **输出标注**:盘中报告需标注"盘中模式,信号仅供参考"和时间戳
5. **收盘后最终确认**:收盘后必须重新运行一次收盘模式,以正式报告为准
### 去重数据结构
为避免多次扫描污染历史数据,所有运行记录在写入时需要:
```
写入前检查: 该 (code, date) 组合是否已存在?
→ 已存在: 更新最新评分,不新增记录
→ 不存在: 新增记录
```
## 工作流程
### 使用场景
- **全链路自动精选**:先运行 volume-price-screener 获取初筛池,然后自动触发本技能做精选
- **独立候选池分析**:用户提供一批候选股票代码,直接运行精选
### 执行步骤
#### 1. 获取候选池
扩大初筛池以支撑三层分级(目标 ≥ 50 只候选):
```bash
cd volume-price-screener-dir/scripts
python screener.py --all --top 100
```
提取命中结果中的全部股票代码作为候选池。
#### 2. 四层漏斗过滤
按顺序执行,每层通过后才进入下一层。
**第一层:量价初筛(MA 支撑硬条件)**
VPS 仅作为粗筛池来源(形态命中即可,不依赖 VPS 评分排序)。对每只候选股检查:
| 条件 | 阈值 | 说明 |
|:-----|:-----|:-----|
| MA 支撑 | true | 价格站稳 MA10 和 MA20 |
不满足的直接排除。排除原因做标注。
> V2.1 简化:基于 103,758 条回测,缩量天数(边际 +0.05%)、振幅(+0.01%)、背离预警(-0.02%)三项的边际贡献近乎为零,已移除。仅保留边际贡献 +0.48% 的 MA 支撑条件。
**第二层:基本面安全排雷(硬过滤)**
```bash
westock-data finance CODES --num 1
```
排除以下任一情况的股票:
- 最近季度净利润 < 0(亏损)
- 商誉 / 净资产 > 30%(商誉暴雷风险)
- 资产负债率 > 80%(过高杠杆,金融/银行行业豁免)
- 最近季度经营现金流净额 < 0 且净利润 > 0(利润质量差)
- ST / *ST 标记
对排除原因做明确标注。
**第三层:资金流向打分(权重 75%)**
```bash
westock-data fund flow PASSING_CODES
```
| 指标 | 满分 | 评分规则 |
|:-----|:----:|:---------|
| 超大单净流入 | 45 | >0 得 30 分;>5000万 得 38 分;>1亿 得 45 分 |
| 主力净流入 | 30 | >0 得 20 分;>3000万 得 25 分;>1亿 得 30 分 |
两项相加得到资金得分(满分 75)。
**第四层:板块与量价辅助打分(权重 25%)**
通过 tdx-connector 获取板块信息:
```
查询 STOCK_CODE 的所属行业和概念板块
```
| 指标 | 满分 | 评分规则 |
|:-----|:----:|:---------|
| 板块热度 | 15 | 所属概念中,近一周涨幅为正的概念数 ≥ 3 个得 15 分;≥ 2 个得 12 分;≥ 1 个得 8 分;0 个得 3 分 |
| 量价形态质量 | 10 | 放量日涨幅 ≥ 8% (+4分);缩量深度 < 30% (+3分);低点抬高 (+3分) |
| 历史重复信号 | 10 | 前50个**交易日**内出现**天数**(按日去重):0天(+0);1-3天(+4);4-7天(+6);8+天(+10) |
> V2.1 调整:量价形态质量从 20 分降至 10 分。基于回测数据,量价各特征与 fwd20 相关性均 < 0.02,量价评分的作用是辅助而非主导。
> 历史重复信号说明:统计该股票在前50个交易日中出现在初筛关注池的**交易日数量**(同一天多次扫描只计1次,按 `(code, date)` 去重)。反复出现意味着形态持续性更强,资金可能已在暗中布局。数据来源为 volume-price-screener 的历史回测样本库。
#### 3. 三层分级输出
总分 = 资金得分(75)+ 板块得分(15)+ 量价质量得分(10)+ 历史重复信号(10)= 满分 110
按总分降序排列后,分三层输出。核心原则:**少而精**——回测证实 Top3 的胜率和收益率显著优于 Top30。精选层宁缺毋滥。
| 层级 | 分数线 | 数量 | 说明 |
|:---:|:---:|:---:|:-----|
| ⭐ 精选 | ≥ 82 | Top 1-3 | 每维都强,信号确定性最高 |
| 👍 优选 | ≥ 60 | Top 5-10 | 整体不错,可作备选 |
| 👀 关注池 | ≥ 38 | ≤ 50 | 通过 L1+L2 底线,宽基观察 |
**空层处理**:某层无股票达标时,输出"该层无标的"(不降层凑数)。
#### 4. 输出报告(三部分)
报告必须包含:分层列表 + 板块热力图 + 操作建议。
**第一部分:分层列表** — 结构化表格输出三层结果(代码/名称/总分/各维得分/资金/行业),附淘汰明细。
**第二部分:板块热力图** — 统计全部命中股票的行业分布:
- 按一级行业聚合,标注各层分布数量
- 列出代表股、计算板块集中度(Top 3占比)
- 判断资金风格(超大单主导/主力主导/散乱)
**第三部分:操作建议** — 基于以下信号输出 3-5 条建议:
- 精选层有无(有→积极,无→谨慎)
- 板块集中度(>60%→聚焦,<40%→分散)
- 资金风格(超大单→趋势,主力→短线博弈)
- 历史重复率(高频→持续性机会)
- 当前时段(开盘观察/盘中确认/尾盘决策/收盘定论)
所有建议需标注:基于量价+资金信号,不构成投资建议。
## 注意事项
- 所有颜色约定:涨=红、跌=绿(中国 A 股惯例)
- 数据依赖 westockdata(资金/财务)和 tdx-connector(板块);tdx-connector 未连接时板块热度维度降级处理(跳过该维度或按基准分计入,并在报告中标注"板块数据缺失")
- 精选结果为量价+资金多维信号,**不构成投资建议**
- 若数据源不可用,标注"数据缺失"并降级处理(跳过该维度,满分相应调整)
- 单日执行全流程约 2-5 分钟(含数据拉取)
- 各层分数阈值可根据市场环境调整:牛市中精选层阈值可上调(如 82→88),熊市中关注池阈值可下调(如 38→30)
don't have the plugin yet? install it then click "run inline in claude" again.