A股全量数据接入指南:一套API覆盖实时行情、复权、基本面等

用户头像sh_***3272xs
2026-09-16 发布

早期做A股策略,用Python拉通了日K线,回测曲线挺好看,以为数据层搞定了。实盘上线后问题一个接一个:除权日跳空被策略当成下跌信号,两天后才反应过来是K线没做复权;想估滑点,发现手里只有K线,没有盘口,只能拍一个固定值;想做多因子,打开数据源一看,基本面覆盖哪些标的、不覆盖哪些,谁也说不清。

这些坑不是因为接口调不通,而是因为一开始就没看清A股数据到底有几层。

A股数据远不止“行情”两个字。至少分四层:行情、参考数据、基本面、接入方式。缺一层,你的策略就会在某个节点翻车。

这篇文章要做两件事:第一,把A股数据的四层结构摊开,让你在写第一行接入代码前就能画出数据架构图;第二,以一套统一API服务为具体参考,把每一层的实际能力、字段结构、边界条件讲清楚。


A股数据能力全景图

先看整体结构。从数据到用户,是一条四层的链路:

┌─────────────────────────────────────────────────────────────┐
│                     接入层(怎么拿)                          │
│   REST  │  WebSocket  │  AI 原生(Skill / MCP / CLI)        │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│                   基本面层(公司是什么)                      │
│  公司档案 │ 财务三表 │ 估值 │ 行业 │ 股东 │ 事件日历          │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│                 参考数据层(什么时候、对什么)                 │
│  交易日历 │ 交易时段 │ 标的信息 │ 指数计算 │ 符号目录          │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│                   行情层(市场发生了什么)                     │
│  快照 │ K线 │ 复权因子 │ 分时 │ 盘口 │ 逐笔 │ 资金流          │
└─────────────────────────────────────────────────────────────┘

行情是地基,参考数据是框架,基本面是纵深,接入层是出口。四层缺一层,你的数据管道就会在某个节点断掉。

下面的内容以一个具体的实时行情API服务商(TickDB)为参考,它的A股能力覆盖了这四层。先建立结构,再看细节。

覆盖范围速查

┌─────────────────────────────────────────────┐
│  A股数据覆盖范围(参考口径,2026-09-15)       │
├─────────────────────────────────────────────┤
│  交易所    │ 上交所 SSE + 深交所 SZSE        │
│  标的      │ 全部A股标的 + 主要指数           │
│  数据品类  │ Tick / Trade / Depth (L2)       │
│  实时性    │ 3秒快照 / 逐笔                  │
│  历史深度  │ 产品支持最长10年K线              │
│            │ (套餐分层:1 / 3 / 10年)        │
│  接入方式  │ REST + WebSocket + MCP/Skill/CLI│
│  基本面包围│ 沪市 + 深市个股,不含北交所/ETF   │
└─────────────────────────────────────────────┘

一句话概括:官网明确覆盖上交所、深交所全部A股标的,数据品类含实时快照、K线、盘口、逐笔,产品支持最长10年历史K线。

你是哪类读者

你 → 打开文章
       │
       ├── 个人量化开发者
       │     └─→ 行情层 + 复权层 + 最小可用组合
       │
       ├── 小团队数据工程师
       │     └─→ 参考数据 + 基本面层 + 数据架构建议
       │
       ├── AI工具使用者
       │     └─→ AI原生接入 + Agent工作流
       │
       └── 金融应用团队
             └─→ 接入层 + 边界 + POC验收清单

行情层:市场发生了什么

行情层是地基。地基不稳,上面全塌。

