综合

A股全量数据接入指南:一套API覆盖行情、复权、基本面、实时订阅与AI工作流

作者: TickDB Research · 发布: 2026/9/15 · 阅读: 9

标签: 知乎

早期做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     │
              │  统一认证        │
              └─────────────────┘
接入方式认证适用场景关键特性
RESTX-API-Key Header研究、回测、批量拉取字段结构固定,有错误码
WebSocketapi_key Query实时看板、盘中止损密钥过期返回1008
AI原生X-TickDB-Key HeaderAgent工作流、自然语言取数先取结构化事实,再分析

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-stockA股全市场快照
/market/kline历史K线
/market/kline/latest最新K线
/market/kline/ex-factors复权因子
/market/intraday分时数据
/market/depth盘口深度
/market/trades逐笔成交
/market/trades/vwapVWAP
/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/ttmTTM财务
/fundamentals/valuation/latest估值快照
/fundamentals/valuation/ts估值时序
/fundamentals/dividends分红历史
/fundamentals/corp-actions公司行动
/fundamentals/shareholders/top前十大股东
/fundamentals/calendar财经日历
/fundamentals/news个股新闻
/realtimeWebSocket实时订阅

附录B:错误码速查

HTTP业务码含义
4002001港股/美股不支持加法复权
4011005API Key过期
4033009接口未开放
4033010市场未开放
40440404上游无数据
40440405查询条件无有效业务数据
4225006复权基础数据不可用
429请求频率超限
5035005复权因子不可用
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(贵州茅台)。

通过 TickDB API 获取实时行情数据

一个 API 接入外汇、加密货币、美股、港股、A股、贵金属和全球指数的实时行情。支持 WebSocket 低延迟推送,免费开始使用。

免费领取 API Key查看 API 文档

相关文章