a-share-screener-push
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 22, 2026
- Updated
- Oct 22, 2026
Introduction
A股分析器(a-share-screener)
DeepSeek Harness 插件:输入股票名,输出全维度体检报告(市值分档 / 公告风险 / 技术面 / 资金流 / 筹码 / 买卖建议)。
数据来源:腾讯自选股 CLI + 东方财富公开接口。不构成投资建议。
功能
| 工具 | 用途 |
|---|---|
a_share_analyze | 个股深度体检:输入名称/代码,输出市值分档、PE/PB、公告风险扫描、技术面、资金流、筹码、买卖建议 |
a_share_screen | 批量选股:按 5 日均线战法从股票池筛选候选 |
它能识别什么
| 能力 | 说明 |
|---|---|
| 准确市值分档 | 超大盘/大盘/中盘/小盘/微盘,参数按档位自适应 |
| 公告风险扫描 | 立案调查、退市风险、计提减值、问询函等,已过滤例行披露 |
| ST / 科创 / 北交剔除 | 名称前缀 + 代码规则双判定 |
| 监管介入识别 | 停牌核查、严重异常波动、立案调查 |
| 一字板检测 | 连板数、开板日、累计涨幅 |
| MACD 深度 | 金叉/死叉时间、柱体趋势、顶底背离、零轴位置 |
| 真假阳线 | 量能确认 + 收盘位置判定 |
| 诱多形态 | 长上影、放量滞涨、冲高回落 |
| 龙虎榜 | 机构 vs 游资、知名席位标签、净买卖 |
| 筹码分布 | 历史迁移、套牢盘、集中度收敛趋势 |
快速开始
1. 安装到 DeepSeek Harness
# 克隆到插件目录
git clone https://github.com/maxcloser/a-share-screener.git
然后在 DSH 中安装:
plugin_manager install_bundle <克隆路径>
2. 使用
a_share_analyze("慈文传媒")
a_share_analyze("sz002343")
输出示例
# 慈文传媒(sz002343)分析报告
## ⛔ 结论:回避(存在财务/合规警示)
### MACD 分析
| 状态 | 金叉(金叉后第 8 日,2026-10-12) |
| 柱体趋势 | 红柱放大(多头增强) |
| 零轴位置 | 零轴上方(强势) |
### 龙虎榜明细
机构专用席位 4 个,净卖出 5135 万
游资席位:拉萨天团、玉兰路
### 详细筹码分布
| 获利盘 / 套牢盘 | 74.8% / 25.2% |
| 平均成本 | 10.27 |
| 90% 集中度 | 29.18 |
### 极端形态与监管
| 连续一字板 | 11 个 |
| 累计涨幅 | +200.19% |
已知限制
| 限制 | 说明 |
|---|---|
| 样本覆盖 | 批量选股用 27 个行业 ETF 前 20 大持仓(约 460 只大中盘),非全市场 |
| 技术面 alpha 很薄 | 实测买点状态超额仅 +0.02%,定位是风险体检工具,不是盈利预测 |
| 公告依赖关键词 | 已尽力过滤例行披露,仍可能有边界误判 |
| 盘中数据不完整 | 分析结果以收盘数据为准 |
免责声明
本项目仅提供公开数据的规则化统计与整理,不构成任何投资建议。
- 所有结论来自技术指标与公告文本的机械规则,不理解基本面
- 历史形态不预示未来走势
- 数据源可能存在延迟或错误
- 投资决策请自行判断,盈亏自负
第一部分:个股深度分析(a_share_analyze)
用法
a_share_analyze("慈文传媒")
a_share_analyze("sz002343")
a_share_analyze("600519")
数据来源(两路合并)
| 数据 | 来源 | 说明 |
|---|---|---|
| K线、技术指标、资金流、筹码、股东 | westock CLI | 原有数据源 |
| 准确市值、PE、PB | 东财 push2 接口 | 单股查询,实测 100% 可用 |
| 公告全文列表 | 东财 np-anotice 接口 | 用于财务/合规风险扫描 |
| ST 判定 | 东财返回的股票名称 | 见下方说明 |
⚠️ 东财的
clist批量列表接口会触发限流(fetch failed / other side closed), 因此不用它拉全市场 ST 名单,改为基于单股行情返回的名称判定 ST 状态——个股场景下更稳定。
剔除规则(命中即判「回避」)
| 规则 | 判定方式 |
|---|---|
| 北交所 | 代码 bj 开头 → 直接拒绝分析 |
| 科创板 | sh688xxx / sh689xxx → 直接拒绝分析 |
| ST / 退市风险 | 名称前缀 ST / *ST / SST / S*ST,或含「退」 |
| 停牌 | suspension hs 名单命中 |
ST 判定的防误杀:若 ST 后紧跟英文字母(如 STAR公司、BEST股份),视为英文单词而非 ST 标记。
公告风险扫描
扫描最近 100 条公告,按三级关键词分类:
| 级别 | 关键词示例 | 触发后果 |
|---|---|---|
| 🔴 致命 | 立案调查、行政处罚、退市风险警示、无法表示意见、财务造假、违规担保 | 结论直接「回避」 |
| 🟠 严重 | 风险警示、退市、问询函、监管函、计提减值、预亏、首亏 | 结论「回避」(若有 3 条以上) |
| 🟡 提示 | 异常波动、诉讼、质押、资产处置、停牌 | 仅提示,不影响结论 |
关键设计:例行披露白名单
A 股大量公告标题是模板化例行披露,措辞与风险词重叠。实测发现若不排除会造成严重误报:
| 股票 | 误报的公告标题 | 实际情况 |
|---|---|---|
| 贵州茅台 | 「非经营性资金占用及其他关联资金往来情况的专项审计说明」 | 例行披露,非风险 |
| 中天科技 | 同上(会计师事务所专项说明) | 例行披露 |
| 大金重工 | 「非经营性资金占用及其他关联资金往来的专项说明-信会师报字」 | 例行披露 |
因此加入 ROUTINE_PATTERNS 白名单,排除:
专项审计说明、内部控制评价、募集资金专项报告、ESG 报告、董事会/监事会/股东大会决议、
独立董事意见、续聘会计师事务所、利润分配、定期报告、审计报告编号等。
修复效果(实测):
| 股票 | 修复前 | 修复后 |
|---|---|---|
| 贵州茅台 | 🔴 重大风险(误报) | ✅ 未发现风险 |
| 百亚股份 | 🔴 重大风险(误报) | ✅ 未发现风险 |
| 大金重工 | 🔴 重大风险(误报) | 🟡 需关注 |
| 慈文传媒 | 🔴 重大风险 | 🟠 高度警惕(3 条减值公告,真实) |
| *ST九鼎 | 🔴 重大风险 | 🔴 重大风险(真实退市警示) |
市值分档与参数自适应
| 档位 | 流通市值 | 量比要求 | 止损 | 单票仓位上限 |
|---|---|---|---|---|
| 超大盘 | ≥1000 亿 | 1.5 | -5% | 30% |
| 大盘 | 500-1000 亿 | 1.5 | -5% | 25% |
| 中盘 | 100-500 亿 | 1.8 | -5% | 20% |
| 小盘 | 30-100 亿 | 2.0 | -6% | 10% |
| 微盘 | <30 亿 | 2.5 | -8% | 5% |
依据:小盘股假突破率显著更高,需更严格的量能确认与更小的仓位。
结论分级与联动规则
| 结论 | 触发条件 |
|---|---|
| ⛔ 回避 | 被剔除 / 财务致命风险 / 严重风险 |
| 🔴 清仓 | 战法判定 exit |
| 🟢 买入 | 战法买点 且 未超买(RSI6<90)且 偏离MA5<10% |
| 🟡 不建议追高 | 技术面买点,但 RSI6≥90 或偏离MA5≥10% |
| 🔵 持有 | 站稳 5 日线 |
| 🟡 观察 | 条件不满足 |
关键修复:早期版本会出现「既提示高度警惕、又建议买入」的自相矛盾, 现已在结论生成阶段加入风险联动——财务风险与超买信号可以否决技术面买点。
第二部分:批量选股(a_share_screen)
按「5 日均线战法」口诀扫描 A 股,叠加技术面、主力资金、量价、板块共振、大盘环境、筹码与机构持仓,并给出板块分散的组合建议。
一、战法规则(用户口诀 + 量能确认)
| 口诀 | 规则 | 实现 |
|---|---|---|
| 1 | 没 5% 以上大阳线不参与 | 近 bigCandleLookback(20) 日内找 bigCandlePct(5%) 以上阳线 |
| 1+ | 大阳线必须放量 | 成交额 ≥ 前 5 日均量 × bigCandleVolumeRatio(1.5),否则判「假阳线,不参与」 |
| 2 | 大阳线后回落碰 5 日线没跌破就买入 | 最低价触及 MA5(容差 touchTolerancePct 1%)且收盘 ≥ MA5 → buy |
| 2+ | 回踩必须缩量 | 回踩日成交额 ≤ 前 5 日均量 × pullbackVolumeRatio(0.8);放量下跌判「疑似出货」不给买点 |
| 3 | 股价远离 5 日线时减半仓 | 偏离 MA5 ≥ farAboveMa5Pct(8%) → 输出减仓动作 |
| 4 | 收盘跌破 5 日线减半仓 | 跌破当日提示减半仓;次日站回提示「仓位补回」(不再直接清仓) |
| 5 | 跌破后三天站不回清仓 | 连续 exitGraceDays(3) 日跌破 且 MA5<MA20 才清仓;否则仅减半仓 |
口诀1/2 的量能确认是硬门槛:不满足即否决对应口诀。
二、离场规则(基于回测算重构)
回测(行业均衡样本 463 只 / 28 行业,同等 20 日上限):
方案 均值 中位 p5(最差5%) 标准差 固定持有 20 日 +1.03% -1.50% -18.01% 15.12% 新离场(-5%/+10日) +1.30% -2.35% -8.06% 12.55% 旧离场(破 MA5) -0.09% -1.06% -4.78% 5.38% 结论:旧「破 MA5 离场」收益为负,应废弃;新规则在提高均值的同时把尾部风险从 -18% 收敛到 -8%。 代价是胜率偏低(约 25%)——这是「截断亏损、放走盈利」的必然形态,靠少数大赢家覆盖多数小亏。
| 规则 | 触发条件 | 结果 |
|---|---|---|
| 硬止损 | 自大阳线收盘价回撤 ≥ hardStopPct(5%) | 清仓 |
| 时间止损 | 大阳线后超过 holdingDays(10) 个交易日仍未盈利 | 离场 |
| 口诀4/5 | 跌破 MA5 → 减仓提示;连续3日且 MA5<MA20 → 清仓 | 减仓/清仓 |
三、大盘环境(默认不做过滤)
⚠️ 重要修正:早期结论「大盘空头时买点超额 -1.66%,应硬屏蔽」来自有偏样本(127 只、54% 是电力设备/电子/医药/军工),已作废。
在行业均衡样本(463 只 / 28 行业)上重测:大盘 MA20 下方时的买点信号平均 +2.07%,反而高于多头期的 -0.28%;开启屏蔽会让超额从 +0.45% 掉到 -0.87%。
因此默认 不做大盘过滤,大盘状态只作为信息展示:
requireMarketUp: false(默认)→ 只展示大盘状态,不否决任何信号requireMarketUp: true→ 大盘走弱时否决,可用blockBuyInBearMarket选择「降级观察」或「直接屏蔽」
四、状态含义
| 状态 | 含义 |
|---|---|
buy 买点 | 放量大阳线后缩量回踩 5 日线不破,且大盘环境允许 |
hold 持有 | 站稳 5 日线,回踩可加 |
bigcandle 大阳线待回踩 | 今日刚出放量大阳线,等回踩,不追高 |
watch 观察 | 回落中、放量回踩、或大盘/可交易性否决 |
exit 清仓 | 硬止损/时间止损触发,或连续破位且 MA5<MA20 |
neutral 不参与 | 无有效大阳线、或买点被大盘硬开关屏蔽 |
五、评分权重(多因子,基于回测重做)
| 因子 | 权重 | 说明 |
|---|---|---|
| MA5 战法 | 30 | 原为 45,过高会把单一图形信号放大 |
| 量价 | 15 | 放量与突破 |
| 资金 | 12 | 原为 20,主力净流入在 A 股偏滞后 |
| 技术 | 10 | MACD/KDJ/RSI |
| 基本面 | 10 | 原为 4,中期收益主要由基本面驱动 |
| 估值/筹码 | 10 | 获利盘比例、平均成本偏离、集中度 |
| 板块 | 8 | 涨幅排名前 sectorTopN 才加分 |
| 机构 | 5 | 十大股东机构家数与增减持 |
缺失数据的因子不参与加权(不会用 50 分中位数稀释信号)。
六、股票池与过滤
默认排除:科创板(sh688/sh689)、北交所(bj)、ST / 退市风险股、ETF/基金。
可配置 excludeBoards: ['kcb','bj','gem'] 额外排除创业板。
样本池来源(P1-③,行业均衡设计):
- 行业均衡 ETF 持仓池 —— 一行业一只 ETF,覆盖申万一级中 ETF 可投的 27 个行业, 去重后约 463 只、覆盖 28 个行业,最大单行业占比约 6.5%
- 热点板块领涨股 + 热搜榜
- 关键词搜索
为什么是「一行业一只」而不是叠宽基? 数据源的
etf-holdings每只 ETF 只返回前 20 大持仓。若叠加多只宽基,前 20 权重股高度重叠, 会重复放大大盘股;若混入行业主题 ETF(如军工/煤炭/医药),则会让少数行业占样本一半以上。 实测对比:
方案 样本数 行业数 最大单行业占比 前3行业合计 早期(10 只宽基+主题混合) 127 22 15.7%(电力设备) 44.1% 当前(27 只行业 ETF) 463 28 6.5% 16.4%
无法覆盖的 4 个行业:轻工制造、商贸零售、美容护理、综合(A 股暂无对应 ETF)。
过滤对所有来源统一生效,末尾有兜底校验,并在「处理说明」列出被排除的代码与原因。
ST 判定按 A 股命名规范做前缀匹配(ST / *ST / SST / S*ST,且 ST 后不紧跟英文字母),避免把 STAR公司、BEST股份 误杀;名称含「退」也排除。
- 传入
codes时同样遵守排除规则;需强制诊断科创/北交/ST 持仓时显式传includeExcluded: true。
七、P2 深度因子与组合构建
- 估值/筹码(
includeChip):获利盘比例 <20% 视为低位加分,>85% 扣分;现价低于平均成本 8% 以上加分,高于 15% 扣分。 - 机构持仓(
includeShareholder):十大股东中机构增持加分、减持扣分。 - 两者只对入围候选(粗筛前 N×2)调用,避免全池调用导致耗时爆炸。
组合构建(P2-⑧) 输出「组合建议」表:
- 同板块最多
maxPerSector(2) 只,控制相关性 - 组合最多
maxHoldings(5) 只 - 按评分做轻微倾斜给出建议仓位,单票上限
maxSinglePositionPct(30%)
八、数据源
腾讯自选股 CLI:npx -y westock-data-clawhub@1.0.4。
用到 search / kline / technical / asfund / profile / suspension / hot / board / dividend / reserve / chip / shareholder / etf-holdings。
注意事项:
quote在部分渠道不可用,行情统一走kline。- 单只查询时 CLI 不返回代码列,解析时用请求代码兜底。
- 盘中数据是未完成的当日K线,收盘前结论会变;量比会被低估。
- 数据源偶发返回空批次(约 50 字节),看到「全部数据不足」重试一次即可。
九、配置
本插件不导出 Cordis Config(避免依赖 dsh 内部包),配置写在 cordis.patch.yml 的 config 里,由 apply 宽松归一化:
- insert:
- id: a-share-screener
name: '@local/a-share-screener'
config:
cli:
package: 'westock-data-clawhub@1.0.4'
timeoutMs: 60000
excludeBoards: ['kcb', 'bj']
excludeST: true
useEtfPool: true
includeChip: true
includeShareholder: true
defaultScanLimit: 40
defaultTopN: 20
indexCode: 'sh000001'
改完配置需重装插件或重启 DSH 生效。
十、关键参数
bigCandlePct bigCandleLookback bigCandleVolumeRatio touchTolerancePct pullbackVolumeRatio
farAboveMa5Pct exitGraceDays hardStopPct holdingDays stopLossPct
limitUpAmplitudePct consecutiveLimitLookback consecutiveLimitCount limitUpPct
marketMaPeriod requireMarketUp blockBuyInBearMarket sectorTopN
maxPerSector maxHoldings maxSinglePositionPct volumeRatio minMainNetFlow minBars
免责声明
本工具仅提供基于公开行情数据的技术面统计与规则匹配,不构成投资建议。投资有风险,决策需谨慎。