品类 能力覆盖 解决什么问题 谁用它
实时快照 单标的/批量/全市场;open缺失表示集合竞价进行中 盯盘、开盘信号、下单前校验 盘中策略、看板、Agent取数
K线与历史 从1分钟到月线多个周期;A股5种复权,港股美股3种 回测、因子、图表、长期收益 量化研究、策略开发
复权因子 每笔公司行动对应前复权/后复权两条记录 自建复权逻辑、跨数据源校验 自建回测框架、审计场景
分时 分钟级价格路径,含价格、成交量、成交额、均价 日内研究、开盘冲击 日内策略、盘中监控
盘口深度 多档买卖盘;增强版、历史版、统计版 滑点估算、流动性分析 执行算法、流动性产品
逐笔成交 逐笔明细、VWAP、聚合成交、价格分布 真实买卖力量、大单行为 订单流研究、执行系统
资金流 主力净流入、主力买卖量、散户净流入 主力资金方向、情绪量化 情绪因子、资金监控

实时快照

单标的、批量、全市场三种模式。真实返回长这样:

{
  "symbol": "688256.SH",
  "name": "寒武纪",
  "type": "stock",
  "category": "CN",
  "last_price": "1086.58",
  "open": "1055.00",
  "prev_close": "1053.98",
  "volume_24h": "9102334",
  "high_24h": "1092.50",
  "low_24h": "1048.00",
  "timestamp": 1754118000000
}

A股集合竞价期间,open字段缺失是合法状态,不是接口出错。

用open是否存在判断是否进入正式交易,比比较当前时间更稳健。这个判断决定了你的开盘信号是在正式交易后触发,还是在集合竞价期间就误触发。

批量模式可以同时监控数百个标的,是跨市场看板的基础。

K线与历史行情

从1分钟到月线的多个周期,覆盖分钟、小时、日、周、月各个粒度。A股支持5种复权方式:不复权、前复权、后复权、前复权加法、后复权加法。港股美股只支持前3种。

{
  "symbol": "688256.SH",
  "interval": "1d",
  "adjust": "forward",
  "klines": [
    {"timestamp": "2026-08-01T00:00:00Z", "open": 1040.00, "high": 1068.88, "low": 1030.01, "close": 1053.98, "volume": 8234521},
    {"timestamp": "2026-08-02T00:00:00Z", "open": 1055.00, "high": 1092.50, "low": 1048.00, "close": 1086.58, "volume": 9102334}
  ]
}

接口返回已结束周期的历史K线;当前形成中的周期用另一个接口。这个区分很重要——把形成中的bar当成已收盘bar用,会产生前视式信号。

复权因子

复权因子不是比例,是仿射变换。

每一笔公司行动对应一条前复权、一条后复权记录,公式是:

adjusted_price = raw_price × factor_a + factor_b

A股市场的factor_b恒为0,所以实际就是raw_price × factor_a。它的价值在于:你可以自己控制复权逻辑,而不是依赖数据源替你算。

前复权适合实时信号和最新价格对齐,后复权适合长期历史比较。混用会产生系统性误差——等价于在同一个价格序列里插入两套时间基准。

盘口、逐笔、资金流

盘口返回多档买卖盘:

{
  "symbol": "688256.SH",
  "bids": [
    {"price": 1086.00, "size": 200},
    {"price": 1085.50, "size": 300}
  ],
  "asks": [
    {"price": 1086.50, "size": 100},
    {"price": 1087.00, "size": 350}
  ]
}

盘口对时延极度敏感。用之前必须验证目标市场的实际可用性,不能从接口存在推断全市场覆盖。

逐笔成交返回逐笔明细,含价格、数量、时间、方向。逐笔是判断真实买卖力量的原始材料,比K线更早反映市场意图。

资金流返回主力净流入、主力买卖量、散户净流入等字段。A股资金流有三种常见口径——成交方向归因、大单资金流、主力资金流。这三个定义在不同数据源之间完全不兼容。用两个来源的资金流数据做比较,等于用两把不同刻度的尺子量同一个东西。

行情层的关键认知

如果你只接了K线和ticker,你的策略在除权日、集合竞价、停牌、换月这四个节点上,一定会有一次莫名其妙的回撤。


参考数据层:什么时候、对什么

