SA

simonlin1212/a-stock-data

开发工具
1.1万 stars 质量 75 趋势 95Apache-2.0

A股全栈数据工具包 · 十一层架构 · 54端点 · 19数据源 · 零鉴权 | Full-stack China A-share data toolkit for AI agents — 11 layers, 54 endpoints, 19 sources, zero-auth

概览

A 股全栈数据工具包 — 10 层架构 · 40 个端点 · 13 个数据源 · 零第三方数据封装依赖 一个自包含的 Skill 文件,把分散在 13 个数据源里的 A 股原始数据整合成 AI 编程助手直接能用的工具集。你不用再背 mootdx 的 K 线参数、东财的 PDF Referer 头、iwencai 的 X-Claw 鉴权——全部封装好了。 ① (#23 / #15)——东财涨停 / 炸板 / 跌停 / 昨日涨停四池 + 同花顺涨停揭秘(涨停原因题材 / 封板成功率)+ 打板情绪速算(炸板率 / 连板梯队);② (#13)——50ETF / 300ETF 等期权 T型报价 + 希腊字母 + 隐含波动率(新浪源,免本地算 BSM);③ ——互动易问答(公司如何回应投资者)+ 同花顺热榜 + 东财人气榜 + 个股概念命中。另显式补充 ETF 支持说明。端点 28→40,层数 7→10。 ① ——bars() 参数名误写 category(实为 frequency),被 **复权口径**不复权**full_valuation EPS 取错列**V3.2.4 修复(2026-06-20 · #26):**mootdx 0.11.x 全新安装 BESTIP 空串崩溃**V3.2.3 新增(2026-06-20):**行业研报**V3.2.2 修复(2026-06-03):**概念板块归属(#18)**巨潮公告 orgId(#19)**V3.2(2026-05-30):**数据源优先级 + 东财防封**财联社快讯下线(#14)**V3.1 修复(2026-05-19):**V3.0 Breaking Change: 彻底移除 akshare 依赖,所有数据源改为直连 HTTP API。新增资金面/筹码层。 兼容 Claude Code · Codex · OpenClaw Skill 文件本质是结构化 Markdown + 内嵌 Python,任何支持上下文注入的 AI 编程助手都能用。 启动 Claude Code,说一句「帮我看看 688017 的估值」,自动激活。 把 SKILL.md 的内容贴入你的系统 prompt 或项目上下文文件即可,内嵌的 Python 代码可直接执行。 除 iwencai 外,其余所有数据源**。

README

简体中文 | English

a-stock-data

A 股全栈数据工具包 — 15 层架构 · 87 个端点 · 34 个数据源 · 零鉴权(iwencai 除外)

行情 K 线 · 研报 · 市场信号 · 资金面 / 筹码 · 新闻 · 基础财务 · 公告 · 打板 · ETF 期权 · 舆情互动 · 宏观与利率 · 指数与交易日历 · 期货与大宗商品 · 事件驱动 · 可转债


数据覆盖 · 架构 · 快速开始 · 端点清单 · 使用示例 · FAQ · 更新日志

一个自包含的 Skill 文件,把分散在 34 个数据源里的 A 股及相关市场原始数据整合成 AI 编程助手直接能用的工具集。你不用再背腾讯 K 线的分段参数、通达信盘后包的二进制格式、东财的 PDF Referer 头、iwencai 的 X-Claw 鉴权——全部封装好了。主源被封还有「备用源速查」可降级。

兼容 Claude Code · Codex · OpenClaw · WorkBuddy · Muse · Grok Bot

Skill 文件本质是结构化 Markdown + 内嵌 Python,任何支持上下文注入的 AI 编程助手都能用。

V3.10.3(2026-10-23 · 上证e互动时间列): §10.3 sse_e_interaction() 的回复时间是相对写法(昨天 18:22),原来只认绝对时间,遇到就整页抛错。现在相对/绝对时间都换算成 YYYY-MM-DD HH:MM(按北京时间),认不出仍然报错。入口数、来源数、返回的数据都不变。

V3.10.2(2026-10-11 · #58): 修正 full_valuation() 的 PE 消化年数:前向 PE 高于 30x 而预测盈利不增长(或下一年预测缺失)时,原来返回 0 年,像是已经消化完;现在返回 None,表示无法估算。当年 EPS 缺失或不为正时同样返回 None。入口数、来源数不变。

V3.10.1(2026-10-07 · #57): 更正 §1.2 腾讯 K 线的成交量单位:科创板(688 / 689)是股,其余是手。此前文档全写成手,照旧文档换算科创板会大 100 倍。同时补上和通达信盘后包、Baostock 按股对账的口径。§1.4 逐笔改走复用连接、自动重试的会话(一次约 70 秒 → 约 25 秒),新增 frame.attrs["complete"],15:31 以后核对盘后定价段有没有缺笔;§13.7 期货日 K 同样自动重试。入口数、来源数、返回的数据都不变。

V3.10.0(2026-09-22): 通达信公开服务器的 K 线 / 盘口 / 逐笔命令失效(#52)后,行情层把可用来源排到前面(腾讯 → 腾讯 K 线 → 通达信盘后包 → 腾讯逐笔),mootdx 移到最后留档;新增 §1.4 tencent_ticks() 腾讯当日逐笔成交(替代 mootdx 逐笔)和 §13.7 futures_kline() 新浪期货日 K(主力连续 + 具体合约,补上大商所)。Layer 1 重新编号,旧编号对照见 CHANGELOG。

V3.9.0(2026-09-20): 新增期货与大宗商品、事件驱动、可转债三层,并在原有各层补上腾讯 K 线、通达信官网盘后包、新浪研报、ETF 份额、利率曲线等入口,共 25 个;通达信公开服务器的 K 线命令失效(#52)已改走 HTTP。详见 CHANGELOG。


数据覆盖(15 类)

另有 5 个备胎:官方龙虎榜、新浪资金流、公告、沪深官方两融、北交所当前行情,主源被封时降级用。


架构

A 股全栈数据 · 十五层架构 · V3.10.3
│  (优先级:腾讯 / 交易所官方优先,不封 IP;mootdx 行情命令 2026-09 起失效,只用于财务与 F10;
│    东财只用于独有数据,已内置限流防封)
├── 行情层    腾讯 + 通达信官网 + 百度 + 新浪   实时价 / PE / PB / 市值 + 指数 / ETF + K线(带MA5/10/20)
│                                           + 复权因子 qfq/hfq  ★V3.7
│                                           + 日周月前后复权与 1~60 分钟 K 线 + 全市场当日日线(含成交额)  ★V3.9
│                                           + 当日逐笔成交(沪深个股 + ETF)  ★V3.10
├── 研报层    东财 reportapi + 同花顺 + iwencai + 新浪   个股研报 / 行业研报 / PDF下载 / 一致预期 / NL搜索
│                                           + 新浪研报列表(第二来源)  ★V3.9
├── 信号层    同花顺 + 东财                  强势股 + 题材归因 + 北向资金 + 板块归属
│                                           + 资金流向(push2) + 龙虎榜 + 全市场龙虎榜 + 解禁 + 行业对比 + 板块资金流
├── 资金面    东财 datacenter + push2        融资融券 + 大宗交易 + 股东户数 + 分红送转 + 资金流(分钟+120日)
│   /筹码     本地计算 + 上交所 + 深交所     筹码分布 CYQ  ★V3.7 + ETF 份额  ★V3.9
├── 新闻层    东财 + 财联社 + 华尔街见闻 + 央视网   个股新闻 / 财联社电报 / 全球资讯 / 7×24 快讯 / 新闻联播  ★V3.9
├── 基础数据  mootdx + 东财 + 新浪           季报37字段 / F10最新提示 / 财报三表
│           + baostock + 申万                估值历史(PE/PB/PS+换手率+停牌+ST) / 上市退市日 / 申万行业变迁史  ★V3.7
│                                           + ST 名单  ★V3.9
├── 公告层    巨潮 cninfo + mootdx           沪深北全量公告
├── 打板层    东财 push2ex + 同花顺          涨停池 / 炸板 / 跌停 / 昨涨停 / 涨停原因题材 / 连板梯队
│                                           + 重点监控池 + 日内异动池  ★V3.6
├── 期权层    新浪 hq.sinajs                ETF期权 T型报价 / 希腊字母 / 隐含波动率 IV  ★V3.3
├── 舆情互动  巨潮互动易 + 上证e互动 + 同花顺 + 东财   互动易(深市) / 上证e互动(沪市) ★V3.9 / 热榜 / 人气榜 / 概念命中
├── 宏观利率  人民银行 + 统计局 + 中债 + 货币网 + 东财 + 华尔街见闻
│                                           社融 / PMI / 收益率曲线 / 回购定盘利率 / LPR / 全球宏观日历  ★V3.9 扩展
├── 指数日历  中证指数 + 国证指数 + 深交所    指数成分 / 权重 / PE与股息率 / 官方交易日历
├── 期货大宗  上期所 + 上期能源 + 郑商所 + 中金所 + 广期所 + 新浪 + 上金所
│                                           期货日行情 / 商品与股指期权 / 持仓排名 / 实时期货 / A50 / 上海金  ★V3.9
│                                           + 期货日 K(主力连续 + 具体合约,含大商所)  ★V3.10
├── 事件驱动  东财 datacenter                业绩预告 / 机构调研 / 增减持 / 回购 / 股权质押 / 新股申购  ★V3.9
└── 可转债    东财 datacenter                条款 / 转股价值 / 溢价率 / 上市摘牌状态  ★V3.9

十五层之外另附备用源速查 & 降级策略:龙虎榜/资金流/公告备胎,以及沪深官方两融、北交所当前行情与五档备胎。使用范围和真实数据日期见 SKILL.md 对应章节。


快速开始

3 步,2 分钟。

# 1. 创建 skill 目录
mkdir -p ~/.claude/skills/a-stock-data

# 2. 把 SKILL.md 放进去
curl -o ~/.claude/skills/a-stock-data/SKILL.md \
  https://raw.githubusercontent.com/simonlin1212/a-stock-data/main/SKILL.md

# 3. 安装依赖(V3.0 不再需要 akshare;V3.9 没有新增依赖)
pip install mootdx requests pandas stockstats numpy baostock xlrd openpyxl

启动 Claude Code,说一句「帮我看看 688017 的估值」,自动激活。

Codex / OpenClaw 用户: 把 SKILL.md 的内容贴入你的系统 prompt 或项目上下文文件即可,内嵌的 Python 代码可直接执行。


87 个端点能力清单

共 82 个主入口、5 个备胎。沿用能力入口计数:同一函数的中证/国证或沪深路由不重复计数,辅助函数与仅列入候选的项目不计入。

计数口径: 下方清单共 88 行,按能力入口计 87 个——「东财 行业研报」与「东财 reportapi」为同一端点(仅 qType 参数不同)、「同花顺北向(历史)」为本地自缓存(非独立端点),两行不计入;「东财日内异动池」一行含 list / count 两个端点,多计 1 个。88 − 1 − 1 + 1 = 87。代码转换辅助函数 to_joinquant() 不计入。

行情层(实时,不封 IP)

研报层

端点 数据
东财 reportapi 个股研报列表 + 评级 + 三年 EPS 预测
东财 行业研报 行业研报列表(qType=1,同端点)+ 行业名/行业码 + 评级(V3.2.3 新增)
东财 PDF 下载 完整研报 PDF(个股/行业通用,已处理 Referer 鉴权)
同花顺一致预期 机构一致预期 EPS(直连 basic.10jqka.com.cn)
iwencai NL 搜索 自然语言跨主题研报检索
新浪研报列表 标题 / 类型 / 机构 / 研究员 / 日期,东财之外的第二来源;无评级与目标价(V3.9 新增,#53)

信号层

资金面 / 筹码层(V3.0 新增)

端点 数据
融资融券明细 日级融资余额/买入/偿还 + 融券余额/卖出/偿还
大宗交易 成交价/量 + 买卖方营业部 + 溢价率
股东户数变化 季度股东数 + 环比变化 + 户均持股(筹码集中度)
分红送转历史 每股派息/送股/转增 + 进度状态
个股资金流120日 主力/大单/中单/小单日级净流入
筹码分布 CYQ 获利比例 / 平均成本 / 90-70 成本区间与集中度 / 筹码峰(本地计算,V3.7 新增)
ETF 份额 上交所按日归档(实测 2022-01-04 仍有数据)/ 深交所当前快照,单位万份(V3.9 新增)

新闻层

端点 数据
个股新闻 东财个股新闻流(直连 search-api-web)
财联社电报 全市场实时快讯(v1 API + 本地签名零 key,✅V3.4.0 复活,与全球资讯互备)
全球资讯 东财全球财经资讯(直连 np-weblist,7×24)
华尔街见闻快讯 按频道取 7×24 快讯,带翻页游标(V3.9 新增)
新闻联播 当日条目标题 + 文字稿(央视网,当晚约 20:00 后更新;V3.9 新增)

基础数据 + 公告

打板层(V3.3 新增)

端点 数据
东财涨停池 连板数 / 几天几板 / 封板资金 / 炸板次数 / 首末封板时间 / 所属行业
东财炸板池 曾涨停后开板 + 振幅 / 涨速
东财跌停池 封单资金 / 连续跌停天数 / 开板次数 / 板上成交额
东财昨日涨停池 昨涨停今表现(自算晋级率 / 赚钱效应)
同花顺涨停揭秘 涨停原因题材 / 封板成功率 / 一字·换手·T字板 / 封单额
东财重点监控池 交易所风险警示 / 重点监控名单 + 生效时间窗(V3.6 新增)
东财日内异动池 严重异常波动明细 + 按标的聚合异动统计 + 12 条异动规则解释(V3.6 新增)

ETF 期权层(V3.3 新增)

端点 数据
期权合约清单 50ETF / 300ETF / 科创50ETF / 500ETF 各月份认购认沽合约
T型报价 买卖五档 / 持仓量 / 行权价 / 最新价 / 成交量额
希腊字母 + IV Delta / Gamma / Theta / Vega / 隐含波动率 / 理论价值(交易所预算,免本地算 BSM)

舆情互动层(V3.3 新增)

宏观与利率层(V3.7 新增,V3.9 扩展)

指数与交易日历

端点 数据
指数成分 中证最近成分、国证最近公布的月末成分;保留源侧日期,不提供历史时点回填
指数权重 中证/国证最近公布权重;单位为百分数,不假定与成分同日
指数估值 中证两种股本口径的 PE 和股息率;近期文件,不含 PB、不承诺全历史
官方交易日历 深交所完整自然月交易标志,缺日/未发布/未知标志抛错

期货与大宗商品层(V3.9 新增,#49)

大商所官网有 JS 反爬(纯 HTTP 返回 412),官方日行情未接入;大商所品种的历史日 K 用「期货日 K」,实时价用「实时期货」。

事件驱动层(V3.9 新增)

端点 数据
业绩预告 预告类型、预计金额与变动幅度区间、上年同期、变动原因
机构调研 调研汇总(接待机构数、方式、地点)或逐机构明细
股东增减持 股东、方向、变动股数与比例、变动后持股、均价、渠道
股票回购 方案价格上限、股数与金额区间、已回购股数与金额、进度
股权质押 中国结算周度质押比例、质押股数与市值、笔数(只覆盖沪深)
新股申购日历 申购 / 中签 / 缴款 / 上市日期、发行价与市盈率、中签率、首日表现

可转债层(V3.9 新增)

端点 数据
可转债 正股、评级、发行规模、转股价、转股价值、溢价率、上市 / 到期 / 摘牌日与状态

备用源(主源被封时降级)

端点 数据
官方龙虎榜备胎 上交所 + 深交所官方接口,零鉴权权威一手,含营业部席位(东财被封时用)
资金流备胎 新浪日度四档单净额(超大/大/中/小单 + 净流入)
公告备胎 深市走深交所官方、沪市走东财,均带 PDF 直链(巨潮被封时用)
官方两融备胎 上交所/深交所分开查询,金额元、余量股/份;上交所缺融券余额金额时保留为空
北交所行情备胎 全板或单票 OHLC/成交量额/五档快照,强制核对交易日;不提供历史回填,盘中延迟未标定

另附十五层主源 → 独立备胎速查表(交易所官方 / 同花顺 F10 / HKEX / 巨潮 webapi / 金十等,全部不同风控面)与「已死透别用」名单,见 SKILL.md「备用源速查 & 降级策略」章节。V3.9 起 K 线主源改为腾讯,当日全市场日线可用通达信盘后包,研报列表可用新浪。

鉴权要求

除 iwencai 外,其余已接入数据源无需用户注册或 API Key;V3.8 的中证、国证和北交所,以及 V3.9 新增的 12 个来源(通达信官网、华尔街见闻、央视网、上证e互动、中债、中国货币网、五家期货交易所、上金所)也不需要用户凭据(北交所使用官网匿名 Cookie)。仅 iwencai 语义搜索需要 API Key(申请地址)。候选增强源不计入上述能力。


使用示例

跟你的 AI 助手说这些话就能激活:

场景 说什么
个股估值 「帮我估一下 688017,给我 PE / PEG / 消化时间」
题材归因 「今天哪些股票走强,主要是什么题材」
研报检索 「人形机器人产业链最近的研报,特别是丝杠和减速器」
北向资金 「今天北向资金流入流出怎么样」
概念板块 「688017 属于哪些概念板块」
资金流向 「000858 今天主力资金流入还是流出」
龙虎榜 「002475 最近上过龙虎榜吗,哪些营业部在买」
全市场龙虎榜 「今天龙虎榜哪些票净买入最多」
解禁预警 「这只股票未来 3 个月有没有限售解禁」
行业轮动 「今天哪些行业涨幅最大」
板块资金流 「今天主力资金在流入哪些行业/概念板块,近 5 日趋势呢」
融资融券 「600519 最近的融资余额变化趋势」
大宗交易 「这只票最近有没有大宗交易,溢价还是折价」
股东户数 「000858 股东户数在增加还是减少,筹码集中吗」
分红送转 「茅台历年分红派息多少」
ETF 行情 「510050 上证50ETF 现在什么价、今天涨跌多少」
涨停打板 「今天涨停多少家、最高几连板、炸板率多少」
涨停归因 「今天涨停的票都是什么题材,哪些是几天几板」
重点监控池 「现在哪些标的被交易所列入重点监控,监控到什么时候」
日内异动 「今天有哪些严重异常波动的票,触发的是哪条异动规则」
异动 × 监控交叉 「今天异动的票里,有没有已经在重点监控名单上的」
ETF 期权 「50ETF 平值期权的隐含波动率和 Delta 是多少」
互动易 「比亚迪最近投资者都在问什么,公司怎么回应的」
市场热度 「今天哪些票最热门,被归到什么概念在炒」
新闻公告 「拉一下 300476 最近的新闻和公告」
市场快讯 「用财联社电报看看现在市场上有什么大新闻」
批量对比 「帮我对比这 5 只半导体股的估值」
筹码分布 「600519 现在获利盘多少,平均成本在哪,筹码峰压力位在哪」
估值历史 「茅台现在的 PE 在过去十年是什么分位,顺便看下换手率」
ST / 停牌 「000004 历史上哪段时间是 ST,有没有停过牌」
行业变迁 「000001 在 2016 年属于哪个申万行业,跟现在一样吗」
宏观环境 「最新社融和 PMI 什么水平,现在流动性是宽还是紧」
指数成分 「沪深300最近的成分有哪些,文件日期是什么」
指数权重 「创业板指最近公布的权重是多少,注意保留真实日期」
指数估值 「中证沪深300近期 PE 和股息率,两种口径分别列出」
交易日历 「2026 年 9 月哪些日期开市,按深交所官方日历」
两融备胎 「东财不可用,分别取沪深交易所 2026-09-03 的两融明细」
北交所备胎 「从北交所官方取 920021 当前快照,核对交易日」
前复权 K 线 「600519 从 2025 年到现在的前复权日线,再给我 300750 最近 96 根 5 分钟线」
全市场日线 「2026-09-18 沪深北全市场的收盘价和成交额,按成交额排前 20」
研报第二来源 「东财连不上,用新浪看看 600519 最近有哪些研报」
ETF 份额 「510300 这半年份额是在增加还是减少」
7×24 快讯 「华尔街见闻 A 股频道最近 50 条快讯」
新闻联播 「今晚新闻联播提到了哪些行业」
ST 名单 「现在一共有多少只 ST 和 *ST,北交所有几只」
沪市问答 「浦发银行最近在上证e互动回复了什么」
利率曲线 「今年以来 10 年期国债收益率怎么走的,和 AAA 中短票的利差多少」
资金面利率 「FR007 最近一个月的走势,LPR 上次调整是哪天」
宏观日历 「下周有哪些重要宏观数据要公布;上周公布的数据和预期差多少」
期货日行情 「上期所昨天螺纹钢和铜各合约的结算价和持仓」
商品期权 「上期所铜期权昨天各合约的 Delta 和隐含波动率」
期货持仓排名 「IF2610 前 20 名会员的多空持仓变化」
大宗商品 「豆粕主力现在什么价,A50 期指和上海金呢」
业绩预告 「三季报业绩预告里预增幅度最大的是哪些」
机构调研 「688062 最近被哪些机构调研过」
增减持 / 回购 「这个月有哪些股东在减持,哪些公司正在实施回购」
股权质押 「质押比例最高的公司有哪些」
新股申购 「这周有哪些新股可以申购,发行市盈率多少」
可转债 「现在溢价率最低的可转债有哪些」
聚宽代码 「把这批代码转成聚宽格式」

内置 4 套调研流程

流程 做什么 耗时
单票估值 实时价 → 一致预期 EPS → 前向 PE / PEG / PE 消化年数 30 秒
批量对比 多只股票横向估值排列 1 分钟
主题研报 iwencai 多关键词 NL 搜索 + 东财 PDF 交叉补充 2 分钟
新标的调研 机构覆盖 → 估值 → 概念板块 → 资金流向 → 龙虎榜 → 解禁 → 两融 1 分钟

数据源优先级(V3.9 重排,按封 IP 风险)

原则:能用腾讯 / 交易所官方,就别用东财。 行情 / K 线 / 实时价 / 市值 / 财务三表能从腾讯、交易所官方或新浪拿到的,一律走它们。mootdx 行情命令 2026-09 起失效(#52),只用于财务快照与 F10。东财只用于它独有、别处拿不到的数据,且全部走 em_get() 内置限流。

架构原则: 除 mootdx 与 baostock(均为 TCP 客户端库)外,全部直连 HTTP API,不经第三方数据封装。东财系接口有访问频率风控,所有调用统一经 em_get() 串行限流防封;批量任务请调大 EM_MIN_INTERVAL。

降级原则: 主源被封/失效时,查 SKILL.md「备用源速查 & 降级策略」。部分核心数据有不同域名、不同风控面的独立备胎;并非所有能力都有备份,取数后仍须检查日期与完整性。


FAQ

Q: 指数权重为什么不是今天?能拿来回测吗? 官方成分与权重可能按不同日期发布,国证这条接口返回月末快照;date 保存源文件日期。当前成分不能代替历史时点成分。本版未接入历史调样,也不把缺失的指数 PB 补为零。

Q: 两融和北交所备胎怎么用? 先执行 SKILL.md 的 Layer 12 完整代码块,再执行「官方两融与北交所行情备胎」代码块。两融按 SH / SZ 分开取,北交所必须传期望交易日;日期不符、分页不全、源未发布均报错。

Q: mootdx 取不到 K 线 / tdx_client() 报「所有 mootdx 服务器均无法取到数据」?(#52) 2026-09-20 逐台实测内置 10 台服务器,TCP 都能连上,财务、除权除息正常,F10 只剩「最新提示」一类,但 K 线、五档盘口、逐笔成交都返回 0 行。这是服务器端的变化,换 mootdx 版本解决不了。替代方案:

  • 沪深日 / 周 / 月 K 线(前后复权)和 1~60 分钟 K 线 → §1.2 tencent_kline()
  • 某交易日沪深北全市场日线(含成交额;北交所日线只能走这里)→ §1.3 tdx_daily_package()
  • 实时价与五档 → §1.1 腾讯,或「备用源速查」里的交易所官方五档
  • 当日逐笔成交 → §1.4 tencent_ticks()(只有最近一个交易日,不含北交所)
  • 财务快照 / F10「最新提示」→ tdx_client(check='finance'),照常可用;F10 其余 8 类(公司概况、股东研究等)已不返回,替代见 SKILL.md §6.2

tdx_client() 在 K 线模式下要先测速,全部失败大约需要 1 分钟才报错。

Q: easy_tdx(PR #54)、同花顺官方 API 等新项目加入了吗? 没有。easy_tdx 是同一通达信协议的另一个客户端库,不是新的数据源,#52 已改走 HTTP 解决,所以 PR #54 不合并;本项目只接可直接取数的来源。同花顺金融 API 需要用户 Key,不接;集合竞价需先处理 Python 3.10+ 兼容性。候选状态见 v3.8.0 与 v3.9.0 整合记录。V3.9 不新增安装依赖。

Q: 能直接回测吗?能接聚宽吗?(#55) 本 skill 只负责取数,不带回测引擎。回测要把数据交给自己的框架或聚宽。

  • 代码格式:norm_ticker() / get_prefix() 认聚宽写法 600519.XSHG / 000001.XSHE;to_joinquant() 把任意写法转成聚宽代码。聚宽公开文档没有北交所后缀,北交所代码会直接报错,不做转换。
  • 复权:聚宽 get_price 默认前复权(fq='pre')。对拍时用 §1.2 tencent_kline(adjust='qfq'),或用 §1.6 复权因子自己换算。
  • 防未来函数:历史估值用 §6.5,历史行业归属用 §6.7,历史指数成分要注意 §12 只给当前快照。

Q: 研报只能从东财拿吗?(#53) 不是。§2.4 sina_research_reports() 是第二来源,可按个股或全市场翻页,东财被封时也能用。它只有标题、类型、机构、研究员和日期,没有评级和目标价;评级与目标价仍用东财研报或同花顺一致预期。

Q: 有商品期货和期权吗?大商所呢?(#49) 有,见期货与大宗商品层。上期所、上期能源、郑商所、中金所、广期所的官方期货日行情和期权日行情都有,会员持仓排名覆盖前四家(广期所未接);另有新浪实时期货、A50 期指和上金所现货。大商所官网有反爬,官方日行情没接;大商所品种(豆粕、铁矿石等)的历史日 K 用 V3.10 的 futures_kline('M0')(新浪,主力连续或具体合约),实时价用新浪实时期货。

Q: 沪市公司的互动易问答为什么是空的? 巨潮互动易只覆盖深市公司,沪市公司实测返回 0 条。沪市请用 §10.3 sse_e_interaction()(上证e互动)。部分公司近一个月确实没有回复,返回空表属正常。

Q: 查北交所股票拿不到研报 / 行情价格明显不对? 北交所老号段(43x/83x/87x)已基本作废。2026-07-31 实测:在市 342 只中 336 只已迁至 920xxx(锦波生物 832982→920982、贝特瑞 835185→920185)。老码最坑的地方是不报错——东财研报静默返回 0 篇(看着像"这票没研报"),腾讯行情返回定格在迁移日的僵尸报价(成交量 0,与真实价差 17%~100%+)。V3.6.0 起:tencent_quote() 返回 is_stale / stale_reason 标志,eastmoney_reports() 遇老码直接抛 ValueError 而不是返回空。拿新码:用 push2 北交所全量清单 fs=m:0+t:81+s:2048 按名称反查。V3.9 新入口的北交所边界:腾讯 K 线不支持北交所(直接报错),北交所日线用 §1.3 通达信盘后包;新浪研报会自动加 bj 前缀;股权质押统计不含北交所,传北交所代码直接报错。

Q: 传 SH600519 / 600519.SH 查不到数据? V3.6.0 前研报层确实如此(reportapi 只认纯 6 位数字,带前缀静默返回 0 篇)。现已新增 norm_ticker() 并在研报层接入,四种写法结果一致;解析不出 6 位数字时抛 ValueError 而非返回空,避免把"代码写错"误读成"这票没数据"。

Q: SKILL.md 这么大,agent 每次加载很费 token? 单文件自包含是本项目的有意产品决策——拷一个文件就能用、离线可携、便于分发,这个形态会长期保持,不做目录化拆分(相关讨论见 #21 / #22 / #29)。两个降耗建议:① v3.3.1 起 description 已收窄触发范围,无需取数的 A 股话题不会再误加载整个文件;② token 敏感的用户可以不把它装成自动触发 skill,改为放进项目目录、需要取数时让 agent 按需读取——文件按十五层组织、章节标题清晰,v3.4.0 起顶部还有「端点路由速查」总表(§→函数→用途→源),agent 按表定位后只读对应层,通常只花几 K token。

Q: 东财接口 403 / 连接重置,是被封了怎么办? 东财系接口(datacenter/push2/push2ex/reportapi/search/np-weblist)共用同一套风控,IP 被封会成片失联。三步:① 停止请求等 30-60 分钟(IP 级临时封通常自动解除),或换网络(手机热点)立刻恢复;② 长批任务确认全部走 em_get() 并调大 EM_MIN_INTERVAL;③ 数据不能等 → 用 SKILL.md「备用源速查 & 降级策略」的独立备胎(交易所官方/新浪/同花顺,不同风控面)。

Q: 财联社快讯不是 V3.2 标注下线了吗? 已复活(V3.4.0)。2026-05 死的是旧 nodeapi 系接口;官方新版 v1/roll/get_roll_list 一直可用,只是强制 sign 校验——sign 纯本地可算(md5(sha1(按 key 字典序拼接的 query 串))),零 key。与东财 7×24 全球资讯互为独立备份。

Q: mootdx 库听说停更了,还能用吗? 库确实烂尾(最后 commit 2024-07,BESTIP bug 无官方修复)。内置的 tdx_client() 已绕开 BESTIP bug;目前只用它取财务与 F10,K 线见上面 #52 那条。

Q: pip install mootdx 把 httpx 降到 0.25.2,和 MCP(要 httpx≥0.27.1)冲突?(#30) mootdx 上游锁了 httpx<0.26,与 MCP 等工具的 httpx≥0.27 硬冲突,skill 层改不动它的依赖声明。但可以绕过——关键点:mootdx 取行情走的是 TCP 二进制协议(通达信 7709 端口),运行时根本不经过 httpx,httpx<0.26 只是它声明的一个用不到的保守上限。两个务实解法:

  1. --no-deps 升 httpx(推荐):装完 mootdx 后 pip install --no-deps "httpx>=0.27.1",既满足 MCP,mootdx 也照常工作。pip 会留一条 incompatible 警告,但不影响运行(实测 mootdx 0.11.7 在 httpx 0.28.1 下取数正常)。
  2. 独立 venv 隔离:把跑 mootdx 的部分和跑 MCP 的主环境分到不同 venv,彻底互不干扰。

Q: mootdx 和腾讯有什么区别? 以前互补:mootdx 管价格 / 盘口 / K 线,腾讯管估值(PE / PB / 市值 / 换手率 / 涨跌停价)。#52 之后价格与 K 线都走腾讯,mootdx 只剩财务快照和 F10。两者都不封 IP。

Q: 在海外服务器跑,mootdx 超时? mootdx 走 TCP 直连通达信行情服务器,需国内 IP 才稳定;#52 之后它只用于财务与 F10,K 线已改走腾讯与通达信盘后包(HTTP)。海外环境建议走代理或切换到 yfinance。

Q: 腾讯 API 字段 43 是 PB 吗? 不是。43 = 振幅%,46 = PB。网上大量教程写错了,这里是实测校准结果。

Q: V3.0 为什么移除 akshare? akshare 本质是对东财/同花顺/新浪等公开 API 的封装,中间层增加了故障点(版本兼容 bug、pandas 3.0 ArrowInvalid 等)。V3.0 直连底层 HTTP API,零中间依赖,更稳定可控。

Q: 行业板块为什么从同花顺换成东财? 同花顺 stock_board_industry_summary_ths 接口 2026 年初加了反爬 401。东财 push2 行业板块(m:90+t:2)是完美替代,零鉴权且字段更丰富。

Q: iwencai 返回 401? 检查:(1) API Key 有效性 (2) 是否携带了 X-Claw-* Headers。SkillHub 2.0 后强制要求。

Q: 同花顺热点 reason 字段为空? 盘后数据还没更新,15:30 之后再调。个别 ST 股没有人工标注,dropna 过滤即可。

Q: 百度股市通 ResultCode 不稳定? 已知坑——有时返回 int 0,有时返回 string "0"。代码里用 str() 统一比较即可。

Q: 东财资金流/个股新闻偶尔返回空或 HTTP 000?(#18) 部分大陆住宅宽带 IP 会被东财 push2/search-api 连接级间歇风控(表现 HTTP 000 连接被拒、或新闻只返回 passportWeb 无文章)。这不是代码问题——同一代码在其他网络/时段实测正常。对策:隔几分钟重试、换网络环境(手机热点)、调大 EM_MIN_INTERVAL 降频。日级资金流也可用腾讯 K 线或通达信盘后包的量价数据务实替代。

Q: 北向资金历史只有几天? V2.1 改为本地自缓存。每次调用自动积累,越跑越丰富。首次运行只有当天数据。

Q: 不用 Claude Code,能用吗? 能。SKILL.md 本质是 Markdown + 内嵌 Python 代码。Codex、OpenClaw 或任何 AI 编程助手都能读取。你也可以直接把 Python 代码段复制出来在自己的脚本里跑。


验证

python3 -m unittest discover -s tests -v 直接从 SKILL.md 抽取发布代码,测试日期、字段、代码归属、单位、分页与错误传播,不访问网络(V3.10.3 共 187 条离线测试,另有 4 条联网测试默认跳过)。

真实网络测试需显式开启,日期须是源已发布数据的交易日:

# V3.10 的逐笔、期货日 K,以及 §1.2 K 线成交量单位核对(会下载一次通达信盘后包)
ASTOCK_LIVE_V310=1 python3 -m unittest tests.test_v310_sources -v
# V3.9 新增的 25 个入口(31 次真实调用)
ASTOCK_LIVE_V39=2026-09-18 python3 -m unittest tests.test_v39_sources -v
# V3.8 的官方两融与北交所备胎
ASTOCK_LIVE_TRADE_DATE=2026-09-04 ASTOCK_LIVE_MARGIN_DATE=2026-09-03 python3 -m unittest tests.test_official_data -v

逐个入口的实测行数与数据边界见 v3.9.0 整合记录;V3.8 的记录见 v3.8.0。

更新日志

见 CHANGELOG.md。


免责声明

本项目仅提供数据获取工具,不构成任何投资建议。股市有风险,投资需谨慎。


License

Apache License 2.0 — 自由使用,注明出处即可。

作者: Simon 林 · X @linsizhen · 邮箱:[email protected]

在 GitHub 查看完整 README

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add simonlin1212/a-stock-data
新手?先看 mcpskill.org 教程 →