股票API选型必备:国内外主流服务商与工具大全(44种方案完整指南)
TickDB Research ·
摘要:Wind、同花顺iFinD、东方财富Choice、Tushare、AKShare、Bloomberg、LSEG、FactSet、TickDB、Massive、Alpha Vantage、Databento、Morningstar,该从哪一种开始?这份指南将44种国内外数据服务、平台与工具分成10类,按个人研究、量化回测、行情监控、应用开发、AI投研和交易连接等需求提供查找路径,逐项说明核心能力、适用人群、接入流程与使用条件,并附可运行代码、需求模板和验收清单,选型时查,接入时用。
一、先收藏这张分类总表:44种方案分别解决什么
| 类别 | 收录品牌与产品 | 主要交付 | 从这些任务开始查 |
|---|---|---|---|
| 开源取数与分析工具 | AKShare、Yahoo Finance / yfinance | Python工具与数据整理入口 | 学习取数、个人分析、已有Python环境 |
| 国内轻量研究与表格数据 | Tushare Pro、BaoStock | 以可调用的数据支持研究表和小型脚本 | 日常研究、历史价格整理、低频任务 |
| 国内量化数据与策略环境 | JQData / 聚宽、RQData / 米筐、掘金量化 / GM SDK | 金融数据包与量化开发环境 | 因子研究、策略开发、研究任务自动化 |
| 国内综合投研数据 | Wind / 万得、iFinD / 同花顺、Choice / 东方财富、恒生聚源、Datayes / 通联数据 | 终端、数据库与机构投研数据产品 | 研究团队、报表、内部数据系统 |
| 学术数据库与研究访问平台 | CSMAR / 国泰安数据库、RESSET / 锐思数据库、CRSP US Stock Databases、WRDS / 沃顿研究数据服务 | 专题数据库、长期研究数据与访问平台 | 学术研究、历史样本、可复查实证研究 |
| 国际机构与参考数据 | Bloomberg、LSEG / 含Refinitiv相关数据体系、FactSet、S&P Global Market Intelligence、Morningstar Direct Web Services / 晨星、SIX Financial Information | 全球机构内容、参考数据及专业交付 | 跨市场投研、估值、组合与机构数据底座 |
| 面向开发者的金融数据API | TickDB、Alpha Vantage、Finnhub、Twelve Data、EODHD、FMP / Financial Modeling Prep、Marketstack | 便于脚本和应用调用的金融数据接口 | 研究工具、行情页面、监控与AI应用 |
| 美股API与公司分析数据 | Massive / 原Polygon.io、Tiingo、Intrinio | 美股行情与公司数据相关产品 | 美股价格分析、公司研究和应用开发 |
| 专业数据集与行情分发 | ICE Data Services、dxFeed、Barchart OnDemand、Nasdaq Data Link / 原Quandl相关平台、QUODD / Xignite相关入口、Databento | 市场数据集、历史数据与行情流等交付 | 事件研究、行情分发与专业系统接入 |
| 券商生态与地区行情入口 | IBKR / 盈透证券、Alpaca、Futu / Moomoo API / 富途、LongPort / 长桥OpenAPI、QMT / XtQuant / 迅投、Fugle / 富果行情 | 账户相关接口、本地终端与地区行情 | 交易生态接入、本地数据与台股行情 |
表格按主要用途归类。部分产品覆盖多个任务;具体数据范围在条目里分别说明。WRDS属于研究访问平台,AKShare、yfinance属于工具,不能用同一套“API套餐”标准直接比较。
这篇指南可以分三次用:先按下面的需求表找到候选;需要细节时查第三节;准备接入时,直接跳到第五节示例和第六节验收模板。
二、按你的需求找入口:不必从头读完
| 你现在要做什么 | 先查哪里 | 最先确认的一件事 |
|---|---|---|
| 个人研究与研究表 | 第1、2类;已有终端时再看第4类 | 证券、字段、日期和复权口径是否够用 |
| 量化回测与因子研究 | 第3、5类,按市场补充机构数据库 | 历史股票池、披露与修订时点 |
| 盘中监控与价格提醒 | 第7、8、9类,按市场查看 | 能否接受两次查询之间漏掉中间事件 |
| 行情应用与股票详情页 | 第7、8、9类;按内容补充第4、6类 | 市场、数据字段与客户展示条件 |
| AI投研与自然语言查数 | 先选符合内容要求的数据源,再看MCP或封装方式 | 回答能否追到证券、期间和原始返回 |
| 程序化交易与券商连接 | 第10类中的相应券商或终端生态 | 行情权限与下单权限是否分别满足 |
| 逐笔与订单簿研究 | 第9类中的目标数据集 | 成交、报价、订单事件与交易场所范围 |
| 机构估值与数据采购 | 第4、6、9类中的对应数据产品 | 价格口径、公司行动、关联标识与部署方式 |