参考数据层是框架。没有框架,行情数据就是一堆不知道能不能用的数字。

品类 能力覆盖 解决什么问题 谁用它
交易日历 按市场维护的交易日列表,含节假日 回测时间序列、缺口识别 所有回测系统
交易时段 集合竞价、连续竞价、午休、收盘的完整分段 实时策略状态机 实时系统、Agent
标的基础信息 名称、交易所、币种、股本、EPS、BPS、股息率 估值计算、身份确认 估值筛选、AI问答
指数计算 市场宽度、涨跌家数等汇总指标 大盘分析、状态识别 宏观择时、情绪判断
符号目录 全市场可查询标的清单,分市场分类型 选股候选池、UI适配 产品构建、研究准备

交易日历

回测时间序列的基础。我接入时踩过一个坑:首次用from/to参数请求返回400,按错误提示改为beg_day/end_day后才成功。接口参数名不能凭直觉猜,必须以实测或官方文档为准。

A股、港股、美股、期货的休市安排不同,多市场研究必须按市场维护独立的交易日历。“默认按工作日”是回测最常见的陷阱——如果回测框架里的交易日历和真实市场不一致,信号触发时间会系统性偏移。

交易时段

返回市场当天的开收市时段。A股集合竞价(9:15–9:25、14:57–15:00)、港股午休(12:00–13:00)、期货夜盘,这些是“数据有但不能按普通逻辑使用”的时段。不处理会导致策略在错误状态下运行。

标的基础信息

返回名称、交易所、币种、股本、EPS、BPS、股息率。估值计算的起点:当前价除以BPS就是PB,当前价除以EPS就是PE。

参考数据层的关键认知

**交易日历和交易时段不是可选知识,是必须在数据层明确处理的事实。**否则你的日内数据里会有一段“空洞”,或者策略在非交易时段收到错误信号。


基本面层:公司是什么

基本面层是纵深。行情告诉你价格怎么走,基本面告诉你这家公司值多少。

覆盖边界先说清楚:本文使用的数据服务,基本面接口覆盖沪市和深市个股,不覆盖北交所个股,不覆盖沪市和深市的ETF。

品类 能力覆盖 解决什么问题 谁用它
公司档案与高管 公司信息、业务简介、管理层名单 公司研究起点、治理分析 基本面研究、事件驱动
财务三表 利润表/资产负债表/现金流量表;最新期、年度、TTM三种口径 多因子、盈利质量、估值基础 财务因子、质量策略
业务与地区分部 按业务线或地区拆分的收入结构,含历史序列 收入结构分析、地缘风险 深度基本面、风险归因
估值指标 PE/PB/PS/股息率;当前快照+历史时序+一年高低位 估值分位、风格轮动 价值策略、择时
行业分析 同业公司、行业估值分布、行业排行、分类树 横向比较、行业轮动 行业策略、比较分析
资本行动 分红(含TTM)、回购、公司行动 事件驱动、收益策略、回测复权 红利策略、事件研究
股东与基金 最新股东结构、前十大股东、单股东明细、基金持仓 筹码分析、机构行为 筹码因子、机构跟踪
新闻与事件日历 个股新闻+全市场日历(财报、分红、拆股、IPO、宏观、休市、会议、并购) 事件驱动、风控禁入日 事件策略、风控系统

公司档案与财务三表

公司档案返回公司基本信息、业务简介、上市信息、员工数。管理层名单返回当前高管和董事列表,用于治理结构分析。

财务三表是基本面研究的核心。TTM口径只支持利润表和现金流量表,资产负债表不适用——这是财务分析的基本常识,但很多数据源不会主动告诉你。

财务数据必须带报告期和单位使用。跨公司比较时必须确认币种一致,跨期比较时必须确认报告期对齐。

估值与行业

估值指标返回PE、PB、PS、股息率的当前快照与历史时序,含一年高低位和中位数。历史估值分位分析是判断当前估值水平高低的核心方法。估值字段必须注明价格基准日,否则数字没有可比意义。

