简体中文 | English

a-stock-data

A 股全栈数据工具包 — 10 层架构 · 47 个端点 · 15 个数据源 · 零鉴权

License Python Stars
Layers Endpoints Sources Zero Auth

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

一个自包含的 Skill 文件,把分散在 15 个数据源里的 A 股原始数据整合成 AI 编程助手直接能用的工具集。你不用再背 mootdx 的 K 线参数、东财的 PDF Referer 头、iwencai 的 X-Claw 鉴权——全部封装好了。主源被封还有「备用源速查」可降级。 > 兼容 [Claude Code](https://github.com/anthropics/claude-code) · [Codex](https://github.com/openai/codex) · [OpenClaw](https://github.com/anthropics/openclaw) > > Skill 文件本质是结构化 Markdown + 内嵌 Python,任何支持上下文注入的 AI 编程助手都能用。 --- ## 架构 ``` A 股全栈数据 · 十层架构 · V3.6.1 │ (优先级:mootdx/腾讯 不封IP 优先用;东财仅用于独有数据,已内置限流防封) ├── 行情层 mootdx + 腾讯财经 + 百度K线 K线(带MA5/10/20) + 五档盘口 + PE/PB/市值 + 指数/ETF ├── 研报层 东财 reportapi + 同花顺 + iwencai 个股研报 / 行业研报 / PDF下载 / 一致预期 / NL搜索 ├── 信号层 同花顺 + 东财 强势股 + 题材归因 + 北向资金 + 板块归属 │ + 资金流向(push2) + 龙虎榜 + 全市场龙虎榜 + 解禁 + 行业对比 + 板块资金流 ├── 资金面 东财 datacenter + push2 融资融券 + 大宗交易 + 股东户数 + 分红送转 + 资金流(分钟+120日) ├── 新闻层 东财 + 财联社 个股新闻 / 财联社电报(✅V3.4复活) / 全球资讯(互备) ├── 基础数据 mootdx + 东财 + 新浪 季报37字段 / F10九大类 / 财报三表 ├── 公告层 巨潮 cninfo + mootdx 沪深北全量公告 ├── 打板层 东财 push2ex + 同花顺 涨停池 / 炸板 / 跌停 / 昨涨停 / 涨停原因题材 / 连板梯队 │ + 重点监控池 + 日内异动池 ★V3.6 ├── 期权层 新浪 hq.sinajs ETF期权 T型报价 / 希腊字母 / 隐含波动率 IV ★V3.3 └── 舆情互动 巨潮互动易 + 同花顺 + 东财 互动易问答 / 同花顺热榜 / 东财人气榜 / 概念命中 ★V3.3 ``` > ★V3.4 十层之外另附**备用源速查 & 降级策略**:沪深交易所官方 + 新浪 + HKEX——龙虎榜/资金流/公告官方备胎函数 + 各层降级速查表,主源被封时用(见 SKILL.md 对应章节)。 --- ## 快速开始 **3 步,2 分钟。** ```bash # 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) pip install mootdx requests pandas stockstats ``` 启动 Claude Code,说一句「帮我看看 688017 的估值」,自动激活。 > **Codex / OpenClaw 用户:** 把 SKILL.md 的内容贴入你的系统 prompt 或项目上下文文件即可,内嵌的 Python 代码可直接执行。 --- ## 47 个端点能力清单 > **计数口径:** 下方清单共 48 行,按端点计 47 个——「东财 行业研报」与「东财 reportapi」为**同一端点**(仅 `qType` 参数不同)、「同花顺北向(历史)」为本地自缓存(非独立端点),两行不计入;「东财日内异动池」一行含 `list` / `count` **两个端点**,多计 1 个。48 − 1 − 1 + 1 = 47。 ### 行情层(实时,不封 IP) | 端点 | 数据 | |------|------| | mootdx 行情 | K线(多周期) + 五档盘口 + 逐笔成交 + 实时报价 46 字段 | | 腾讯财经 | PE(TTM) / PB / 总市值 / 流通市值 / 换手率 / 涨跌停价 / 指数 / ETF | | **百度K线** | 日K线 + MA5/MA10/MA20 均价直接返回(V3.0 新增) | ### 研报层 | 端点 | 数据 | |------|------| | 东财 reportapi | 个股研报列表 + 评级 + 三年 EPS 预测 | | 东财 行业研报 | 行业研报列表(qType=1,同端点)+ 行业名/行业码 + 评级(V3.2.3 新增) | | 东财 PDF 下载 | 完整研报 PDF(个股/行业通用,已处理 Referer 鉴权) | | 同花顺一致预期 | 机构一致预期 EPS(直连 basic.10jqka.com.cn) | | iwencai NL 搜索 | 自然语言跨主题研报检索 | ### 信号层 | 端点 | 数据 | |------|------| | 同花顺热点 | 当日强势股 + 题材归因 reason tags(编辑部人工标注) | | 同花顺北向(实时) | 沪股通分钟级流向(深股通近期上游披露收紧仅供参考,权威北向见 HKEX 备胎) | | 同花顺北向(历史) | 本地自缓存日级历史 | | 东财板块归属 | 个股所属全部板块(行业/概念/地域混合)+ BK码 + 当日涨跌幅 + 龙头股(V3.2.2 替换百度 PAE,一次请求拿全)| | **东财资金流向** | 主力 / 大单 / 中单 / 小单 / 超大单分钟级净流入(V3.1 替换百度 PAE) | | 龙虎榜席位 | 上榜记录 + 买卖席位 TOP5 + 机构动向 | | 全市场龙虎榜 | 每日全市场上榜股票 + 净买额排名 + 上榜原因 | | 限售解禁日历 | 历史解禁 + 未来 90 天待解禁预警 | | **行业板块排名** | 东财行业涨跌/上涨下跌家数(V3.0 替换同花顺,零鉴权) | | **板块资金流向** | 行业/概念/地域 × 今日/5日/10日 主力净流入额/净占比 + 超大/大/中/小单四档 + 领涨股(V3.5 新增,与行业排名同源)| ### 资金面 / 筹码层(V3.0 新增) | 端点 | 数据 | |------|------| | **融资融券明细** | 日级融资余额/买入/偿还 + 融券余额/卖出/偿还 | | **大宗交易** | 成交价/量 + 买卖方营业部 + 溢价率 | | **股东户数变化** | 季度股东数 + 环比变化 + 户均持股(筹码集中度) | | **分红送转历史** | 每股派息/送股/转增 + 进度状态 | | **个股资金流120日** | 主力/大单/中单/小单日级净流入 | ### 新闻层 | 端点 | 数据 | |------|------| | 个股新闻 | 东财个股新闻流(直连 search-api-web) | | 财联社电报 | 全市场实时快讯(v1 API + 本地签名零 key,✅V3.4.0 复活,与全球资讯互备) | | 全球资讯 | 东财全球财经资讯(直连 np-weblist,7×24) | ### 基础数据 + 公告 | 端点 | 数据 | |------|------| | 季报快照 | 37 字段(EPS / ROE / 净利润 / 主营收入...) | | F10 公司资料 | 9 大类文本(截断优化,-70% token) | | 东财个股信息 | 行业/总股本/流通股/市值/上市日期(直连 push2) | | 新浪财报三表 | 资产负债表/利润表/现金流量表(直连 quotes.sina.cn) | | 巨潮公告 | 沪深北交所全量公告 | ### 打板层(V3.3 新增) | 端点 | 数据 | |------|------| | 东财涨停池 | 连板数 / 几天几板 / 封板资金 / 炸板次数 / 首末封板时间 / 所属行业 | | 东财炸板池 | 曾涨停后开板 + 振幅 / 涨速 | | 东财跌停池 | 封单资金 / 连续跌停天数 / 开板次数 / 板上成交额 | | 东财昨日涨停池 | 昨涨停今表现(自算晋级率 / 赚钱效应) | | 同花顺涨停揭秘 | 涨停原因题材 / 封板成功率 / 一字·换手·T字板 / 封单额 | | 东财重点监控池 | 交易所风险警示 / 重点监控名单 + 生效时间窗(V3.6 新增)| | 东财日内异动池 | 严重异常波动明细 + 按标的聚合异动统计 + 12 条异动规则解释(V3.6 新增)| ### ETF 期权层(V3.3 新增) | 端点 | 数据 | |------|------| | 期权合约清单 | 50ETF / 300ETF / 科创50ETF / 500ETF 各月份认购认沽合约 | | T型报价 | 买卖五档 / 持仓量 / 行权价 / 最新价 / 成交量额 | | 希腊字母 + IV | Delta / Gamma / Theta / Vega / 隐含波动率 / 理论价值(交易所预算,免本地算 BSM) | ### 舆情互动层(V3.3 新增) | 端点 | 数据 | |------|------| | 互动易问答 | 投资者提问 + 公司官方回复(AI 问答独家信源:公司如何回应某传闻/利好) | | 同花顺热榜 | 人气值 / 概念标签 / 排名变化 | | 东财人气榜 | 排名 + 排名变化 + 名称价格 | | 东财个股概念命中 | 这只票当下被市场归到哪些概念在炒 + 热度值 | ### 备用源(V3.4 新增 · 主源被封时降级) | 端点 | 数据 | |------|------| | 官方龙虎榜备胎 | 上交所 + 深交所官方接口,零鉴权权威一手,含营业部席位(东财被封时用) | | 资金流备胎 | 新浪日度四档单净额(超大/大/中/小单 + 净流入) | | 公告备胎 | 深市走深交所官方、沪市走东财,均带 PDF 直链(巨潮被封时用) | > 另附**十层主源 → 独立备胎速查表**(交易所官方 / 同花顺 F10 / HKEX / 巨潮 webapi / 金十等,全部不同风控面)与「已死透别用」名单,见 SKILL.md「备用源速查 & 降级策略」章节。 ### 鉴权要求 除 iwencai 外,其余所有数据源**完全免费无 Key**。仅 iwencai 语义搜索需要 API Key([申请地址](https://www.iwencai.com/skillhub))。 --- ## 使用示例 跟你的 AI 助手说这些话就能激活: | 场景 | 说什么 | |------|--------| | 个股估值 | 「帮我估一下 688017,给我 PE / PEG / 消化时间」 | | 题材归因 | 「今天哪些股票走强,主要是什么题材」 | | 研报检索 | 「人形机器人产业链最近的研报,特别是丝杠和减速器」 | | 北向资金 | 「今天北向资金流入流出怎么样」 | | 概念板块 | 「688017 属于哪些概念板块」 | | 资金流向 | 「000858 今天主力资金流入还是流出」 | | 龙虎榜 | 「002475 最近上过龙虎榜吗,哪些营业部在买」 | | 全市场龙虎榜 | 「今天龙虎榜哪些票净买入最多」 | | 解禁预警 | 「这只股票未来 3 个月有没有限售解禁」 | | 行业轮动 | 「今天哪些行业涨幅最大」 | | **板块资金流** | 「今天主力资金在流入哪些行业/概念板块,近 5 日趋势呢」 | | 融资融券 | 「600519 最近的融资余额变化趋势」 | | 大宗交易 | 「这只票最近有没有大宗交易,溢价还是折价」 | | 股东户数 | 「000858 股东户数在增加还是减少,筹码集中吗」 | | 分红送转 | 「茅台历年分红派息多少」 | | **ETF 行情** | 「510050 上证50ETF 现在什么价、今天涨跌多少」 | | **涨停打板** | 「今天涨停多少家、最高几连板、炸板率多少」 | | **涨停归因** | 「今天涨停的票都是什么题材,哪些是几天几板」 | | **重点监控池** | 「现在哪些标的被交易所列入重点监控,监控到什么时候」 | | **日内异动** | 「今天有哪些严重异常波动的票,触发的是哪条异动规则」 | | **异动 × 监控交叉** | 「今天异动的票里,有没有已经在重点监控名单上的」 | | **ETF 期权** | 「50ETF 平值期权的隐含波动率和 Delta 是多少」 | | **互动易** | 「比亚迪最近投资者都在问什么,公司怎么回应的」 | | **市场热度** | 「今天哪些票最热门,被归到什么概念在炒」 | | 新闻公告 | 「拉一下 300476 最近的新闻和公告」 | | **市场快讯** | 「用财联社电报看看现在市场上有什么大新闻」 | | 批量对比 | 「帮我对比这 5 只半导体股的估值」 | ### 内置 4 套调研流程 | 流程 | 做什么 | 耗时 | |------|--------|------| | 单票估值 | 实时价 → 一致预期 EPS → 前向 PE / PEG / PE 消化年数 | 30 秒 | | 批量对比 | 多只股票横向估值排列 | 1 分钟 | | 主题研报 | iwencai 多关键词 NL 搜索 + 东财 PDF 交叉补充 | 2 分钟 | | 新标的调研 | 机构覆盖 → 估值 → 概念板块 → 资金流向 → 龙虎榜 → 解禁 → 两融 | 1 分钟 | --- ## 数据源优先级(V3.2 重排,按封 IP 风险) > **原则:行情/K线/实时价/市值/财务能从 mootdx 或腾讯拿到的,一律优先用它们(不封 IP)。东财只用于它独有、别处拿不到的数据,且全部走 `em_get()` 内置限流。** | 优先级 | 数据源 | 协议 | 封 IP 风险 | 用途 | |--------|--------|------|-----------|------| | **1(首选)** | mootdx(通达信) | TCP 7709 | **不封 IP** | K线/五档/逐笔/财务快照/F10 | | **2(首选)** | 腾讯财经 | HTTP | **不封 IP** | 实时价/PE/PB/市值/换手率/涨跌停/指数/ETF | | 3 | 同花顺热点/北向 | HTTP | 极低(零鉴权) | 强势股/题材归因/北向资金 | | 4 | 百度股市通 | HTTP | 极低 | K线(带 MA5/10/20)| | 5 | 新浪财经 | HTTP | 低 | 财报三表 | | 6 | 巨潮 cninfo | HTTP | 低 | 公告全文 | | 7 | 同花顺一致预期 | HTTP | 低(需 UA) | EPS 一致预期 | | 8 | iwencai | OpenAPI | 低(需 Key) | NL 语义搜索 | | **末位(仅独有数据)** | **东财** datacenter/push2/reportapi/search/np-weblist | HTTP | **中 — 有风控会封 IP** | 龙虎榜/解禁/两融/大宗/股东户数/分红/资金流/研报/个股新闻/全球资讯(已统一走 `em_get()` 限流) | > **架构原则:** 除 mootdx(TCP 二进制协议)外,全部直连 HTTP API,零第三方数据封装依赖。**东财系接口有访问频率风控,所有调用统一经 `em_get()` 串行限流防封;批量任务请调大 `EM_MIN_INTERVAL`。** > > **降级原则(V3.4 新增):** 任一主源被封/失效时,查 SKILL.md「备用源速查 & 降级策略」——每类数据都备有一条**不同域名、不同风控面**的独立备胎(沪深交易所官方 / 新浪 / 同花顺 / HKEX),东财被封时它们不受牵连。 --- ## FAQ **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` 按名称反查。 **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 无官方修复),但**通达信 TCP 协议本身照常运行**——烂尾的是封装库,不是数据源。内置的 `tdx_client()` 已绕开 BESTIP bug,继续用没问题;若未来装不上,社区活跃替代是 easy_tdx(同协议)。 **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 / 市值 / 换手率 / 涨跌停价)。两者都不封 IP。 **Q: 在海外服务器跑,mootdx 超时?** mootdx 走 TCP 直连通达信行情服务器,需国内 IP 才稳定。海外环境建议走代理或切换到 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` 降频。日级资金流也可用 mootdx 量价数据务实替代。 **Q: 北向资金历史只有几天?** V2.1 改为本地自缓存。每次调用自动积累,越跑越丰富。首次运行只有当天数据。 **Q: 不用 Claude Code,能用吗?** 能。SKILL.md 本质是 Markdown + 内嵌 Python 代码。Codex、OpenClaw 或任何 AI 编程助手都能读取。你也可以直接把 Python 代码段复制出来在自己的脚本里跑。 --- ## 更新日志 见 [CHANGELOG.md](./CHANGELOG.md)。 --- ## 免责声明 本项目仅提供数据获取工具,不构成任何投资建议。股市有风险,投资需谨慎。 --- ## 赞赏 如果这个工具帮到了你的投研工作流,欢迎请作者喝杯咖啡 ☕

Buy Me a Coffee

> 想要什么数据端点?欢迎开 [Issue](https://github.com/simonlin1212/a-stock-data/issues) 提需求,赞助者的 Issue 优先处理。 --- ## License [Apache License 2.0](./LICENSE) — 自由使用,注明出处即可。 **作者:** Simon 林 · X [@linsizhen](https://x.com/linsizhen) · 邮箱:[simonlin0423@gmail.com](mailto:simonlin0423@gmail.com)