1. 个人研究与研究表
要得到的结果:历史价格、财务信息,定期更新。
每周研究20只股票,可以先做一张能重新生成的表:每个数值对应证券、期间、单位和查询时间。先检查目标字段与样本完整性,再增加更新频率。只有价格序列时,还不能自动完成需要财报的公司分析。
查找入口:开源取数与分析工具、国内轻量研究与表格数据、国内综合投研数据。
2. 量化回测与因子研究
要得到的结果:模拟过去某一天真正可用的信息。
需求拆为历史股票池、行情与复权、财务时点、交易日历四部分。A股研究可逐项查看JQData、RQData、Tushare及相应数据库;美股长期研究再看CRSP、Compustat与WRDS能访问的库。先要求一段历史样本,不只问“能否下载K线”。
查找入口:国内量化数据与策略环境、学术数据库与研究访问平台、国际机构与参考数据。
3. 盘中监控与价格提醒
要得到的结果:按频率更新,或捕捉盘中触发事件。
若内部看板每分钟刷新一次,可以评估定时快照;若希望每次触及阈值都触发,需检查合适的事件流或区间数据。记录行情时间与接收时间,再设计休市、断线和恢复后的处理。一次查到价格不等于监控系统已完成。
查找入口:面向开发者的金融数据API、美股API与公司分析数据、专业数据集与行情分发。
4. 行情应用与股票详情页
要得到的结果:给用户展示报价、图表和市场状态。
先列出页面真正显示的内容:证券身份、币种、价格字段、K线、市场状态、更新时间。A股、港股、美股同屏,要按各自交易时段解释“今天”和“收盘”。页面缓存、错误提示与用户权限仍需应用自己实现。
查找入口:面向开发者的金融数据API、美股API与公司分析数据、专业数据集与行情分发、国内综合投研数据、国际机构与参考数据。
5. AI投研与自然语言查数
要得到的结果:让模型取得可追溯的数据再解释。
把“比较这几家公司”变成证券、期间和指标清单,再让工具查询,模型负责概括。MCP是接入路径之一,应用也可封装REST供模型使用。回答里保留数据日期和依据;接入了工具不等于模型对投资判断负责。
查找入口:面向开发者的金融数据API、券商生态与地区行情入口、国内综合投研数据、国际机构与参考数据。
6. 程序化交易与券商连接
要得到的结果:连接行情、账户和订单工作流。
IBKR、Alpaca、Futu、LongPort、QMT等按市场和账户条件分别评估。先区分行情、账户、订单、成交和风控,再在只读及模拟环境验证。Fugle在本指南介绍行情产品,不因为归在这一组就推定其已包含交易能力。
查找入口:券商生态与地区行情入口。
7. 逐笔与订单簿研究
要得到的结果:分析事件、价差或历史成交过程。
先写清需要成交记录、报价事件,还是订单新增与撤单。再核对时间精度、历史区间和标识规则。一根分钟K线不能还原这一分钟的所有事件;有最近成交也不能自动满足多年历史逐笔回放。
查找入口:专业数据集与行情分发。
8. 机构估值与数据采购
要得到的结果:支撑报表、估值和内部数据底座。
把业务日期、估值价格、币种、公司行动和证券身份写清楚,再查Wind、聚源、Bloomberg、LSEG、FactSet、S&P Global、Morningstar、SIX等具体产品。试样阶段先关联公司与证券标识,再验证更新和修订流程。
查找入口:国内综合投研数据、国际机构与参考数据、专业数据集与行情分发。
三、44种方案详解:定位、能力、接入和注意事项
每一项都按同样的顺序介绍:先看它是什么、能带来什么,再看适合谁、怎样开始、决定前确认什么。查到符合任务的两三项,就可以转到第四节收窄候选。
第1类|开源取数与分析工具
Python工具与数据整理入口。这一组优先检查工具的具体函数、上游来源及维护方式。
1. AKShare
产品与定位:开源Python金融数据工具库,按行情、财务、股东、分红、资金等主题提供接口。
核心特点:入口丰富,便于快速寻找和整理研究素材;适合愿意管理具体函数和上游来源的用户。
适合谁用:Python学习、个人研究、数据整理与小型研究原型。
接入起步:安装并记录版本 → 在文档中寻找具体函数 → 核对来源、参数与返回字段 → 小样本取数后再批量使用。
决定前确认:它是软件库,不是一套所有函数条件相同的商业数据套餐。代码许可与上游数据使用条件分别看,也不把一次成功当作长期服务承诺。
2. Yahoo Finance/yfinance
产品与定位:yfinance是获取Yahoo Finance相关数据的开源Python工具,不是Yahoo官方SDK。
核心特点:方便学习与研究时快速取得常见价格和相关资料,适合愿意核对上游条件的用户。
适合谁用:个人研究、Python学习与小型分析原型。
接入起步:安装并记录yfinance版本 → 按工具文档选证券和日期 → 查询样本 → 核对时区、复权设置、缺失和上游条款。
决定前确认:开源软件许可不自动赋予数据再分发权;不要把网页取数工具等同于面向客户的商业数据服务,也不根据某篇旧文章推断其长期运行情况。
第2类|国内轻量研究与表格数据
以可调用的数据支持研究表和小型脚本。这一组优先检查目标字段、历史范围、权限与用量。
3. Tushare Pro
产品与定位:通过Python SDK、HTTP等方式获取金融数据,包含股票行情、基本资料和研究所需的多类数据接口。
核心特点:数据目录和权限规则相对明确,适合按表、按周期建立研究数据集。
适合谁用:个人量化、A股研究、教学项目与中小研究团队。
接入起步:注册并获取Token → 安装SDK或使用HTTP → 按目标接口核对权限 → 查询股票名单、日期和字段,再保存到本地。
决定前确认:积分是权限门槛,不是逐次扣减的余额;分钟、新闻等部分接口有独立权限。研究前分别确认复权、更新和所需历史范围。
4. BaoStock
产品与定位:提供中国股票市场研究数据的Python服务,发布包给出登录、历史K线查询与结果导出流程。
核心特点:适合从历史行情与基础研究开始,不需要先建设复杂的数据接入体系。
适合谁用:个人研究、机器学习教学、A股历史数据分析。
接入起步:安装baostock → 登录服务 → 选择股票代码、字段、日期及复权方式 → 读取结果并退出会话。
决定前确认:按具体数据类别核对更新、字段和可用区间;不要因为历史K线可以下载,就认定已经具备盘中推送或对外产品所需条件。
第3类|国内量化数据与策略环境
金融数据包与量化开发环境。这一组优先检查历史样本、数据时点与研究环境依赖。
5. JQData|聚宽
产品与定位:用于本地量化研究的金融数据包,官方Python SDK提供认证及股票、财务等数据调用。
核心特点:适合把平台研究使用的数据延伸至本地分析环境,按研究问题组织价格和财务数据。
适合谁用:A股量化、因子研究、教学与已有聚宽使用经验的团队。
接入起步:开通相应JQData账户 → 安装jqdatasdk → 按SDK要求完成账号认证 → 按SDK接口读取目标数据。
决定前确认:本地JQData与平台研究环境的权限、额度和可用数据应分别确认。证券代码格式、复权和财务公开时间也要按接口理解。
6. RQData|米筐
产品与定位:金融数据API,官方文档列有A股、港股、期货、基金等类别,并提供Python、HTTP与CLI路径。
核心特点:股票数据与因子、回测等研究工具生态相接,适合按数据字典搭建系统化研究流程。
适合谁用:量化研究员、策略团队与需要本地数据处理的机构。
接入起步:取得账号与产品权益 → 配置Python或HTTP认证 → 查询目标证券与数据项 → 先验证小区间,再建立增量更新任务。
决定前确认:数据API、回测框架和优化器不是同一产品;财务PIT、历史名单、数据周期和市场权限按所选数据集核对。
7. 掘金量化|GM SDK
产品与定位:将行情查询、事件订阅、回测与交易相关接口组织在量化开发环境中。
核心特点:适合沿着数据、策略事件、仿真及交易接入逐步建设,而非分别拼接所有组件。
适合谁用:使用Python或C++进行策略开发、回测及仿真验证的用户。
接入起步:获取对应平台账号与Token → 安装相应SDK和所需运行环境 → 设置认证 → 先查询历史或当前行情,再按事件订阅开发。
决定前确认:平台版本、合作券商与数据权益可能有差异;数据调用、策略运行和交易账户权限分别确认,不能把仿真结果直接当实盘成交能力。
第4类|国内综合投研数据
终端、数据库与机构投研数据产品。这一组优先检查内容权益、部署环境与数据字典。
8. Wind|万得
产品与定位:金融终端与Client API,覆盖市场行情、公司财务、宏观、行业及其他研究数据。
核心特点:终端、指标体系与程序调用可以围绕同一研究流程组织,适合已有Wind工作习惯的团队。
适合谁用:机构研究、量化分析、组合管理,以及需要把研究表格与内部模型连接起来的团队。
接入起步:确认终端及API权益 → 安装对应系统的客户端与语言组件 → 登录会话 → 用代码生成器或样例获取指定指标。
决定前确认:区分桌面客户端使用和服务器、内部数据库等部署需求;确认指标含义、实时行情权限及导出用途。不要直接把终端席位等同于任意后台分发权限。
9. iFinD|同花顺
产品与定位:数据接口覆盖基础数据、财务、历史高频序列、实时行情、宏观和特色数据,并提供多语言接入。
核心特点:指标查询与命令工具适合把终端研究转成可重复调用,便于研究、监控和定制报表共用数据。
适合谁用:投研人员、金融产品团队,以及需要把行情和基本面放进同一工作流的机构。
接入起步:申请对应数据权限 → 选择客户端或适用的接口方式 → 配置认证 → 先查一个标的与一个指标,再扩展日期与名单。
决定前确认:终端、接口、数据类别和平台系统支持应分别确认;特色函数返回的筛选结果不自动构成投资结论。
10. Choice|东方财富
产品与定位:Choice量化接口提供多语言环境、截面、序列、专题报表和交易日历等调用入口。
核心特点:适合将既有Choice研究习惯延伸为自动更新的表格、数据提取和分析程序。
适合谁用:研究员、资产管理团队,以及使用Choice终端、需要进一步自动化的分析人员。
接入起步:确认试用或正式权益 → 安装官方组件 → 登录并初始化 → 使用命令生成工具选择证券、指标和区间。
决定前确认:核对语言组件与操作系统、流量、函数权限和导出范围;不能把终端里的所有内容都默认看作接口可访问。
11. 恒生聚源
产品与定位:金融基础数据库、应用数据库、主题数据库与相关智能投研产品,服务于机构业务系统。
核心特点:数据可按研究、投资交易、估值核算、风险绩效等业务组织,适合长期建设机构数据底座。
适合谁用:券商、资管、银行及有内部数据库和业务系统集成需求的团队。
接入起步:提交业务与数据范围 → 确认数据库、接口或其他交付产品 → 取得数据字典与样本 → 先完成证券、指标和更新任务的映射。
决定前确认:数据库、主题产品、MCP与应用组件分别确认权限和交付边界;不要把产品矩阵中的所有能力默认包含在一个订阅内。
12. Datayes|通联数据
产品与定位:金融大数据、优矿量化研究及相关投研产品,提供基础数据、另类数据与研究工作流入口。
核心特点:适合希望把金融数据与研究工具、因子及投资流程连接起来的团队。
适合谁用:机构投研、量化研究和需要金融数据服务的产品团队。
接入起步:从数据产品或研究平台确认需求 → 取得相应账号和产品授权 → 查数据目录与样例 → 选择接口或约定的交付方式。
决定前确认:优矿研究环境与对外的数据交付产品分开核对;历史文章里的旧Token、接口地址和免费条件不直接沿用。
第5类|学术数据库与研究访问平台
专题数据库、长期研究数据与访问平台。这一组优先检查子库订阅、样本定义与表间关联。
13. CSMAR|国泰安数据库
产品与定位:面向财经研究的数据库与数据平台,官方列有网页查询、Data Loader Feed或API等交付方向。
核心特点:以研究数据表和专题组织资料,适合把价格、公司与事件数据放进可追溯的研究设计。
适合谁用:高校研究者、博士生、实证研究团队,以及有专题数据需求的机构。
接入起步:先确认个人或机构订阅 → 查所需子库、字段和样本 → 选择网页导出或已获授权的数据交付方式 → 核验表之间的关联。
决定前确认:不同学校、机构和子库权益可能不同。API、同步方式和部署条件以所开通产品文档为准,不能从校园网页访问推导出不限量API或商用权限。
14. RESSET|锐思数据库
产品与定位:面向金融研究和模型分析的数据库产品,另有财经文本等相关产品;具体数据库与接口按订阅选择。
核心特点:适合重视字段定义、样本选择和研究复现的项目,尤其是已有机构数据库条件的用户。
适合谁用:高校、金融研究与教学团队,以及需要结构化研究资料的分析人员。
接入起步:核对机构或个人权益 → 选择数据库、字段、日期和证券 → 获取样表并整理 → 需要程序接入时另行确认对应产品的接口。
决定前确认:数据库查询、文本产品API和实时行情是不同能力;不能将某个文本接口外推为通用实时股票API。使用和成果引用按所用产品要求执行。
15. CRSP US Stock Databases
产品与定位:面向美股历史研究的股票数据库,包含日度、月度价格、公司行动及仍在交易和已退出市场的证券。
核心特点:PERMNO、PERMCO等持久标识有助于跨公司更名、证券代码变化和历史区间追踪研究对象。
适合谁用:学术研究、美股长期因子研究与重视历史样本一致性的量化团队。
接入起步:取得相应研究数据授权 → 选择交付方式和版本 → 核对证券与公司标识 → 提取历史样本并按研究设计处理公司行动。
决定前确认:历史研究数据库不等于盘中行情订阅;证券与公司是不同层级,退市、收益字段、版本及使用条件仍需按数据字典核对。
16. WRDS|沃顿研究数据服务
产品与定位:整合多种研究数据库的平台,支持网页、SQL以及官方Python工具等研究路径。
核心特点:适合把不同来源的金融研究表放在可查询环境中,减少逐个下载文件的整理工作。
适合谁用:高校、实证金融研究、已有机构订阅的研究者和数据团队。
接入起步:确认机构和个人账号 → 查看可访问的库和表 → 用网页或Python建立连接 → 小样本查询后再关联数据。
决定前确认:WRDS是研究平台,不是额外一套独立股票行情源;拥有账号不代表同时取得CRSP、Compustat等所有库的权限。关联表时仍要检查标识和有效期。
第6类|国际机构与参考数据
全球机构内容、参考数据及专业交付。这一组优先检查数据产品、交付方式和证券标识。
17. Bloomberg
产品与定位:Bloomberg终端及BLPAPI相关接入体系,桌面、服务器API与B-PIPE等产品各有适用范围。
核心特点:在专业研究与市场数据工作流中连接行情、参考信息和分析工具。
适合谁用:金融机构、专业研究、交易与企业数据团队。
接入起步:先选定桌面或企业数据产品 → 确认授权与部署环境 → 安装匹配的BLPAPI组件 → 建立会话并请求或订阅数据。
决定前确认:安装SDK不表示已经购买数据;桌面API、服务器API与B-PIPE不能互相替代授权。服务器和客户展示用途需按具体产品确认。
18. LSEG|含Refinitiv相关数据体系
产品与定位:LSEG Data Platform与Data Library,提供桌面、部署流服务和云端等接入渠道。
核心特点:统一的库可以面向不同接入会话,适合将机构数据内容嵌入已有研究和应用环境。
适合谁用:专业金融研究、机构开发与使用LSEG或Refinitiv既有产品的团队。
接入起步:确认所用内容与桌面或平台会话 → 配置相应认证 → 安装LSEG Data Library数据访问库 → 先读价格或参考字段,再扩展工作流。
决定前确认:旧Eikon、Refinitiv和现行LSEG文档应按具体产品辨别;同一段代码可跨接入渠道,不表示各渠道拥有相同授权。
19. FactSet
产品与定位:提供价格与多类金融内容API,并有.NET、Java、Python、TypeScript/JavaScript的Enterprise SDK。
核心特点:价格、公司与其他数据可借助证券标识体系关联,适合融入机构分析和产品系统。
适合谁用:机构分析、投资组合、风险与金融应用开发团队。
接入起步:订阅目标内容与API → 生成对应认证凭证 → 安装相应SDK → 以证券、日期与字段发起请求。
决定前确认:SDK开源与数据订阅分开;具体内容集、证券标识、批量任务和权限需按API文档核对。价格API不能自动代表全部FactSet内容。
20. S&P Global Market Intelligence
产品与定位:Capital IQ、Compustat等研究数据及API、云或文件交付产品,覆盖财务、参考、估值等内容。
核心特点:适合将公司与证券数据、历史财务及研究数据集连接到机构模型。
适合谁用:基本面研究、投行、量化与企业数据团队。
接入起步:确定所需数据集与交付产品 → 开通认证与权益 → 使用接口目录选择公司或证券标识 → 对照字段字典取样。
决定前确认:公司级与证券级标识、原始与标准化财务、历史重述和当时可知版本应分清。不能把财务数据产品直接当成实时逐笔行情。
21. Morningstar Direct Web Services|晨星
产品与定位:把投资数据、研究和组合分析能力作为Web服务提供;股票详情等具体数据产品按授权内容使用。
核心特点:适合将公司资料、投资研究和组合功能嵌入财富管理与分析产品。
适合谁用:财富管理、投资研究、组合分析及金融产品团队。
接入起步:选择现行Web Services数据产品 → 开通认证与内容权益 → 确认投资标识及可访问范围 → 查询所需详情或分析结果。
决定前确认:不要沿用已退役的旧Equity Data API教程。Direct Web Services、终端产品与其他晨星研究数据产品的内容和标识分别核对。
22. SIX Financial Information
产品与定位:提供参考数据、价格、公司行动、基金及其他金融信息,并有API、数据流、文件等交付方式。
核心特点:适合把证券主数据与价格、公司行动连接到银行、估值和风险等内部流程。
适合谁用:银行、资管、数据运营、估值及风险系统团队。
接入起步:确定证券范围和数据内容 → 选择Web API、批量或数据流等交付方式 → 完成认证与授权 → 验证字段映射和增量更新。
决定前确认:金融信息产品与某个交易所自身的数据产品要分清;API、文件与实时流也不是同一接入。按业务确认标识、更新、公司行动和展示范围。
第7类|面向开发者的金融数据API
便于脚本和应用调用的金融数据接口。这一组优先检查具体市场、字段、时效与调用条件。
23. TickDB
产品与定位:面向A股、港股、美股的股票行情与历史数据服务,提供行情快照、复权K线、盘口与最近成交,并有REST、WebSocket及MCP等接入路径。
核心特点:同一服务入口可用于跨市场观察列表、研究表与行情页面,再把结构化数据交给AI工具处理。公司资料及官方目录所列财务、估值和公司行动接口可按研究需要继续核对。
适合谁用:需要接入三地股票数据的金融产品、应用开发、量化研究和AI工作流团队。
接入起步:确认目标证券与权限 → 先取报价、历史并保存原始结果 → 按项目选择持续订阅或AI调用 → 参照第五节程序生成CSV。
决定前确认:本文实跑了三市场报价、寒武纪日K、公司资料、最近成交及盘口;持续流只作官方支持介绍。最近成交不等于完整历史TAQ,数据输入也不包含订单撮合、投资判断或完整PIT回测数据。
24. Finnhub
产品与定位:股票行情、公司财务、新闻、估计等数据API,官方Python SDK提供多类调用。
核心特点:适合需要把价格、公司信息和事件数据组合起来的应用原型。
适合谁用:开发者、投资研究与金融科技产品团队。
接入起步:取得API Key → 安装官方SDK或使用HTTP → 先查报价或公司资料 → 再核对历史和事件接口权益。
决定前确认:官方目录中的接口不一定都包含在免费范围;市场、实时性、历史与使用用途分别确认,不把SDK中有函数当成当前账号有权限。
25. Twelve Data
产品与定位:股票与其他资产的价格、时间序列、参考、基本面和指标接口,文档亦提供流式接入方向。
核心特点:适合需要按市场、证券和频率组合数据的跨市场应用。
适合谁用:图表、价格工具、监控与多资产应用开发者。
接入起步:获取Key → 搜索正确证券与交易所 → 查询时间序列或报价 → 需要持续更新时再配置相应订阅。
决定前确认:接口计量、批量查询、WebSocket订阅与市场权限分别核对;相同代码在不同交易所可能对应不同证券。
26. EODHD
产品与定位:日终、盘中、基本面、公司行动及新闻等API,部分实时产品通过WebSocket提供。
核心特点:适合把跨市场历史数据与公司资料、事件数据结合的研究和应用。
适合谁用:历史研究、筛选工具、基本面分析及跨市场产品团队。
接入起步:注册取得Token → 选择数据产品与证券代码 → 查询历史或基本面样本 → 再扩展实时或批量任务。
决定前确认:个人与商业方案、全球日终与美股实时等产品分开;不同产品的数据内容、时效和历史范围不能互相套用。
27. FMP|Financial Modeling Prep
产品与定位:公司资料、财务报表、估计、市场价格与历史等API,并有MCP和表格工具入口。
核心特点:便于围绕公司分析组织价格与财务数据,适合研究看板和基本面应用。
适合谁用:基本面研究、估值工具、财务看板与金融应用开发者。
接入起步:获取Key → 选择当前文档对应的接口版本 → 搜索公司与证券 → 查询价格或报表,并保存日期和原始结果。
决定前确认:旧版与现行接口路径、个人与商业用途、标准化财务及修订值分别确认;价格实时性也按具体数据产品核对。
28. Marketstack
产品与定位:以REST和JSON提供日终、盘中、历史及相关证券数据。
核心特点:适合主要需要请求式价格、历史和证券查找的轻量应用。
适合谁用:简单图表、报告、网站组件和学习原型开发者。
接入起步:注册取得Key → 按现行文档版本选端点 → 查询证券和日期 → 检查分页、免费范围与所需时效。
决定前确认:全球日终与美股盘中数据范围不同;官网列有免费请求方案,但实时、历史和商业用途仍按目标产品与账户确认。
29. Alpha Vantage
产品与定位:HTTP数据接口,包含股票价格、技术指标、基本面和其他金融数据,并有官方MCP入口。
核心特点:适合按一个函数、一只证券、一段区间逐步建设研究或原型。
适合谁用:学习、低频研究、金融分析原型及AI数据查询项目。
接入起步:获取Key → 从文档选择函数 → 填写证券与区间参数 → 检查响应及额度后保存结果。
决定前确认:免费请求额度和高级数据产品分开确认;部分实时、延迟、分钟或复权数据有相应要求。是否够用要按具体请求量计算。
第8类|美股API与公司分析数据
美股行情与公司数据相关产品。这一组优先检查具体行情来源、内容产品与历史范围。
30. Massive|原Polygon.io
产品与定位:围绕美股的报价、成交、历史、参考等数据,提供REST、WebSocket与文件交付。
核心特点:美股价格与事件数据的开发路径较集中,适合需要从图表扩展到更细事件的项目。
适合谁用:美股研究、交易工具、数据应用与有历史批量需求的开发者。
接入起步:申请Key → 选股票产品及权限 → 先查询目录与K线 → 再按需要接入报价、成交或文件。
决定前确认:免费日终、实时、历史逐笔及客户用途分别看;不用免费Key的结果推断所有产品深度。旧Polygon名称与现Massive算一个候选。
31. Tiingo
产品与定位:REST与WebSocket数据服务,文档区分日终、新闻、基本面、IEX、隔夜及其他数据路径。
核心特点:可围绕明确的数据源和时段建立研究与盘中观察任务。
适合谁用:美股研究、组合工具、新闻与价格结合的产品开发者。
接入起步:注册取得Token → 选择日终或具体盘中数据路径 → 请求小样本 → 核对字段、时段和权限。
决定前确认:IEX、隔夜、综合数据等产品的来源与条件分别看;免费账户、较高用量及商业使用按产品确认。
32. Intrinio
产品与定位:以数据产品组织价格、财务、参考与相关API,提供SDK及实时股票价格的流式入口。
核心特点:适合按数据需求订阅内容,再逐步嵌入产品。
适合谁用:金融科技、研究、基本面工具与面向客户的数据应用团队。
接入起步:选择数据产品并获得API Key → 配置SDK或HTTP → 查询公司、证券和目标数据 → 检查分页、限额与使用范围。
决定前确认:API入口和具体内容订阅分开看;某数据产品可用不表示其他实时或财务产品也已开通。
第9类|专业数据集与行情分发
市场数据集、历史数据与行情流等交付。这一组优先检查所选市场、事件类型、覆盖及交付范围。
33. ICE Data Services
产品与定位:提供市场与参考数据、综合数据流、历史数据及多种数据接入方式。
核心特点:适合从单次研究取数扩展到机构内部连续数据交付、历史归档和业务系统连接。
适合谁用:交易、风险、估值与有持续数据分发需求的机构。
接入起步:确定数据产品、市场与交付方式 → 确认内容和使用范围 → 完成接入配置 → 验证实时流或历史任务。
决定前确认:综合数据流、历史归档、估值价格和不同API是不同产品;所需交易所、事件类型和部署方式应写入需求。
34. dxFeed
产品与定位:提供来自交易所及其他来源的实时与历史市场数据,支持多种资产及API接入。
核心特点:以持续事件流和数据分发为主要评估方向,适合报价、盘口与专业市场数据应用。
适合谁用:券商、交易平台、金融网站、专业交易与技术团队。
接入起步:选择交易所和事件类型 → 确认订阅及分发条件 → 取得接入凭证与接口 → 验证订阅、历史及恢复流程。
决定前确认:报价、成交、订单事件和深度并非同一种数据;核对具体数据源、交易场所、格式与使用用途。
35. Barchart OnDemand
产品与定位:以Web服务提供报价、历史、参考及其他数据;getQuote与getHistory对应不同任务。
核心特点:适合明确知道要哪些证券和时间区间、希望以请求式接口取回结果的应用。
适合谁用:金融网站、研究、报价展示与同时关注多类资产的开发团队。
接入起步:确认OnDemand产品与Key → 选择报价或历史接口 → 设置证券、周期和区间 → 验证时段及结果数量。
决定前确认:网站会员与数据API订阅分别确认;日线、分钟、逐笔、期货连续合约以及成交量聚合规则不能混用。
36. Nasdaq Data Link|原Quandl相关平台
产品与定位:数据集平台及API交付体系,包括表格数据、Python工具,以及相应实时、延迟和历史数据产品。
核心特点:可按具体数据集采购和查询,适合研究数据集与行情交付需求分开管理。
适合谁用:研究者、量化、金融科技与有指定数据产品需求的机构。
接入起步:创建账户取得Key → 选择并订阅数据集或行情产品 → 使用相应Tables、REST、Streaming或SDK入口 → 核对返回范围。
决定前确认:平台账号不自动开放所有数据集;旧Quandl教程和已停止更新的数据集不能直接当现行服务。Tables查询与实时行情使用的接口也要区分。
37. QUODD|Xignite相关入口
产品与定位:云端金融数据API、数据流与市场数据产品,Xignite网站当前转向QUODD入口。
核心特点:按需要组合价格、参考、公司行动等内容,适合把数据作为产品组件采购。
适合谁用:财富管理、金融媒体、金融科技与客户应用团队。
接入起步:从数据目录选择内容 → 明确展示或内部用途 → 确认接入与认证方式 → 用所选产品文档完成样本接入。
决定前确认:核对现行产品名称、旧Xignite服务的对应关系及交付条件;不能把旧博客里的免费或接口条件沿用到当前产品。
38. Databento
产品与定位:实时与历史市场数据,提供多种事件、K线、批量任务及证券标识相关文档。
核心特点:适合明确需要交易所事件、盘口和历史回放的研究,而不只取一个最新价。
适合谁用:微观结构、专业量化、成交研究和需要原始市场事件的开发团队。
接入起步:开通Key与数据集 → 明确数据源及事件格式 → 请求一段历史或订阅实时流 → 核对标识、时序和转换结果。
决定前确认:数据集、交易场所、成交与订单事件、回放和实时权限分别确认;高级事件数据不自动等于完整可交易回测结果。
第10类|券商生态与地区行情入口
账户相关接口、本地终端与地区行情。这一组优先检查行情和交易的具体产品及账户依赖。
39. IBKR|盈透证券
产品与定位:TWS API、Web API等连接行情、账户及交易工作流的接口体系。
核心特点:适合把数据获取与已使用的交易账户工作流连接起来。
适合谁用:程序化交易、自主管理账户及相应机构集成团队。
接入起步:确认账户与API适用条件 → 选择TWS/Gateway或Web路径 → 配置认证与行情订阅 → 先验证只读报价和模拟环境。
决定前确认:行情、交易、模拟与正式账户分别处理;市场数据费用、请求节奏、专业用户与再分发条件要提前核对。本文不执行下单。
40. Alpaca
产品与定位:市场数据API与Trading/Broker API体系;行情通过HTTP、WebSocket与SDK获取。
核心特点:可围绕美股相关数据与交易应用构建工作流,个人交易与券商伙伴采用不同接入模式。
适合谁用:美股程序化开发者、个人工具,以及符合相应模式的金融科技团队。
接入起步:确定Trading或Broker接入模式 → 获取对应凭证 → 选择行情数据源 → 先跑只读查询,再验证模拟工作流。
决定前确认:IEX等数据源与综合市场数据、行情与交易权限、账户适用地区和客户产品要求分别确认。
41. Futu/Moomoo API|富途
产品与定位:由OpenD网关和语言SDK组成,行情与交易功能分开提供。
核心特点:适合已在相应券商生态内、希望将港美股等行情和账户流程接入程序的用户。
适合谁用:个人程序化开发、券商账户用户及相应交易工具开发者。
接入起步:安装并启动OpenD → 登录平台账号 → 安装SDK → 核对行情权限后连接网关、查询或订阅。
决定前确认:App里看到的行情与API权限可能不同;平台账号、综合账户、订阅额度、历史配额和交易权限分别看。
42. LongPort|长桥OpenAPI
产品与定位:提供行情、订阅、历史K线、日历和交易等API与SDK,亦有AI工具入口。
核心特点:适合围绕港美股等相应市场搭建行情与账户应用。
适合谁用:个人开发者、已有平台用户与相应金融应用团队。
接入起步:创建适用应用及凭证 → 配置SDK认证 → 先验证报价或历史 → 再按需要订阅行情,交易另按账户流程处理。
决定前确认:行情与交易访问条件、证券代码、市场覆盖及客户用途分别确认;不要把某账户订阅直接分发到其他用户。
43. QMT/XtQuant|迅投
产品与定位:XtData行情模块与相关交易连接工具,常见部署依赖相应终端或数据服务环境。
核心特点:适合围绕已有券商或投研部署读取历史、实时行情并连接策略程序。
适合谁用:A股程序化开发、使用QMT或MiniQMT环境的个人与团队。
接入起步:取得适用终端或数据服务权限 → 安装对应XtQuant组件 → 建立数据连接 → 先订阅或补齐历史,再读取本地数据。
决定前确认:券商版本、投研服务、终端依赖和数据权限并不完全相同;缓存读取与真正完成历史下载是两个步骤。交易模块需要另行确认。
44. Fugle|富果行情
产品与定位:面向台股的行情REST、WebSocket与SDK,包含成交、分钟K、盘口及相关数据入口。
核心特点:台股项目可以直接按当地市场的数据类型、时段和交易方式评估。
适合谁用:台股看盘工具、个人开发者与相关行情应用。
接入起步:注册取得行情Key → 选择REST或WebSocket → 验证身份 → 订阅具体频道与证券,确认实际收到行情。
决定前确认:连接成功或订阅成功不必然已有数据;盘前、收盘、零股、频道数量与使用方案分别核对。行情服务与交易接口条件分开。
四、从候选到决定:只走三步
第一步:把“我需要股票数据”改成一个具体交付
“我做量化”“我要实时数据”还不够具体。可以写成:每个交易日收盘后,生成指定股票池的已完成日K与财务因子表;或在盘中为内部看板更新500只股票的某类报价。
这一句决定后续取什么数据、多久更新一次、由谁使用。个人研究表、内部看板和对外行情App,即使看起来都显示价格,也可能需要不同的产品与使用安排。
第二步:只保留满足任务条件的两三项
| 任务 | 必须提供的输入 | 用什么样本确认 |
|---|---|---|
| 定期研究表 | 证券、历史价格、所需财务字段 | 同一证券的一段历史与一份报表 |
| 历史因子回测 | 历史股票池、价格口径、当时已披露的信息 | 含退市或更名样本的历史切片,以及披露和修订记录 |
| 盘中提醒 | 对应市场与时段的新数据;必要时包括中间事件 | 一段观察记录,含行情与接收时间、恢复过程 |
| 客户行情页面 | 报价、图表、证券身份、市场状态 | 按页面字段取样,并确认客户展示用途 |
| 程序化交易 | 行情输入、账户与订单链路 | 只读行情加独立的模拟订单测试 |
需求不涉及逐笔,就不必把“逐笔深度”作为第一轮筛选条件;需求涉及历史财务时点,也不能用“支持财务数据”代替确认。关键概念拿不准时,跳到第七节查对应解释。
第三步:先拿同一份小样本,再比较费用和维护
把同一证券名单、日期、字段、更新频率和用途交给候选,记录实际返回、缺失、处理方式与报价。接口文档写了什么、账号能取到什么、最终业务能怎样使用,要在这一步对应起来。
通过必要条件后,再比较费用、开发投入和维护。按同一个任务计算,才不会把“一个接口免费”误读成“整个项目免费”。第六节有可直接复制的需求单和验收表。
五、接入示例:用TickDB取三市场报价,导出研究CSV
TickDB是一套股票数据服务,面向研究、行情应用与AI工作流,通过同一服务入口查询A股、港股和美股行情、历史K线,并按接口与权限补充盘口、最近成交和公司相关信息。
如果你的项目同时需要三地股票,价值首先体现在接入组织上:观察列表保留各市场代码,用相同的查询结构请求数据,再按市场解释时间、币种和价格口径。你可以先完成一份跨市场研究表或股票详情页的数据层,随后扩展到持续观察和AI查询。
可以优先评估的使用者包括:正在搭建股票行情功能的金融产品负责人和开发团队,需要整理跨市场数据的量化研究者,以及要让AI助手真实查数的应用开发者。普通投资者也可以使用这些工具的结果;是否需要自己写代码,取决于所选接入方式和上层应用。
先看这个例子适合哪类项目
| 你要交付的东西 | TickDB提供的数据或接入能力 | 得到什么实际输入 |
|---|---|---|
| 股票详情页、跨市场自选列表 | 三地行情快照、历史K线、盘口与最近成交 | 当前价格、历史图表和买卖信息的数据输入 |
| 研究表、策略分析与回测前的数据准备 | 历史价格,不复权/前复权/后复权等查询口径 | 可保存为表格的价格序列;回测逻辑由研究程序完成 |
| 盘中行情看板与观察工具 | WebSocket持续订阅;REST按需查询 | 为页面或观察任务提供更新数据的两种路径 |
| AI查行情、整理研究材料 | MCP等AI入口,以及可保留的结构化返回 | 让模型根据带证券代码、字段和时间的数据组织回答 |
| 从股票代码继续查公司背景 | 公司资料;官方文档目录另列财务、估值、分红与公司行动接口 | 为公司分析补充上下文,按具体字段、口径和权限使用 |
按工作方式选择接入路径
研究表和固定脚本用REST查询,持续行情用WebSocket订阅,兼容AI客户端可用MCP调用。三条路径服务不同工作方式。结构化返回便于程序继续处理,也便于把模型回答与取数记录对照;它不会自动替你完成研究判断、应用前端或交易下单。
本文已用Python取得三地报价和寒武纪日K,生成原始JSON与CSV;MCP另查了公司资料、最近成交和盘口。下方给出完整程序和样本说明。WebSocket在这里作为官方文档列明的持续接入方式介绍,本篇没有执行长连接测量。
可以从TickDB股票数据与接入入口查看目标市场,创建Key后,先用本文的三只示例证券验证自己的权限与所需字段。
这一节完成一个明确任务:读取寒武纪、腾讯和苹果的报价,读取寒武纪最近5根前复权日K,把原始返回和整理后的表格一起保存。它适合先确认数据能否进入自己的研究或应用流程。
第一步:创建Key,确认当前账号可访问的范围
通过上面的TickDB入口创建或取得API Key,再核对市场、证券、历史范围和当前方案。试用范围与正式产品权益分别确认。
本文使用的证券代码是688256.SH、700.HK、AAPL.US。不要把其他库的代码直接替换进来而不查证券身份。示例使用的账户在本次调用时可以访问这三个代码,读者的账号条件可能不同。
第二步:先让MCP客户端取得真实返回
在支持相应HTTP MCP连接的客户端里配置服务地址https://mcp.tickdb.ai/,认证请求头使用X-TickDB-Key,值填写自己的Key。不同客户端的配置文件结构和界面不同,应按客户端要求填写;这个请求头与下文REST使用的X-API-Key不同。
可以给客户端一个明确任务:
查询688256.SH、700.HK、AAPL.US的股票报价,列出代码、最新价和原始行情时间戳。再查询688256.SH最近5根前复权日K。保留工具返回,不补写缺失数字,不根据价格作投资建议。
本次实际调用的两组工具参数如下:
{"tool":"get_ticker","arguments":{"symbols":"688256.SH,700.HK,AAPL.US","type":"stock"}}
{"tool":"get_kline","arguments":{"symbol":"688256.SH","type":"stock","interval":"1d","limit":5,"adjust":"forward"}}
2026年11月5日,本次MCP报价返回了以下样本:
| 证券 | 最新价原值 | 原始行情时间戳(毫秒) | 转换为北京时间 |
|---|---|---|---|
| 寒武纪 688256.SH | 850 | 1793848111000 | 11月5日11:08:31 |
| 腾讯 700.HK | 427.4 | 1793848112000 | 11月5日11:08:32 |
| 苹果 AAPL.US | 349.51 | 1793826001000 | 11月5日05:00:01 |
同次研究还调用了公司资料工具核对寒武纪的证券身份。K线工具返回5根记录,收盘价字段依次是880、861、767.93、847.66、850;最后一根是查询时仍可能形成中的当日日线。
MCP适合由AI客户端按任务查询和整理数据。一次工具调用完成,不表示已经建立了持续行情订阅。
第三步:保存这份完整Python程序
以下程序仅使用Python标准库,不需要安装第三方包。本次在Python 3.12.12环境实际运行成功。将代码完整保存为tickdb_start.py。
它执行两次GET请求:一次三市场报价,一次日K。程序会检查响应、证券是否缺失,保存原始JSON,导出CSV,并记录本机收到响应的时间。目标输出目录已存在时会退出,避免覆盖先前记录。
import argparse
import csv
import json
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen
BASE = "https://api.tickdb.ai"
def iso_ms(value):
if value is None:
return ""
return datetime.fromtimestamp(int(value) / 1000, timezone.utc).isoformat()
def fetch(path, params, key):
request = Request(
BASE + path + "?" + urlencode(params),
headers={"X-API-Key": key, "Accept": "application/json",
"User-Agent": "TickDB-Article-Verification/1.0"},
)
try:
with urlopen(request, timeout=20) as response:
result = json.load(response)
except HTTPError as exc:
raise RuntimeError(f"HTTP {exc.code}: check key, permission and limits") from None
except (URLError, TimeoutError, json.JSONDecodeError) as exc:
raise RuntimeError(f"Network/JSON error: {type(exc).__name__}") from None
if result.get("code") != 0:
message = str(result.get("message", "API error")).replace(key, "[redacted]")
raise RuntimeError(f"API {result.get('code')}: {message}")
return result, datetime.now(timezone.utc).isoformat()
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--symbols", default="688256.SH,700.HK,AAPL.US")
parser.add_argument("--history-symbol", default="688256.SH")
parser.add_argument("--out", default="tickdb_output")
args = parser.parse_args()
key = os.environ.get("TICKDB_API_KEY", "").strip()
if not key:
raise RuntimeError("Set TICKDB_API_KEY before running")
out = Path(args.out)
if out.exists():
raise RuntimeError("Output folder already exists; choose a new --out")
ticker, received = fetch("/v1/market/ticker", {
"symbols": args.symbols, "type": "stock",
}, key)
history, history_received = fetch("/v1/market/kline", {
"symbol": args.history_symbol, "type": "stock",
"interval": "1d", "limit": 5, "adjust": "forward",
}, key)
quotes = ticker.get("data")
bars = history.get("data", {}).get("klines")
if not isinstance(quotes, list) or not quotes:
raise RuntimeError("No quote records returned")
if not isinstance(bars, list) or not bars:
raise RuntimeError("No K-line records returned")
returned = {q.get("symbol") for q in quotes}
if not set(args.symbols.split(",")).issubset(returned):
raise RuntimeError("Requested symbols are missing from the response")
if history["data"].get("symbol") != args.history_symbol:
raise RuntimeError("History symbol does not match the request")
out.mkdir(parents=True)
for name, body in [("ticker.raw.json", ticker), ("kline.raw.json", history)]:
(out / name).write_text(json.dumps(body, ensure_ascii=False, indent=2), encoding="utf-8")
fields = ["symbol", "last_price", "timestamp_ms", "data_time_utc", "received_time_utc"]
with (out / "quotes.csv").open("w", newline="", encoding="utf-8-sig") as handle:
writer = csv.DictWriter(handle, fieldnames=fields)
writer.writeheader()
for q in quotes:
row = dict(zip(fields, [q["symbol"], q.get("last_price"), q.get("timestamp"),
iso_ms(q.get("timestamp")), received]))
writer.writerow(row)
print(json.dumps(row, ensure_ascii=False))
fields = ["time", "open", "high", "low", "close", "volume", "quote_volume"]
with (out / "kline.csv").open("w", newline="", encoding="utf-8-sig") as handle:
writer = csv.DictWriter(handle, fieldnames=fields, extrasaction="ignore")
writer.writeheader()
writer.writerows(bars)
metadata = {"received_time_utc": received, "history_received_time_utc": history_received,
"history_symbol": args.history_symbol, "interval": "1d", "adjust": "forward",
"quote_rows": len(quotes), "kline_rows": len(bars),
"last_bar_may_be_forming": True}
(out / "run.json").write_text(json.dumps(metadata, indent=2), encoding="utf-8")
print(f"Saved {len(quotes)} quotes and {len(bars)} K-lines to {out}")
if __name__ == "__main__":
try:
main()
except (RuntimeError, ValueError, TypeError, OSError) as exc:
print(f"Failed: {exc}", file=sys.stderr)
sys.exit(1)
第四步:输入Key并执行
在脚本所在目录打开终端。下面这条命令会隐藏输入Key;凭证只放入本次Python进程的环境变量,不写进源码:
python3 -c 'import getpass,os,runpy;os.environ["TICKDB_API_KEY"]=getpass.getpass("TickDB API Key: ");runpy.run_path("tickdb_start.py",run_name="__main__")'
如果系统使用python命令,将开头的python3换成python。在不支持隐藏输入的终端中,先使用支持该功能的本机终端。已经通过自己的配置方式设置TICKDB_API_KEY的用户,可以直接执行:
python3 tickdb_start.py --out tickdb_run_001
需要再次运行时,为--out指定新的目录。替换股票代码前,先确认相应市场和标的权限。程序只读行情,不调用交易接口。
第五步:看清真实输出,尤其是两个时间
本次Python REST运行的报价响应接收时间为北京时间2026年11月5日11:13:58.680348。以下保留原始价格和时间戳,只把时间另列为便于阅读的北京时间:
| 证券 | 最新价原值 | 原始行情时间戳(毫秒) | 行情时间(北京时间) |
|---|---|---|---|
| 688256.SH | 848.01 | 1793848435000 | 2026-11-05 11:13:55 |
| 700.HK | 427.4 | 1793848437000 | 2026-11-05 11:13:57 |
| AAPL.US | 349.51 | 1793826001000 | 2026-11-05 05:00:01 |
行情时间来自服务返回的记录;接收时间是本机读完响应后记录的时间。它们帮助你判断数据属于哪个时点,时间差本身不能直接当作网络延迟测量。
苹果这条记录的行情时间比本机收到响应的时间早得多。跨市场观察时,应结合对应市场时段和具体价格字段解释,不能直接把这三条记录当作同一时刻的成交,也不把较早时间一概判为接口故障。各证券的价格还属于各自市场的报价单位,不能直接跨币种比较。
MCP与REST是在不同时间查询的,所以寒武纪分别出现850和848.01。这两种入口来自同一TickDB服务,不构成两个独立数据源的交叉验证。