行业分析返回同业公司列表、行业估值分布、行业排行、行业分类树。横向比较估值的候选集、行业轮动策略的输入数据。

资本行动与股东

资本行动包含分红历史(含TTM)、回购记录、公司行动(拆股、合股、配股、代码变更)。分红除权日是A股价格出现向下跳空的触发日,回测时必须处理,否则系统会把除权跳空误判为价格下跌信号。

股东与基金包含最新股东结构、前十大股东、单股东明细、基金持仓。大股东持仓变动是市场情绪的重要信号。股东数据有披露延迟,不能当成实时信号使用。

基本面层的关键认知

**知道不覆盖什么,比知道覆盖什么更重要。**沪市深市个股覆盖,北交所和ETF不覆盖——这个边界决定了你的多因子选股范围。


接入层:怎么拿

接入层是出口。同一套数据,三种接入路径,对应三种使用场景。

┌──────────────────────────────────────────────────────────────┐
│                        你的应用                                │
│   研究脚本 │ 实时看板 │ 交易系统 │ AI Agent │ 金融产品          │
└───────┬──────────┬──────────┬──────────┬─────────────────────┘
        │          │          │          │
   ┌────▼───┐ ┌───▼────┐ ┌───▼────┐ ┌───▼──────────┐
   │  REST  │ │WebSocket│ │  MCP   │ │ Skill / CLI  │
   │ 批量拉取│ │ 实时推送│ │ Agent  │ │  AI 工作流   │
   │ 研究回测│ │ 盘中止损│ │ 工具调用│ │  自然语言取数 │
   └────┬───┘ └───┬────┘ └───┬────┘ └───┬──────────┘
        │          │          │          │
        └──────────┴──────────┴──────────┘
                       │
              ┌────────▼────────┐
              │   X-API-Key     │
              │  统一认证        │
              └─────────────────┘
接入方式 认证 适用场景 关键特性
REST X-API-Key Header 研究、回测、批量拉取 字段结构固定,有错误码
WebSocket api_key Query 实时看板、盘中止损 密钥过期返回1008
AI原生 X-TickDB-Key Header Agent工作流、自然语言取数 先取结构化事实,再分析

REST

标准HTTP接口,X-API-Key认证。研究、回测、批量拉取的首选。字段结构固定,有错误码,适合写进代码长期跑。

WebSocket

流式订阅行情推送。官方文档明确支持A股的ticker、depth、trade三个频道。连接URL为wss://api.tickdb.ai/v1/realtime,查询参数api_key必填。

**密钥过期时,服务端通过close code 1008关闭连接,同时发送JSON消息说明原因。**重连逻辑必须区分正常断线和密钥过期,分别处理。

AI原生接入

Skill、MCP、CLI三档,通过X-TickDB-Key认证,让Agent直接调用结构化市场数据。

三档的定位:

  • Skill:“对话即用·零配置”,适合PM/研究员/轻度用户
  • MCP:“一个托管HTTPS端点,让你的AI编码助手一次连接即获得13个行情数据工具”
  • CLI:“终端直查实时行情,JSON/表格双输出,16个原生命令。为脚本和自主Agent设计”

**AI原生接入的意义不是“让AI帮你查价格”,而是让模型先取得带标的、字段和时间戳的事实,再进行分析。**顺序反了,分析结论就没有可追溯的数据基础。

接入层的关键认知

**AI工作流中的行情数据,必须在模型推理之前到位。**让模型用记忆猜价格,是把分析过程变成幻觉生成过程。


四类读者的最小可用组合

不同角色的人,不需要接同一套数据。

个人量化开发者

最小组合:K线(含复权)+ 实时快照 + 交易日历 + 标的基础信息

起步路径:先用K线搭回测框架,确认复权口径统一;再加上实时快照做信号触发;交易日历处理非交易日空值;标的基础信息用于估值筛选。

