A股成交额集中度历史分位
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_33655e80/china-a-share-turnover-concentration-akshare。
技能介绍
要解决的问题
全市场成交额常被少数股票占据,只看指数总量无法回答「成交是否过度集中」这类问题。手动写脚本常见三类坑:一是把「成交股数前 1%」和「成交额前 1%」混写,两者排名完全不同;二是用固定「前 50 只」代替动态阈值,股票总数变化后口径就漂移;三是只取当前上市证券,忽略已退市股票,形成幸存者偏差。另外,盘中抓取的快照容易被当成完整日数据直接进历史分位,污染后续计算。
技能如何工作
该技能只依赖 AkShare,不改底层数据源,也不允许用 Tushare、Wind、iFinD、聚宽或外部行情文件回填缺失证券或日期。执行前需先阅读 references/methodology.md。
核心输出是沪深京 A 股成交额前 1%/3%/5% 占比及其历史分位,指标使用原始日成交额,不做价格复权。
关键步骤包括:
- 预检:确认
python3、akshare、pandas可导入并记录版本,图表用标准库生成 SVG,不依赖 Matplotlib;默认不主动升级依赖。 - 首次建库:默认自 2015-01-01 回溯。因 AkShare 无单次返回某历史日全市场成交额的接口,需逐证券抓取并写入可续跑的 SQLite 缓存;默认走东方财富接口,失败时先报告错误,再切换腾讯或新浪接口,不静默混源。
- 每日收盘后更新:用
stock_zh_a_spot获取收盘快照,并以stock_zh_a_hist_tx的000001成交额和日期作锚点校验;锚点失败当日标记 DEGRADED,返回非零退出码。 - 重算历史分位:默认要求至少 252 个 PASS 交易日才发布结果。
证券池纳入上交所主板、科创板、深交所主板/创业板及北交所 A 股,排除 B 股、ETF、基金、债券和成交额为 0 的证券。前 1%/3%/5% 按当日正成交额股票数动态取上整,分子与分母必须来自同一截面。
适用边界与注意点
- 交易日 09:15–16:10 默认拒绝写入,避免把盘中数据当完整日;
--allow-intraday仅用于诊断,对应日期强制标记 FAIL,不得进入历史分位。 - 沪深历史证券池合并当前上市与已退市证券;任一沪深退市池接口失败时,建库必须停止,不能在幸存者偏差下发布分位。
- 北交所 2025-10-09 起存量股票全面切换 920 代码,脚本需检查新旧代码衔接;AkShare 暂无独立北交所退市池接口,相关历史缺口须固定披露。
- 高集中度只解释为流动性聚集,不给出涨跌判断或自动交易结论。
使用场景
- 量化研究员搭建沪深京A股成交额集中度监控,需要按前1%/3%/5%动态阈值计算历史分位。
- 策略回测前需合并沪深当前与退市证券池,避免用当前上市股票造成幸存者偏差。
- 收盘后自动更新SQLite缓存,需要用000001成交额锚点校验当日快照,失败时降级处理。
- 数据工程团队需要生成Markdown、JSON、CSV和SVG多格式成交集中度报告,并保留接口来源记录。
适合人员
- 量化研究员,需要监控全市场成交额集中度并评估历史分位,用于流动性风险研究。
- 金融数据工程师,负责搭建A股日度数据缓存与收盘后增量更新流程,并保留数据源审计信息。
- 策略风控人员,需要在回测和实盘监控前排除幸存者偏差、盘中污染和退市数据缺口。
- 技术博客作者,想解析AkShare多接口数据流程,并说明建库、熔断与降级机制的实际工程约束。