这次REST日K实际返回如下。日期由原始毫秒时间戳转换为北京时间,OHLC数值保留原值,参数为interval=1d、adjust=forward:
| 日期 | 开盘 | 最高 | 最低 | 收盘字段 |
|---|---|---|---|---|
| 2026-10-30 | 882.7 | 920 | 861.89 | 880 |
| 2026-11-02 | 907.61 | 907.61 | 836 | 861 |
| 2026-11-03 | 850 | 850 | 750.01 | 767.93 |
| 2026-11-04 | 767.93 | 850 | 760 | 847.66 |
| 2026-11-05 | 815.52 | 881.88 | 812.52 | 848.01 |
11月5日这一根是在盘中取得,不能作为已经完成的日线直接进入日终回测。程序保留该原始记录,并在run.json标记last_bar_may_be_forming=true;研究时还需依据交易日历与市场状态选择已完成数据。
运行成功后有5个文件:
| 文件 | 用途 |
|---|---|
ticker.raw.json | 留存报价接口原始字段和值 |
kline.raw.json | 留存日K接口原始字段和值 |
quotes.csv | 对照证券、原始价格、行情时间与接收时间 |
kline.csv | 将5根日K交给表格或研究程序进一步处理 |
run.json | 记录查询参数、记录数、接收时间和当日K线提示 |
CSV使用UTF-8 BOM编码,便于常见表格软件打开。保留文件不等于已经完成研究清洗;单位、异常、缺失、历史版本和当前K线仍由任务逻辑处理。
补充:最近成交与盘口可以分别核对
为确认股票详情页还能取得哪些输入,本文在2026年11月5日另调了寒武纪的两个MCP工具:
| 调用 | 本次实际返回 | 用于什么 |
|---|---|---|
get_recent_trades,代码688256.SH、type=stock、limit=3 | 3条记录,含成交ID、价格、数量、方向和毫秒时间戳 | 查看最近发生的成交事件 |
get_order_book,代码688256.SH、type=stock | 买盘5档、卖盘5档及时间戳 | 查看当次买卖报价层次 |
这组补查与前面的报价、CSV是不同调用批次,原始返回分别保留。它说明本次可以查到最近成交和盘口;需要多年历史逐笔、逐单订单簿或完整回放时,仍要另行核对对应产品与交付范围。
第六步:从“跑通一次”走向自己的任务
| 下一步想做什么 | 还要补的工作 |
|---|---|
| 更新研究CSV | 明确历史范围、分页或分段方式、复权口径、增量更新及已完成K线 |
| 做自选股报价卡片 | 补齐证券名称、币种、市场状态和数据陈旧提示 |
| 做盘中价格提醒 | 选择定时查询或WebSocket,处理订阅、断线、重复、恢复及报警状态 |
| 接AI研究助手 | 固定工具参数、保存返回和调用时间,区分数据事实与模型解释 |
| 对外上线 | 确认客户展示用途、容量、错误处理和运营支持安排 |
本篇实跑范围是MCP查询和REST读取,包括上述最近成交与盘口补查。WebSocket持续接收、长期运行、各类历史边界与压力测试并未在本篇完成,不能据此写成性能测评。
若遇到错误,先按照出现的位置处理:
| 现象 | 先检查什么 |
|---|---|
Set TICKDB_API_KEY before running | 当前进程是否取得环境变量,是否只在别的终端设置过 |
| HTTP或业务错误 | Key、市场与标的权限、请求频率和服务返回;不要在公开日志中粘贴凭证 |
| 未返回请求的证券 | 代码格式、支持范围、账户权益及原始响应 |
| 历史数据为空或区间不够 | 对应周期、历史权限和请求条件 |
| 输出目录已存在 | 指定新的--out,保留旧样本用于对照 |
六、准备决定或上线:直接复制需求单与验收清单
先把需求写成一张表,再让候选提供样本。下方这份需求单可以直接复制到自己的项目文档:
项目要交付的功能:
数据给谁用:个人 / 内部团队 / 外部客户
目标市场与证券名单:
所需字段与数据类型:报价 / K线 / 财务 / 事件 / 其他
更新或触发规则:每隔一段时间看最新值 / 需要观察中间事件
历史区间、周期和复权方式:
财务是否需要当时公开版本与修订记录:
观察股票数、批量数、运行时段与预计用量:
保存、展示或其他使用方式:
试验通过的可观察结果:
免费与付费之后,还要算完整使用成本
把同一观察周期内的费用拆成五类:开通/席位,数据内容与市场,用量与持续连接,目标用途安排,开发与后续维护。一次性开发成本和按月数据费用分别记录,需要汇总时先统一周期。
例如,同为每分钟更新100只股票,有的产品一次可批量返回,有的每只分别请求;按请求计量和按数据点计量也可能得到不同账单。请求数量减少不表示费用或速度必按同一比例变化。机构项目采购金额更不能当作个人零售价。
不必为了给表格填满数字而推测询价产品的费用。先完成必要条件筛选,再请两三家按同一个证券范围、频率和用途给出适用方案,比较结果才有意义。
用下面的清单验收同一份任务
选出两三家候选后,用同一份任务说明请求样本。把判断落在记录上,避免“看起来都支持”的反复讨论。
| 验收项 | 写到什么程度才便于执行 |
|---|---|
| 目标市场与证券 | 明确市场、证券类型、上市与退市样本,不只写“支持股票” |
| 数据与频率 | 最新成交、买卖报价、分钟K、日K、财报或逐笔分别列出 |
| 历史与复权 | 起止日期、周期、复权方式、公司行动与数据版本 |
| 财报时点 | 报告期、披露时间、修订时间和可用日期如何表示 |
| 时间与日历 | 时间戳单位、时区、交易日、常规与延长时段 |
| 调用规模 | 股票数量、每次批量数、请求频率、连接与订阅数量 |
| 输出质量 | 缺失、重复、证券映射、单位、异常与修订如何处理 |
| 失败与恢复 | 网络失败、权限不足、限流、断线后如何识别与恢复 |
| 使用范围 | 个人、内部团队、客户展示、分发和AI用途逐一说明 |
| 成本与支持 | 数据产品、账户、市场及使用场景分别计费的项目,支持渠道和服务约定 |
例如,需求不能只写“500只股票的实时行情”,应补成“一个指定市场的500只普通股,在指定交易时段取得某类报价,服务一个内部看板”。若改为对外App,又应补充用户和展示用途。明确任务后,服务商才能给出有意义的方案。
验收记录可以照此保存:
候选产品与方案:
执行日期、软件版本、账户权益:
目标市场、证券与测试区间:
请求参数、预期字段及数据用途:
实际返回、缺失或异常:
原始文件与处理脚本:
已确认事项、仍需服务商答复的事项:
下一步:保留试验 / 缩小范围 / 排除
先通过必须条件,再比较成本和体验。缺少必要的市场、数据类型或使用条件,就不应因为价格低而继续投入集成。文档未公开的事项记为待确认,不按零分处理,也不自行补成“支持”。
七、需要时再查:几个会改变选型结果的概念
1. 数据服务、工具库与账户连接有什么区别
数据服务提供数据;开源库提供调用和整理工具;研究平台把数据与研究环境放在一起;券商接口还可能连接账户、订单和成交。这些角色可以组合,并不是每个项目都必须经过一条固定链路。
比较时先拆成两列:对方交付哪些数据,你还要建设哪些功能。装好软件库不代表其所有上游数据都能按同一条件使用;装好机构SDK也不代表已经取得相应数据产品。
2. 价格、报价、逐笔和K线,分别能回答什么
最新成交价描述已经发生的一笔交易。买卖报价描述某个时点的买卖意愿,还要看来自单一场所还是相应聚合范围。最近逐笔保留较细的成交事件,K线则把一个区间压缩为开、高、低、收、量。
一根分钟K线足以支持某些分钟级图表,却不能还原这一分钟内所有报价、订单新增和撤单。做价差、成交质量或订单簿研究时,要进一步核对事件类型、交易场所与历史范围。
因此也要把“最近成交查询”“历史逐笔下载”“逐单订单簿数据”分别问清。三者都可能带有逐笔或Tick字样,交付内容并不相同。
3. 怎样看懂“实时”:时效、范围和更新方式分开查
实时、延迟和日终是不同的时效条件;单场所与综合行情描述覆盖范围;快照和持续推送描述取数方式。不能把它们揉成一列“是否实时”。WebSocket不自动代表全市场数据,REST也不自动代表延迟行情。
再看自己的触发规则:若内部看板每分钟更新一次,适当频率的快照查询可以符合任务;若要求在两次查询之间任何一次触及阈值都被发现,仅取最新快照就可能遗漏过程。此时要核对合适的事件流或区间数据,并处理连接恢复与数据缺口。
行情时间和本机接收时间都应记录。休市时最近一条成交可能来自此前时段,收到响应并不表示刚发生新成交。两种时间的差还受字段语义、处理和时钟条件影响,不能直接作为网络测速结果。
4. 为什么回测要确认当时的样本与数据版本
历史回测先检查四件事:当时可选择哪些证券、使用什么价格口径、财务信息何时公开、后来有没有修订。若任务要模拟过去的市场,就不能把今天的完整名单直接当作当年的可选范围;若研究的是今天固定的一组股票,应说明这种样本选择。
看一个假设例子:某公司报告期截至9月30日,10月28日首次披露,11月4日更正。10月30日生成的历史信号,可以使用已披露的版本,但不能提前使用11月4日才出现的更正值。若披露发生在盘后,信号能从何时使用还需结合交易时段。固定“滞后若干月”是一种近似,不能自动恢复每家公司每次披露与修订的实际时间。
S&P Global Market Intelligence的2019年研究《Point-In-Time – What’s the Fuss About?》用中兴通讯财报重述作案例,说明同一报告期的最初值与后来修订值可能明显不同。这是供应商的方法研究,适合解释版本问题,不据此给数据产品排名或推导所有策略的收益差。
复权则要问清基准和用途。拆股后历史绝对价格可能重新标尺;是否影响信号,要看策略是否使用绝对价位、数量或当时的信息。记录查询日、复权参数和因子/版本,比简单宣布“前复权适合或不适合一切回测”更有用。研究文件应同时保留原始数据和处理程序。
5. 免费额度、开源工具和使用范围怎么一起判断
免费可能对应开源软件、有限请求、指定证券、试用期或有限历史。先看自己需要的数据,再按产品的计量方式计算用量:按请求、数据点、数据量与订阅数计量,不能直接比较一个“额度”数字。
例如要更新100只股票,接口每次允许返回20只,每轮至少需5次查询;再乘实际观察分钟数,并加历史补齐和失败重试。请求数减少不意味着账单与速度按同一比例变化。
最后把用途写清楚:个人查看、内部研究、客户展示、再分发和AI应用可能对应不同条件。开源软件的许可证与上游数据的使用安排分别确认;是否适合长期任务,则看具体函数、维护与实际验收。
八、常见问题速查
有没有免费的股票数据API?
有开放工具、免费请求方案和试用产品,例如AKShare、BaoStock,以及部分商业API的免费层。先核对具体数据、额度和用途。软件开源、数据免费与允许对外分发是三个问题。
股票API推荐哪一家?
先由任务缩小范围:个人研究看便于取得的历史和基本面;严肃回测重视历史样本与时点;盘中应用重视更新、订阅及时间;交易连接看券商生态;机构系统还需参考数据、口径和交付。本文按这些路径组织44种入口。第五节提供三市场查询与文件输出的完整例子,可用相同需求单验证自己的目标任务。
新浪财经API、腾讯股票API能直接用于产品吗?
搜索结果中的地址或社区脚本,可能对应网页内部调用,也可能已经发生变化。要确认有无面向你这类用途的官方文档、认证、数据范围和使用安排。本篇不把未经当前官方说明确认的社区地址写成稳定、可商用的公共API。
同花顺数据接口和股票API是什么关系?
同花顺旗下iFinD等产品有相应数据接口,具体市场、指标、实时数据和AI工具入口应按当前产品选择。第三方文章里出现的“同花顺接口”不必然指同一个产品,也不等于取得所有数据权益。
免费历史数据能直接做量化回测吗?
可以用于学习和研究起步,但回测有效性还取决于历史股票池、复权、披露时点、缺失处理及成交假设。能下载价格并不意味着上述条件都已满足。
Python取数和MCP接入该选哪一个?
固定批量任务、CSV和系统集成可以先用Python调用API。希望在兼容AI客户端中按任务查数、整理研究材料,可以评估MCP。两者也可以结合:AI协助编排,程序执行固定处理,并保留原始结果。持续行情消费则另行设计订阅流程。
一套接口能否包办量化、交易和所有金融应用?
单个数据服务可以覆盖多项任务,但数据、研究环境、交易账户和客户产品属于不同层次。选型时把自己需要的数据与需要自行建设的功能列开,才能知道接入后还剩哪些工作。
资料更新:2026年11月5日。产品介绍参考相应官方文档与SDK资料;具体数据产品、账户权益和用途以选定方案为准。选型与开发参考,不构成投资建议。