最容易踩的坑:K线没做复权,除权日跳空被策略当成下跌信号。

小团队数据工程师

最小组合:交易日历 + 交易时段 + 复权因子 + 标的信息 + 基本面(财务/估值)

起步路径:先把参考数据层建好,再做行情管道;复权因子用于自建复权逻辑;基本面用于多因子研究。

最容易踩的坑:交易日历没按市场分开维护,多市场回测的时间轴对不齐。

AI工具使用者

最小组合:MCP/Skill/CLI + 实时快照 + 事件日历

起步路径:先用MCP或CLI接入实时快照,让Agent能取到带时间戳的事实;再加上事件日历,让Agent知道今天有什么值得关注的事件。

最容易踩的坑:让模型用训练数据里的历史价格回答“现在多少钱”,而不是先调接口取最新价格。

金融应用团队

最小组合:REST + WebSocket + 多市场统一接入 + 断线重连 + POC验收维度

起步路径:先做POC验收,确认目标市场的字段结构、实时性覆盖、边界处理;再做生产接入,实现断线重连和状态恢复。

最容易踩的坑:没有区分正常断线和密钥过期(1008),重连逻辑一刀切。


覆盖边界与注意事项

基本面覆盖边界:本文使用的数据服务,基本面接口覆盖沪市和深市个股,不覆盖北交所个股,不覆盖沪市和深市的ETF。文中实测的基本面数据样本是688256.SH和600519.SH,均为沪市个股。

资金流口径:A股资金流有三种常见口径,不同数据源之间不兼容。文中展示的字段结构是一套具体实现,跨平台比较之前必须先对齐口径。

复权因子:A股市场的factor_b恒为0,复权公式实际就是raw_price × factor_a。港股美股的支持参数与A股不同。

动态数值:文中涉及的覆盖数量、标的数量等动态信息,以官网和官方文档当前口径为准。官网明确覆盖上交所、深交所全部A股标的,产品支持最长10年K线,套餐分层为1/3/10年。

单次调用边界:任何一次调用成功只证明该时间、样本、请求参数和该API Key权限下的接口行为,不构成全市场覆盖、长期稳定性或投资表现的主张。


结尾

A股行情数据不是“拿到K线就够了”——至少有行情、参考数据、基本面、接入方式四层能力,每层解决不同的问题。

在项目初期就看清完整的数据全景图,比在回测失败后逐个排查遗漏的成本低得多。

你现在就能做的一件事:打开自己的策略代码,对照下面的检查清单,看看每一层数据你是否已经接入或明确不需要。

A股数据接入检查清单

能力层 品类 是否需要 是否已接入
行情 实时快照
行情 K线(含复权)
行情 复权因子
行情 分时
行情 盘口深度
行情 逐笔成交
行情 资金流
参考 交易日历
参考 交易时段
参考 标的信息
参考 指数计算
参考 符号目录
基本面 公司档案
基本面 财务三表
基本面 估值指标
基本面 行业分析
基本面 资本行动
基本面 股东与基金
基本面 新闻与日历
接入 REST
接入 WebSocket
接入 AI原生

把这张表填完,你的数据架构图就出来了。

关于本文参考的统一数据服务

本文全程以 TickDB 作为参考实现,把 A 股数据的四层能力落到具体的接口、字段和边界。官网截至 2026-09-15 描述的核心能力如下:

维度 能力
覆盖范围 上交所、深交所全部 A 股标的;主要指数;另有美股、港股、期货、外汇
数据品类 Tick / Trade / Depth (L2)、K 线、分时、复权因子、资金流、基本面 25 个端点
实时性 3 秒快照 / 逐笔;WebSocket 支持 ticker、depth、trade 三个 A 股频道
历史深度 产品支持最长 10 年 K 线;套餐分层 1 / 3 / 10 年
接入方式 REST + WebSocket + AI 原生(Skill / MCP / CLI),统一 X-API-Key 认证
基本面包围 沪市 + 深市个股;不覆盖北交所个股,不覆盖沪市和深市 ETF

