← Back to home@maxcloser

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 股偏滞后
技术10MACD/KDJ/RSI
基本面10原为 4,中期收益主要由基本面驱动
估值/筹码10获利盘比例、平均成本偏离、集中度
板块8涨幅排名前 sectorTopN 才加分
机构5十大股东机构家数与增减持

缺失数据的因子不参与加权(不会用 50 分中位数稀释信号)。

六、股票池与过滤

默认排除:科创板(sh688/sh689)、北交所(bj)、ST / 退市风险股、ETF/基金。 可配置 excludeBoards: ['kcb','bj','gem'] 额外排除创业板。

样本池来源(P1-③,行业均衡设计):

  1. 行业均衡 ETF 持仓池 —— 一行业一只 ETF,覆盖申万一级中 ETF 可投的 27 个行业, 去重后约 463 只、覆盖 28 个行业,最大单行业占比约 6.5%
  2. 热点板块领涨股 + 热搜榜
  3. 关键词搜索

为什么是「一行业一只」而不是叠宽基? 数据源的 etf-holdings 每只 ETF 只返回前 20 大持仓。若叠加多只宽基,前 20 权重股高度重叠, 会重复放大大盘股;若混入行业主题 ETF(如军工/煤炭/医药),则会让少数行业占样本一半以上。 实测对比:

方案样本数行业数最大单行业占比前3行业合计
早期(10 只宽基+主题混合)1272215.7%(电力设备)44.1%
当前(27 只行业 ETF)463286.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

免责声明

本工具仅提供基于公开行情数据的技术面统计与规则匹配,不构成投资建议。投资有风险,决策需谨慎。