股票数据API接口技术指南:
在量化交易与金融科技开发中,程序化获取高质量的股票数据是至关重要的第一步。股票API(Application Programming Interface)作为连接开发者与金融数据源的桥梁,通过标准化的HTTP请求返回结构化的市场数据(如JSON格式),极大简化了数据获取流程。本文将系统性地介绍股票API的技术原理、主流免费资源的选择策略、多语言调用实例,以及在实际应用中的注意事项,为开发者提供一份实用的技术指南
一、股票API技术概述与核心数据类型
一套成熟的股票API通常提供以下几类核心数据服务,开发者可根据项目需求进行选择:
- 实时行情数据:提供低延迟的最新价格、成交量、买卖盘口(五档/十档)等信息,是短线交易和实时监控系统的基础。
- 历史数据:包含数十年历史的日线、周线、月线以及分钟级K线数据,用于策略回测和趋势分析。
- 基本面数据:涵盖上市公司的财务报告、市盈率(PE)、市净率(PB)、股息率等关键财务指标。
- 技术指标:许多API会预计算常用技术指标,如MACD、RSI、布林线(BOLL)等,节省开发者自行计算的时间和资源。
- 新闻与舆情数据:实时财经新闻和市场情感分析,辅助进行基本面或事件驱动型交易。
二、免费数据资源的选择策略与技术考量
选择免费API时,需从技术角度进行综合评估。下表对比了不同免费资源的特点,但请注意,免费服务通常存在调用频率、数据延迟或完整性的限制,适用于个人学习、原型开发或低频策略验证。
资源名称 | 主要覆盖市场 | 技术特点与局限性 | 适用场景 |
---|---|---|---|
智兔数服 | 沪深A股、港股、科创板、北交所 | 数据全面,包含实时行情、历史数据、技术指标 | A股全面分析、技术指标计算 |
Yahoo Finance API | 全球市场(以美股为主) | 历史悠久,社区支持好,但官方接口稳定性时有波动,需注意访问策略。 | 美股市场分析、学术研究 |
Alpha Vantage | 全球股票、外汇、加密货币 | 功能丰富,支持多种技术指标,免费版有明确的每分钟和每日调用次数限制。 | 跨国资产分析、量化研究入门 |
IEX Cloud | 主要美股市场 | 提供实时数据和基本面数据,数据质量较高,免费版有调用量限制。 | 美股投资分析应用开发 |
选择建议:
- 明确需求:首先确定你需要的是实时数据还是历史数据,关注的市场是A股、美股还是其他。
- 测试稳定性:在项目初期,务必对候选API进行一段时间的稳定性测试。
- 规划降级方案:设计系统时应考虑API服务不可用时的降级策略,如使用缓存数据。
股票列表
API接口链接(可点击验证):https://api.zhituapi.com/hs/list/all?token=ZHITU_TOKEN_LIMIT_TEST
【实时数据接口】
实时交易(券商数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/time/000001?token=ZHITU_TOKEN_LIMIT_TES
1、python
import requests
url = "https://api.zhituapi.com/hs/real/time/000001?token=ZHITU_TOKEN_LIMIT_TEST"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
const axios = require('axios');
const url = "https://api.zhituapi.com/hs/real/time/000001?token=ZHITU_TOKEN_LIMIT_TEST";
axios.get(url)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error);
});
3、Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.zhituapi.com/hs/real/time/000001?token=ZHITU_TOKEN_LIMIT_TEST"))
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());} catch (IOException | InterruptedException e) {e.printStackTrace();}}}
返回的数据:
{"pe":0,"ud":-0.26,"pc":-2.0817,"zf":2.6421,"p":12.23,"o":12.51,"h":12.55,"l":12.22,"yc":12.49,"cje":2079630600,"v":1690081,"pv":169008125,"tv":32784,"t":"2025-07-31 15:00:00"}
买卖五档盘口(新增)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/five/000001?token=ZHITU_TOKEN_LIMIT_TEST
最新分时交易
API接口链接(可点击验证):https://api.zhituapi.com/hs/latest/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
实时交易(全部 | 券商数据)
API地址:https://api.zhituapi.com/hs/custom/realall?token=ZHITU_TOKEN_LIMIT_TEST
实时交易(多选 | 券商数据)
API接口链接(可点击验证):http://api.zhituapi.com/hs/custom/ssjymore?token=ZHITU_TOKEN_LIMIT_TEST&stock_codes=000001,000002,000004
实时交易(公开数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/ssjy/000001?token=ZHITU_TOKEN_LIMIT_TEST
实时交易(全部 | 公开数据)
API接口链接(可点击验证):https://api.zhituapi.com/hs/custom/realall?token=ZHITU_TOKEN_LIMIT_TEST
京A股实时数据
API接口链接(可点击验证):http://api.zhituapi.com/bj/stock/real/ssjy/430017?token=ZHITU_TOKEN_LIMIT_TEST
港股实时行情【部分】
API接口链接(可点击验证):http://api.zhituapi.com/hk/stock/real/ssjy/00001?token=ZHITU_TOKEN_LIMIT_TEST
基金实时数据
API接口链接(可点击验证):http://api.zhituapi.com/fund/real/ssjy/159001?token=ZHITU_TOKEN_LIMIT_TEST
【历史数据接口】
历史分时交易
API接口链接(可点击验证):https://api.zhituapi.com/hs/history/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST&st=20250101&et=20250430
历史分时MACD
API接口链接(可点击验证):https://api.zhituapi.com/hs/history/macd/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST&st=20250101&et=20250430
历史分时MA
API接口链接(可点击验证):http://api.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
历史分时BOLL
API接口链接(可点击验证):http://api.zhituapi.com/hs/history/boll/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
历史分时KDJ
API接口链接(可点击验证):http://api.zhituapi.com/hs/history/kdj/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
API说明文档
股票基础信息
API接口链接(可点击验证):http://api.zhituapi.com/hs/instrument/000001.SZ?token=ZHITU_TOKEN_LIMIT_TEST
描述:依据《股票列表》中的股票代码获取股票的基础信息
更新频率:每日0点
字段名称 | 数据类型 | 字段说明 |
---|---|---|
ei | string | 市场代码 |
ii | string | 股票代码 |
name | string | 股票名称 |
od | string | 上市日期(股票IPO日期) |
pc | float | 前收盘价格 |
up | float | 当日涨停价 |
dp | float | 当日跌停价 |
fv | float | 流通股本 |
tv | float | 总股本 |
pk | float | 最小价格变动单位 |
is | int | 股票停牌状态(<=0:正常交易(-1:复牌);>=1停牌天数;) |
实时交易(券商数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/time/000001?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
更新频率:实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
p | number | 最新价 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
yc | number | 前收盘价 |
cje | number | 成交总额 |
v | number | 成交总量 |
pv | number | 原始成交总量 |
t | string | 更新时间 |
ud | float | 涨跌额 |
pc | float | 涨跌幅 |
zf | float | 振幅 |
t | string | 更新时间 |
实时交易(公开数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/ssjy/000001?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
更新频率:交易时间段每1分钟
字段名称 | 数据类型 | 字段说明 |
---|---|---|
fm | number | 五分钟涨跌幅(%) |
h | number | 最高价(元) |
hs | number | 换手(%) |
lb | number | 量比(%) |
l | number | 最低价(元) |
lt | number | 流通市值(元) |
o | number | 开盘价(元) |
pe | number | 市盈率(动态,总市值除以预估全年净利润,例如当前公布一季度净利润1000万,则预估全年净利润4000万) |
pc | number | 涨跌幅(%) |
p | number | 当前价格(元) |
sz | number | 总市值(元) |
cje | number | 成交额(元) |
ud | number | 涨跌额(元) |
v | number | 成交量(手) |
yc | number | 昨日收盘价(元) |
zf | number | 振幅(%) |
zs | number | 涨速(%) |
sjl | number | 市净率 |
zdf60 | number | 60日涨跌幅(%) |
zdfnc | number | 年初至今涨跌幅(%) |
t | string | 更新时间yyyy-MM-ddHH:mm:ss |
京A实时数据
API地址:http://api.zhituapi.com/bj/stock/real/ssjy/430017?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《京市股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
p | number | 最新价 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
yc | number | 前收盘价 |
cje | number | 成交总额 |
v | number | 成交总量 |
pv | number | 原始成交总量 |
ud | float | 涨跌额 |
pc | float | 涨跌幅 |
zf | float | 振幅 |
t | string | 更新时间 |
pe | number | 市盈率 |
tr | number | 换手率 |
pb_ratio | number | 市净率 |
tv | number | 成交量 |
港股实时行情【部分】
API地址:http://api.zhituapi.com/hk/stock/real/ssjy/股票代码(如00001)?token=token
描述:根据《港股股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。因港股的一些特殊性(仙股居多),该接口仅覆盖约850只主流港股数据。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
p | number | 最新价 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
yc | number | 前收盘价 |
cje | number | 成交总额 |
v | number | 成交总量 |
pv | number | 原始成交总量 |
ud | float | 涨跌额 |
pc | float | 涨跌幅 |
zf | float | 振幅 |
t | string | 更新时间 |
pe | number | 市盈率 |
tr | number | 换手率 |
pb_ratio | number | 市净率 |
tv | number | 成交量 |
基金实时数据
API地址:http://api.zhituapi.com/fund/real/ssjy/159001?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《沪深基金列表》得到的基金代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
p | number | 最新价 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
yc | number | 前收盘价 |
cje | number | 成交总额 |
v | number | 成交总量 |
pv | number | 原始成交总量 |
ud | float | 涨跌额 |
pc | float | 涨跌幅 |
zf | float | 振幅 |
t | string | 更新时间 |
pe | number | 市盈率 |
tr | number | 换手率 |
pb_ratio | number | 市净率 |
tv | number | 成交量 |
最新分时交易
API接口链接(可点击验证):https://api.zhituapi.com/hs/latest/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《股票列表》得到的股票代码和分时级别获取最新交易数据,交易时间升序。目前分时级别支持、5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br。
更新频率:实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间 |
o | float | 开盘价 |
h | float | 最高价 |
l | float | 最低价 |
c | float | 收盘价 |
v | float | 成交量 |
a | float | 成交额 |
pc | float | 前收盘价 |
sf | int | 停牌 1停牌,0 不停牌 |
历史分时交易
API接口链接(可点击验证):https://api.zhituapi.com/hs/history/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST&st=20250101&et=20250430
描述:根据《股票列表》得到的股票代码和分时级别获取历史交易数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。
更新频率:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:30开始更新,预计17:10完成
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间 |
o | float | 开盘价 |
h | float | 最高价 |
l | float | 最低价 |
c | float | 收盘价 |
v | float | 成交量 |
a | float | 成交额 |
pc | float | 前收盘价 |
sf | int | 停牌 1停牌,0 不停牌 |
历史分时MACD
API接口链接(可点击验证):https://api.zhituapi.com/hs/history/macd/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST&st=20250101&et=20250430
描述:根据《股票列表》得到的股票代码和分时级别获取历史MACD数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
更新频率:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
diff | number | DIFF值 |
dea | number | DEA值 |
macd | number | MACD值 |
ema12 | number | EMA(12)值 |
ema26 | number | EMA(26)值 |
历史分时MA
API接口链接(可点击验证):http://api.zhituapi.com/hs/history/ma/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《股票列表》得到的股票代码和分时级别获取历史MA数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
更新频率:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
ma3 | number | MA3,没有则为null |
ma5 | number | MA5,没有则为null |
ma10 | number | MA10,没有则为null |
ma15 | number | MA15,没有则为null |
ma20 | number | MA20,没有则为null |
ma30 | number | MA30,没有则为null |
ma60 | number | MA60,没有则为null |
ma120 | number | MA120,没有则为null |
ma200 | number | MA200,没有则为null |
ma250 | number | MA250,没有则为null |
历史分时BOLL
API接口链接(可点击验证):http://api.zhituapi.com/hs/history/boll/000001.SZ/d/n?token=ZHITU_TOKEN_LIMIT_TEST
描述:根据《股票列表》得到的股票代码和分时级别获取历史BOLL数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
更新频率:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
u | number | 上轨 |
d | number | 下轨 |
m | number | 中轨 |
更多说明文档:https://www.zhituapi.com/hsstockapi.html