午盘选股
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/user_6c1a7171--wupanxuangu.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_6c1a7171/wupanxuangu。A股午盘选股战法(两层筛选:热点板块 → 个股),在上午收盘后(11:30-13:00)运行,所有指标锚定 11:30 时点。第一层取 10:30 与 11:30 同花顺概念板块涨幅 TOP3 的交集,再经均线粘合/MACD/KDJ 过滤得到最终板块;第二层在最终板块成分股内按涨幅/流通市值/量比/均线/MACD/KDJ 筛选个股。
触发词:午盘选股、午盘选股战法、午间选股、11点半选股、午盘选股技能、午盘热点板块、跑午盘战法、中午选股、午饭选股。
阅读全文 (展开查看完整说明)
概述
用途
在上午收盘后(11:30–13:00)执行一套两层选股流程:先锁定当日热点概念板块,再从中筛出符合条件的个股。全部指标锚定 11:30 时点,不使用下午和收盘数据。
何时使用
用户提出以下任一诉求时使用:午盘选股、午间选股、11点半选股、跑午盘战法、午盘热点板块、中午选股。
运行时机很重要:战法的决策时点是 11:30。在 11:30–13:00 之间运行,量比等实时字段天然就是 11:30 口径;在其他时段(尤其盘后)运行,涨跌幅/K线/量比会由脚本用分时数据回溯到 11:30,但分时只能回溯最近一个交易日。
前置条件
- Python 3(标准库即可,无第三方依赖)
- Google Chrome:第二层抓板块成分股需要浏览器执行 JS 绕过反爬。脚本默认路径
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome,路径不同则修改scripts/layer2.py与scripts/refresh_board_map.py顶部的CHROME常量。 - 网络可访问
d.10jqka.com.cn、q.10jqka.com.cn、qt.gtimg.cn
运行方式
一条命令跑完两层(layer2.py 会自动先调用 layer1.py):
python3 scripts/layer2.py只跑第一层(只看板块):
python3 scripts/layer1.py常用参数:
| 参数 | 作用 |
|---|---|
--skip-layer1 | 复用上一次第一层结果,跳过重跑(调试用) |
--c4=below | 条件4:5日均线 < 11:30价(默认,价格站上均线) |
--c4=above | 条件4:5日均线 > 11:30价(价格在均线下方) |
--chg=1130 | 涨幅用 11:30 涨幅(默认) |
--chg=day | 涨幅用腾讯全天涨幅 |
--refresh | 强制重新扫描同花顺概念板块(约 30s) |
筛选口径
第一层:热点板块
- 取 10:30 与 11:30 两个时点,同花顺概念板块涨幅(相对昨收)TOP3
- 两者取交集 → 观察板块(坚持 TOP3,交集为空则本日无票)
- 观察板块逐条过滤,三者同时满足(AND):
- 均线:
|MA5 − MA10| / MA10 ≤ 2.5%(粘合)或 MA5 当日上穿 MA10 - MACD:当日金叉 或 即将金叉(DIF 在 DEA 下方且差值连续 3 日收窄)
- KDJ:近 3 日内 K 上穿 D
- 均线:
已排除的非纯概念板块:融资融券、沪股通/深股通、证金持股、国家大基金持股、举牌、ST板块、摘帽、中字头股票、各类次新股、高股息精选、同花顺自编指数(漂亮100/中特估100/出海50/果指数/新质50/中国AI 50)、各类"预增"板块。规则写在 layer1.py 顶部的 EXCLUDE_EXACT / EXCLUDE_KEYWORDS。
第二层:个股筛选
在最终板块的成分股中,全部条件 AND,且全部锚定 11:30 时点:
- 11:30 涨幅 在 2% – 5%
- 流通市值 在 20 亿 – 100 亿
- 11:30 量比 > 1
- 5 日均线 < 11:30 价格,且 MA5 向上
- MA5 粘合 MA10(≤2.5%) 或 MA5 上穿 MA10
- MACD 金叉中(DIF ≥ DEA)或 即将金叉,且 KDJ 金叉中(K ≥ D)或 即将金叉
11:30 时点是怎么锁定的
- 涨幅:
(11:30价 − 昨收) / 昨收,从个股分时回溯 - K 线:把当天日K的最后一根替换成「09:30–11:30 的半天K」(开=0930,高/低=上午极值,收=11:30价),MA5/MA10/MACD/KDJ 全部基于此序列
- 量比:
上午累计成交量 ÷ (过去5日平均日成交量 × 120/240)
只改涨幅基准而不同时锁定 K 线,会导致「用含下午数据的均价」去比「上午的价格」,口径自相矛盾——两者必须一起改。
输出
第一层输出:10:30 TOP3、11:30 TOP3、交集、逐板块 A/B/C 判定、最终板块。第二层输出:候选明细(逐条显示每个条件的判定值与结论)、最终个股名单(代码/名称/11:30涨幅/流通市值/11:30量比/MA5/11:30价/均线状态)。
结构化结果落盘在 assets/last_layer1.json 与 assets/last_layer2.json,供下游消费。
数据源
| 用途 | 数据源 |
|---|---|
| 板块列表(885xxx 指数代码 + 名称) | 扫描 d.10jqka.com.cn/v6/line/bk_885000-886400,命中约 400 个,缓存 assets/boards.json |
| 板块/个股日K | d.10jqka.com.cn/v6/line/{bk_885xxx 或 hs_个股代码}/01/last.js |
| 板块/个股分时 | d.10jqka.com.cn/v6/time/{同一代码}/last.js |
| 板块名称 → 板块ID(30xxxx) | assets/board_id_map.json,由 scripts/refresh_board_map.py 重建 |
| 板块成分股 | q.10jqka.com.cn/gn/detail/field/264648/order/desc/page/N/ajax/1/code/{30xxxx}(经 Chrome,每页 10 条) |
| 个股快照(现价/涨跌幅/流通市值/量比) | 腾讯 qt.gtimg.cn/q=sh600000,sz000189,bj920087(GBK 编码) |
字段位置、踩坑细节与数据源对比见 references/data-sources.md。
维护
- 板块映射表:同花顺会新增概念板块。每 1–2 周跑一次
python3 scripts/refresh_board_map.py更新assets/board_id_map.json(否则新板块在第二层取不到成分股)。 - 板块字典:
assets/boards.json由layer1.py自动扫描生成并缓存;需要更新时加--refresh。 - 阈值调整:全部集中在两个脚本顶部——
layer1.py的MA_COHESION_PCT/MACD_SHRINK_DAYS/KDJ_CROSS_LOOKBACK/TOP_N,layer2.py的TOP_PCT_LOW/TOP_PCT_HIGH/CAP_LOW/CAP_HIGH/VOLRATIO_MIN/SHRINK_DAYS。
常见问题
| 现象 | 原因与处理 |
|---|---|
| 第一层返回"交集为空" | 正常。两个时点的 TOP3 不重合即本日无票,战法不是每天都有标的 |
| 第二层返回 0 只 | 先看明细里各条件卡在哪。常见是「均线发散」(条件5)而非指标不满足 |
| 成分股抓取失败 | 确认 Chrome 路径正确、board_id_map.json 已更新为最新 |
| 页面抓回乱码 | q.10jqka.com.cn 的 HTML 实际是 UTF-8(尽管 meta 声明 gbk),必须按 utf-8 解码 |
| 板块 ID 抓不到成分股 | 成分股接口只认 30xxxx,不认 885xxx;两套代码体系需用映射表转换 |