A股强势封板选股
用于识别沪深A股市场中中短线强势封板股(涨停且封板坚决、换手充分、所属板块强势)。 核心思想:封板越坚决(封单/成交比越高)、筹码交换越充分(换手10%~20%)、所处板块越强(当日上涨且活跃度≥市场),次日接力与连板概率越高。
一、触发与不触发
命中即触发(用户表述含以下任一):
| 类别 | 触发词 | | --- | --- | | 选股本体 | 强势封板股、涨停选股、封板强度、封单选股、打板、涨停池筛选、短线强势股、封板成交比选股 | | 数据维度 | 封单金额、封板成交比、涨停封单、封板坚决度 | | 板块联动 | 板块强度选股、主线板块涨停、板块涨停筛选 |
不触发(改用通用金融能力):
- 非涨停类的趋势/价值选股(换
wb-finance-skill)。 - 纯行情查询、个股诊断、买卖点提示。
- 可转债/ETF/基金筛选。
不确定时先一句话确认:"这次按『强势封板选股』流程走(涨停池→封板强度→换手→板块强度,出列表+HTML+Excel),还是只看某一步?"
二、数据源前置检查(硬性)
本技能依赖 腾讯自选股(westock-mcp) 提供涨停股池、封单金额、换手率与板块行情。
- 先确认
westock-mcp已连接。若未连接:- 提示用户:在 设置 → 连接器 → 腾讯自选股 中点击连接/信任并授权。
- 在连接器就绪前不要臆造数据,直接停下等待,并向用户说明需要的数据字段(见
references/data_schema.md)。
- 连接器就绪后,用
ToolSearch(query:westock/腾讯自选股/涨停/板块)加载其工具 schema,按其真实接口名调用(2026-08 实测口径):- 涨停股池:
tool_rankingmetric=limitup_seal_volume(收盘涨停封单量)直接给出涨停池+封单量(单位:手),省去涨幅榜降级。注意该指标只有最近收盘日数据,盘中请求会自动回退上一交易日。 - 个股明细:
data_quotecodes 批量取 成交额/换手率/涨停价,date 指定日。 - 所属板块:
data_profile取申万一级行业。 - 板块行情:
data_sectormode=ranking 的plate*数组取 板块涨跌幅/换手率(申万二级粒度)。 - 换算与字段映射详见
references/data_schema.md(含实测说明)。
- 涨停股池:
- 若 westock 无独立「涨停」接口,降级用「涨幅榜」筛
涨幅≥9.9%(创业板/科创板≥19.9%)且非ST且封板(最高价=涨停价)的标的。 - 若 westock 仍无法提供封单金额或板块换手率,用
WebSearch/WebFetch补抓(东方财富涨停板专题、同花顺板块页),并在输出中标注「封单数据来源:网页补抓」。
三、必填输入
缺失即用 AskUserQuestion 一次问清,不要臆造交易日:
- 交易日(trade_date):YYYY-MM-DD,默认=最近一个已收盘交易日。需为交易日,非交易日提示用户改期。
- 未收盘日回退:若指定交易日尚未收盘(如盘中请求),收盘类指标(收盘涨停封单量)不可得,回退到最近一个已收盘交易日,并在输出与报告中显著标注「数据基准日=回退日」。待指定日收盘后可重跑。
- 工作目录:默认
<workspace>/strong-limit-up/<trade_date>/,用于存放 candidates.json 与三件套产出。沿用既有目录,不新建第二套。
四、执行流程(四阶段,端到端)
统一约定:PY 指受管 Python 解释器(见下方 Windows 注意);S 指 <本skill目录>/scripts/strong_limit_up.py;D 指工作目录。
阶段 1 · 抓取并整理涨停股池 → candidates.json
- 通过 westock 拉取当日涨停股池与每只个股的 成交额 / 封单金额 / 换手率 / 所属板块 / 板块涨跌幅 / 板块换手率。
- 按
references/data_schema.md的字段与单位(成交额亿元、封单金额万元)整理为D/candidates.json。 - 顺手记录「全市场行业板块换手率中位数」作为
market_avg_sector_turnover(用于阶段4活跃度基线;缺失则由脚本用候选板块中位数兜底)。
阶段 2 · 运行筛选脚本
$PY $S --input D/candidates.json --outdir D \
--market-baseline <可选:市场板块换手率中位数>
脚本内部分五道关卡(严格对应需求规格,阈值均可在命令行覆盖):
- 剔除成交额 ≤ 1 亿元(
--min-amount-yi,默认 1.0)。 - IQR 剔除封单金额极端值:对封单金额做 IQR 栅栏(Q1−1.5·IQR, Q3+1.5·IQR),剔除异常高/低(
--iqr-k,默认 1.5)。 - 封板成交比前 25:
封板成交比 = 封单金额(万元) ÷ 成交额(万元),降序取前--top-n(默认 25)。 - 换手率 10%~20%:剔除
<10%或>20%(--min-turnover/--max-turnover)。 - 板块强度:保留「板块当日涨跌幅 > 0 且 板块换手率 ≥ 市场基线」的个股。
注意:
amount_yi以亿元入参、seal_wan以万元入参,脚本内部统一换算为万元后再算比值,勿颠倒单位。
阶段 3 · 产出三件套
脚本一次生成:
| 文件 | 内容 |
| --- | --- |
| D/result.json | 结构化股票列表(7 字段,按封板成交比降序) |
| D/result.xlsx | Excel 工作簿(红头表头,封板成交比加粗标红) |
| D/report.html | 自包含 HTML 仪表盘:筛选漏斗、封板成交比条形图、明细表、板块分布 |
阶段 4 · 呈现与复盘提示
- 用
present_files打开report.html并列出result.xlsx与result.json。 - 在回复中原样呈现最终股票列表(代码/名称/成交额/封单金额/封板成交比/换手率/板块),并附一句风险提示: 「封板强度仅为短线情绪指标,不预示收益;需结合大盘环境、消息面与个股地位综合判断,仅供研究,不构成投资建议。」
- 空/极少结果诊断:若最终达标 ≤ 2 只,说明当日涨停池以低换手一字板/缩量板为主,规则严格执行下大概率空结果。此时额外生成
D/诊断报告.html与D/候补清单.xlsx(列出封板成交比前25候选及其逐关卡淘汰原因:换手率/板块强度),并在回复中给出可调阈值建议(如换手区间放宽 5%~20%、封板比门槛、板块基线口径),由用户决定是否调整后重跑——不得为了凑数私自放宽规则。
五、产出物结构
<workspace>/strong-limit-up/<trade_date>/
├── candidates.json # 涨停股池原始数据(westock 抓取整理)
├── result.json # 结构化筛选结果(7 字段)
├── result.xlsx # Excel 工作簿
└── report.html # HTML 仪表盘
六、参考资料
references/data_schema.md:candidates.json 字段契约、westock 字段映射、单位换算、输出说明。assets/sample_candidates.json:示例数据,可用于离线验证脚本($PY $S --input assets/sample_candidates.json --outdir /tmp/demo)。
七、Windows 注意
PY用受管解释器绝对路径:C:\Users\yangming\.workbuddy\binaries\python\versions\3.13.12\python.exe。若运行环境缺openpyxl,先在隔离 venv 安装:python -m venv .venv && .venv/Scripts/pip install openpyxl,再运行脚本。- 路径用原生反斜杠或 Git Bash 正斜杠,
--outdir不要混用导致建错目录。
八、红线
- 不虚构、不估算任何行情/封单/板块数据;westock 未连接或字段缺失时,停下来向用户说明,绝不编造数字。
- 不承诺收益、不给出买卖点;输出须带「仅供研究,不构成投资建议」声明。
- 不删除历史
candidates.json与往期产出;纠错通过重跑脚本覆盖新产出。 - 涉及 ST、退市风险、异常波动警示的个股,在列表中显著标注风险提示。
微信扫一扫