近年来,股票量化分析凭借其科学性与系统性,已成为金融科技领域的重要发展方向。作为量化研究的基石,全面、精准的股票数据获取至关重要——无论是反映市场脉搏的实时交易数据、记录历史轨迹的K线数据,还是揭示企业价值的基本面信息,都是构建量化模型的核心要素。我们的核心目标是通过对这些多维度数据的深度挖掘,为投资决策提供数据驱动的科学依据。
在数据获取实践中,我经历过多种技术路线的探索:包括网易财经页面爬虫、申万行业数据采集,以及同花顺问财的数据抓取,也曾使用聚宽等平台的免费API服务。但实践表明,基于爬虫的数据获取方式存在明显的局限性——不仅面临网站反爬机制的持续升级,还受制于页面结构变动导致的维护成本,这些因素都给量化研究的连续性带来挑战。
经过系统性测试与验证,我整理出一套稳定可靠的数据接口解决方案。本文将重点分享这些经过实战检验的数据获取方法,通过Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实现示例,详细演示如何高效获取各类股票数据,助力量化研究者构建稳健的数据基础设施。
下面,所有演示中的API接口Url链接结尾的ZHITU_TOKEN_LIMIT_TEST,均为数据请求token证书,因为这个证书是官方测试证书,仅可用于验证各个接口的有效性,所以这个证书限制了只可请求股票代码为000001的数据,正式环境中是不能使用的,证书是免费申请的:token|智兔API,替换成自己申请的证书就可以请求任何股票数据了。
股票列表
API接口链接(可点击验证):https://api.zhituapi.com/hs/list/all?token=ZHITU_TOKEN_LIMIT_TEST
【实时数据接口】
实时交易(券商数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/time/股票代码?token=token证书
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/股票代码?token=token证书
最新分时交易
实时交易(全部 | 券商数据)
API地址:https://api.zhituapi.com/hs/custom/realall?token=token证书
实时交易(多选 | 券商数据)
API接口链接(可点击验证):http://api.zhituapi.com/hs/custom/ssjymore?token=token证书&tock_codes=股票代码1,股票代码2……股票代码20
实时交易(公开数据源)
API接口链接(可点击验证):https://api.zhituapi.com/hs/real/ssjy/股票代码?token=token证书
实时交易(全部 | 公开数据)
API接口链接(可点击验证):https://api.zhituapi.com/hs/public/realall?token=token证书
京A股实时数据
API接口链接(可点击验证):http://api.zhituapi.com/bj/stock/real/ssjy/股票代码(如430017)?token=token证书
港股主板实时数据
API接口链接(可点击验证):http://api.zhituapi.com/hk/stock/real/ssjy/股票代码(如00001)?token=token证书
科创行情实时数据
API接口链接(可点击验证):http://api.zhituapi.com/tech/real/ssjy/股票代码(如688001)?token=token证书
基金实时数据
API接口链接(可点击验证):http://api.zhituapi.com/fund/real/ssjy/基金代码(如159001)?token=token证书
【历史数据接口】
历史分时交易
历史分时MACD
历史分时MA
历史分时BOLL
历史分时KDJ
API说明文档
股票基础信息
API接口链接(可点击验证):http://api.zhituapi.com/hs/instrument/股票代码(如000001.SZ)?token=token证书
描述:依据《股票列表》中的股票代码获取股票的基础信息
更新频率:每日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/股票代码?token=token证书
描述:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
更新频率:实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
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/股票代码?token=token证书
描述:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
更新频率:交易时间段每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实时数据
描述:根据《京市股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
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 | 成交量 |
港股主板实时数据
描述:根据《港股股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
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 | 成交量 |
科创实时数据
描述:根据《科创股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
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 | 成交量 |
基金实时数据
描述:根据《沪深基金列表》得到的基金代码获取实时交易数据(您可以理解为日线的最新数据),该接口为券商数据源。
更新频率:盘中实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
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 | 成交量 |
最新分时交易
描述:根据《股票列表》得到的股票代码和分时级别获取最新交易数据,交易时间升序。目前分时级别支持、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 不停牌 |
历史分时交易
描述:根据《股票列表》得到的股票代码和分时级别获取历史交易数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。
更新频率:实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间 |
o | float | 开盘价 |
h | float | 最高价 |
l | float | 最低价 |
c | float | 收盘价 |
v | float | 成交量 |
a | float | 成交额 |
pc | float | 前收盘价 |
sf | int | 停牌 1停牌,0 不停牌 |
历史分时MACD
描述:根据《股票列表》得到的股票代码和分时级别获取历史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
描述:根据《股票列表》得到的股票代码和分时级别获取历史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
描述:根据《股票列表》得到的股票代码和分时级别获取历史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 | 中轨 |