它适合什么人?

  • 个人量化开发者:第一次接 A 股数据,想用一套 API 把四层数据都接上,不想自己拼多源。
  • 小团队数据工程师:要建数据管道,想先看清 A 股数据有几层,再决定用哪一层。
  • AI 工具使用者:想让 Agent 取到带时间戳的结构化数据,而不是靠模型记忆猜价格。
  • 金融应用团队:需要多市场统一接入、断线重连、错误码规范的工程化数据层。

它不适合什么人?

  • 已经有完整的数据管道,只想替换其中某一个接口的团队——本文的能力对照仍然有用,但不一定需要换整套服务。
  • 只需要免费方案就能覆盖全部需求的场景——本文全篇讨论的是“自建数据层的成本有多高”,如果你的自建成本极低,不需要额外付费。

如果决定试一下,怎么开始?

先按文末检查清单,列出你自己策略实际需要的数据层。然后从最小可用组合入手——多数个人量化开发者只需要 K 线(含复权)+ 实时快照 + 交易日历 + 标的基础信息这四类。跑通之后再决定是否扩展到盘口、逐笔、基本面。


附录A:常见接口示例

端点 功能
/market/ticker 单标的/批量行情快照
/market/ticker/cn-stock A股全市场快照
/market/kline 历史K线
/market/kline/latest 最新K线
/market/kline/ex-factors 复权因子
/market/intraday 分时数据
/market/depth 盘口深度
/market/trades 逐笔成交
/market/trades/vwap VWAP
/market/capital-flow 资金流
/market/trade-days 交易日历
/market/trading-sessions 交易时段
/market/stock-info 标的基础信息
/market/calc-index 指数计算指标
/market/intervals/kline 可用K线周期
/symbols/available 符号目录
/fundamentals/profile 公司档案
/fundamentals/financials/latest 最新财务
/fundamentals/financials/ttm TTM财务
/fundamentals/valuation/latest 估值快照
/fundamentals/valuation/ts 估值时序
/fundamentals/dividends 分红历史
/fundamentals/corp-actions 公司行动
/fundamentals/shareholders/top 前十大股东
/fundamentals/calendar 财经日历
/fundamentals/news 个股新闻
/realtime WebSocket实时订阅

附录B:错误码速查

HTTP 业务码 含义
400 2001 港股/美股不支持加法复权
401 1005 API Key过期
403 3009 接口未开放
403 3010 市场未开放
404 40404 上游无数据
404 40405 查询条件无有效业务数据
422 5006 复权基础数据不可用
429 请求频率超限
503 5005 复权因子不可用
WS close 1008 密钥过期

附录C:常见问题

Q:A股集合竞价期间为什么没有开盘价?
A:集合竞价期间(9:15–9:25、14:57–15:00)open字段缺失是合法状态。只有9:25统一撮合之后,open才会出现。

Q:基本面数据覆盖北交所吗?
A:本文使用的数据服务,基本面接口覆盖沪市和深市个股,不覆盖北交所个股,也不覆盖沪市和深市的ETF。

Q:资金流数据可以直接当买卖信号吗?
A:不能。资金流是市场参与者行为的量化描述,不是买卖信号。而且不同数据源的资金流口径不兼容,引用前必须先冻结口径定义。

Q:WebSocket断线后怎么处理?
A:要区分正常断线和密钥过期。密钥过期时服务端返回close code 1008并发送JSON消息说明原因,两种情况的处理方式不同。

Q:TradingView图表可以直接用这套数据吗?
A:REST API可以作为TradingView UDF后端的数据源层,但需要开发者自己实现UDF协议的包装层。这套服务在这里承担的是后端数据提供角色。


*文中实测数据来自2026-09-15的API调用,样本标的为688256.SH(寒武纪)和600519.SH(贵州茅台)。

评论