🚀 5分钟上手
QuantGo 提供与 Tushare完全兼容 的Python接口,让你无需修改代码即可切换数据源。
# pip安装
pip install qgdata
import qgdata as qg
# 初始化(替换为你的token)
qg.set_token('your_token')
pro = qg.pro_api()
# 获取平安银行日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20260101')
print(df)
# 获取全部A股列表
stocks = pro.stock_basic(list_status='L')
print(f'共 {len(stocks)} 只股票')
如果你之前使用Tushare,只需修改初始化代码即可切换到QuantGo:
# 原Tushare代码
# import tushare as ts
# pro = ts.pro_api('your_tushare_token')
# 改为QuantGo
import qgdata as qg
qg.set_token('your_token')
pro = qg.pro_api()
📦 SDK安装
pip install qgdata
pip install -U qgdata
依赖要求
- Python >= 3.7
- pandas
- requests
🔑 Token认证
所有数据接口都需要Token认证。Token通过订阅获得:
1. 访问 quantgo.ai,手机号或邮箱登录
2. 选择 Pro / Ultra 套餐,微信扫码支付
3. 支付成功后 Token 自动下发并显示,也可随时在页面右上角「个人中心」查看和复制
import qgdata as qg
# 方式1:set_token 全局设置(推荐)
qg.set_token('your_token')
pro = qg.pro_api()
# 方式2:直接传参
pro = qg.pro_api('your_token')
# 方式3:环境变量 QGDATA_TOKEN(免硬编码)
# export QGDATA_TOKEN=your_token
pro = qg.pro_api()
# 登录 https://quantgo.ai 打开「个人中心」,可查看Token到期日期、续费或升级套餐
📈 daily - 日线行情
POST/api
获取A股日线行情数据,包含开高低收、成交量等。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 股票代码,如 000001.SZ |
trade_date | str | N | 交易日期,格式YYYYMMDD |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
输出字段
| 字段 | 类型 | 说明 |
|---|---|---|
ts_code | str | 股票代码 |
trade_date | str | 交易日期 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
pre_close | float | 昨收价 |
change | float | 涨跌额 |
pct_chg | float | 涨跌幅(%) |
vol | float | 成交量(手) |
amount | float | 成交额(千元) |
# 获取平安银行2026年日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20260101', end_date='20260110')
print(df)
# 获取2026年1月10日全市场日线
df = pro.daily(trade_date='20260110')
print(f'共 {len(df)} 只股票')
import pandas as pd
df = pro.daily(ts_code='000001.SZ', start_date='20250101')
df = df.sort_values('trade_date')
# 计算5日、10日、20日均线
df['ma5'] = df['close'].rolling(5).mean()
df['ma10'] = df['close'].rolling(10).mean()
df['ma20'] = df['close'].rolling(20).mean()
print(df[['trade_date', 'close', 'ma5', 'ma10', 'ma20']].tail())
📈 weekly - 周线行情
POST/api
获取A股周线行情数据。参数和返回字段与daily相同。
# 获取周线数据
df = pro.weekly(ts_code='000001.SZ', start_date='20250101')
# 筛选连续4周阳线的股票
df = df.sort_values('trade_date').tail(4)
if (df['close'] > df['open']).all():
print('连续4周阳线!')
📈 monthly - 月线行情
POST/api
获取A股月线行情数据。参数和返回字段与daily相同。
# 获取月线数据,判断多头排列
df = pro.monthly(ts_code='000001.SZ', start_date='20240101')
df = df.sort_values('trade_date')
ma5 = df['close'].rolling(5).mean().iloc[-1]
ma10 = df['close'].rolling(10).mean().iloc[-1]
ma20 = df['close'].rolling(20).mean().iloc[-1]
if ma5 > ma10 > ma20:
print('月线多头排列!')
⏱ stk_mins - 分钟K线
POST/api
获取A股分钟级别K线数据,支持1/5/15/30/60分钟周期。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | Y | 股票代码 |
freq | str | N | 频率:1min/5min/15min/30min/60min,默认30min |
start_date | str | N | 开始日期(YYYYMMDD) |
end_date | str | N | 结束日期(YYYYMMDD) |
输出字段
| 字段 | 类型 | 说明 |
|---|---|---|
ts_code | str | 股票代码 |
trade_time | datetime | 交易时间 |
freq | str | 频率 |
open/high/low/close | float | 开高低收 |
vol | float | 成交量 |
amount | float | 成交额 |
# 获取30分钟K线
df = pro.stk_mins(ts_code='000001.SZ', freq='30min', start_date='20260101')
print(df.head())
# 获取5分钟K线
df = pro.stk_mins(ts_code='000001.SZ', freq='5min', start_date='20260110')
# 找出放量上涨的时段
df['vol_ma'] = df['vol'].rolling(12).mean()
df['up'] = df['close'] > df['open']
signals = df[(df['vol'] > df['vol_ma'] * 2) & df['up']]
print(f'放量上涨时段: {len(signals)} 个')
📋 index_basic - 指数列表
POST/api
获取指数基本信息列表,包括上交所、深交所、中证、申万等市场的全部指数。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 指数代码 |
market | str | N | 市场:SSE上交所/SZSE深交所/CSI中证/SW申万 |
publisher | str | N | 发布商 |
category | str | N | 指数类别 |
输出字段
| 字段 | 说明 |
|---|---|
ts_code | 指数代码 |
name | 指数简称 |
fullname | 指数全称 |
market | 市场 |
publisher | 发布方 |
category | 指数类别 |
base_date | 基期 |
base_point | 基点 |
list_date | 发布日期 |
# 获取上交所全部指数
df = pro.index_basic(market='SSE')
print(f'上交所共 {len(df)} 个指数')
# 获取中证指数
df_csi = pro.index_basic(market='CSI')
print(df_csi[['ts_code', 'name', 'category']].head(10))
📊 index_daily - 指数日线
POST/api
获取A股指数日线行情,包括上证指数、深证成指、创业板指、行业指数等。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 指数代码,如 000001.SH(上证指数) |
trade_date | str | N | 交易日期,格式YYYYMMDD |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
常用指数代码
| 代码 | 名称 |
|---|---|
000001.SH | 上证指数 |
399001.SZ | 深证成指 |
399006.SZ | 创业板指 |
000016.SH | 上证50 |
000300.SH | 沪深300 |
000905.SH | 中证500 |
# 获取上证指数最近行情
df = pro.index_daily(ts_code='000001.SH', start_date='20260101')
print(df[['trade_date', 'close', 'pct_chg']].head())
# 计算沪深300均线
df = pro.index_daily(ts_code='000300.SH', start_date='20250101')
df = df.sort_values('trade_date')
df['ma20'] = df['close'].rolling(20).mean()
df['ma60'] = df['close'].rolling(60).mean()
# 判断大盘趋势
latest = df.iloc[-1]
if latest['close'] > latest['ma20'] > latest['ma60']:
print('大盘多头趋势')
else:
print('大盘趋势偏弱')
📋 fund_basic - ETF列表
POST/api
获取场内ETF/基金基本信息列表。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 基金代码 |
market | str | N | 市场:E场内ETF/O场外 |
status | str | N | 状态:D摘牌/I发行/L上市中 |
输出字段
| 字段 | 说明 |
|---|---|
ts_code | 基金代码 |
name | 基金简称 |
management | 管理人 |
fund_type | 基金类型 |
found_date | 成立日期 |
list_date | 上市日期 |
status | 存续状态 |
invest_type | 投资类型 |
# 获取全部场内ETF
df = pro.fund_basic(market='E')
print(f'场内ETF共 {len(df)} 只')
# 筛选上市中的ETF
df_live = df[df['status'] == 'L']
print(df_live[['ts_code', 'name', 'management']].head(10))
📊 fund_daily - ETF日线
POST/api
获取ETF/场内基金日线行情数据。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 基金代码,如 510050.SH(50ETF) |
trade_date | str | N | 交易日期,格式YYYYMMDD |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
常用ETF代码
| 代码 | 名称 |
|---|---|
510050.SH | 50ETF |
510300.SH | 300ETF |
510500.SH | 500ETF |
159915.SZ | 创业板ETF |
512880.SH | 证券ETF |
159949.SZ | 创业板50 |
# 获取50ETF日线
df = pro.fund_daily(ts_code='510050.SH', start_date='20260101')
print(df[['trade_date', 'close', 'vol', 'amount']].head())
# 比较不同ETF的收益
etfs = ['510300.SH', '510500.SH', '159915.SZ']
results = []
for code in etfs:
df = pro.fund_daily(ts_code=code, start_date='20260101')
df = df.sort_values('trade_date')
# 计算近20日收益
ret = (df['close'].iloc[-1] / df['close'].iloc[-20] - 1) * 100
results.append({'code': code, 'return_20d': ret})
import pandas as pd
df_ret = pd.DataFrame(results).sort_values('return_20d', ascending=False)
print('ETF动量排名:')
print(df_ret)
📋 stock_basic - 股票列表
POST/api
获取基础信息数据,包括股票代码、名称、上市日期、所属行业等。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
exchange | str | N | 交易所:SSE上交所 / SZSE深交所 |
list_status | str | N | 上市状态:L上市 / D退市 / P暂停,默认L |
输出字段
| 字段 | 类型 | 说明 |
|---|---|---|
ts_code | str | 股票代码(带后缀) |
symbol | str | 股票代码(不带后缀) |
name | str | 股票名称 |
area | str | 所在地域 |
industry | str | 所属行业 |
market | str | 市场类型(主板/创业板/科创板) |
list_date | str | 上市日期 |
total_mv | float | 总市值(万元) |
# 获取全部上市A股
df = pro.stock_basic(list_status='L')
print(f'共 {len(df)} 只股票')
# 筛选上交所股票
df_sse = pro.stock_basic(exchange='SSE', list_status='L')
print(f'上交所 {len(df_sse)} 只')
# 获取银行股
df = pro.stock_basic(list_status='L')
banks = df[df['industry'] == '银行']
print(banks[['ts_code', 'name', 'total_mv']])
# 常用筛选:剔除ST、北交所
df = pro.stock_basic(list_status='L')
df = df[~df['name'].str.contains('ST')]
df = df[~df['ts_code'].str.startswith(('4', '8', '9'))]
print(f'有效股票: {len(df)} 只')
📅 trade_cal - 交易日历
POST/api
获取交易日历,判断某天是否为交易日。
# 获取2026年1月交易日历
df = pro.trade_cal(start_date='20260101', end_date='20260131')
# 筛选交易日
trade_days = df[df['is_open'] == 1]['cal_date'].tolist()
print(f'1月共 {len(trade_days)} 个交易日')
📊 daily_basic - 每日指标
POST/api
获取每日重要指标,包括PE、PB、市值、换手率等。
主要输出字段
| 字段 | 说明 |
|---|---|
pe / pe_ttm | 市盈率 / 市盈率TTM |
pb | 市净率 |
total_mv | 总市值(万元) |
circ_mv | 流通市值(万元) |
turnover_rate | 换手率(%) |
volume_ratio | 量比 |
# 获取最新每日指标
df = pro.daily_basic(trade_date='20260110')
# 筛选:PE<15 且 PB<2 且 市值<100亿
low_pe = df[(df['pe'] > 0) & (df['pe'] < 15) &
(df['pb'] < 2) &
(df['total_mv'] < 1000000)] # 100亿=1000000万
print(f'低估值股票: {len(low_pe)} 只')
🧠 ai_news_factor - AI新闻因子统计
POST/api
基于FastNews生成AI因子统计,输出情绪、重要性与申万行业分布。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
source | str | N | 数据源 cls/eastmoney |
start_time | str | N | 开始时间 YYYY-MM-DD HH:MM:SS |
end_time | str | N | 结束时间 |
sentiment | str | N | positive/neutral/negative |
importance_min | int | N | 最低重要性1-5 |
sw_l1 | str | N | 申万一级,逗号分隔 |
sw_l2 | str | N | 申万二级,逗号分隔 |
limit | int | N | 样本数量(<=200) |
top_n | int | N | 行业TOP数量(默认10) |
输出字段
| 字段 | 说明 |
|---|---|
total | 远端总数 |
sample_size | 统计样本数 |
sentiment | 情绪分布 |
sentiment_score | 情绪指数(正负差/总量) |
importance | 重要性分布 |
importance_avg | 重要性均值 |
sw_l1_top | 申万一级TOP |
sw_l2_top | 申万二级TOP |
{
"api_name": "ai_news_factor",
"token": "your_token",
"params": {
"source": "cls",
"limit": 200,
"top_n": 10
}
}
{
"code": 0,
"msg": "ok",
"data": {
"total": 1234,
"sample_size": 200,
"sentiment": {"positive": 80, "neutral": 90, "negative": 30},
"sentiment_score": 0.25,
"importance": {"3": 120, "4": 60, "5": 20},
"importance_avg": 3.5,
"sw_l1_top": [{"name": "电子", "count": 18}],
"sw_l2_top": [{"name": "半导体", "count": 10}]
}
}
⚡ realtime - 实时行情
POST/api
获取A股全市场实时行情快照,数据来源于东方财富(通过AKShare封装),约3秒延迟。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ts_code | str | N | 股票代码,如 000001.SZ;不传则返回全市场 |
输出字段
| 字段 | 类型 | 说明 |
|---|---|---|
ts_code | str | 股票代码(带后缀) |
code | str | 股票代码(不带后缀) |
name | str | 股票名称 |
price | float | 最新价 |
pct_chg | float | 涨跌幅(%) |
change | float | 涨跌额 |
vol | float | 成交量(手) |
amount | float | 成交额(元) |
high | float | 最高价 |
low | float | 最低价 |
open | float | 开盘价 |
pre_close | float | 昨收价 |
turnover | float | 换手率(%) |
pe | float | 市盈率 |
pb | float | 市净率 |
# 获取全市场实时行情(约5000只)
df = pro.realtime()
print(f'获取到 {len(df)} 只股票实时行情')
# 按涨跌幅排序
top10 = df.nlargest(10, 'pct_chg')[['name', 'price', 'pct_chg']]
print('涨幅前10:')
print(top10)
# 获取平安银行实时行情
df = pro.realtime(ts_code='000001.SZ')
print(df[['name', 'price', 'pct_chg', 'amount']])
# 获取实时行情
df = pro.realtime()
# 筛选涨幅超9%的股票(接近涨停)
limit_up = df[df['pct_chg'] >= 9.5]
print(f'涨停/接近涨停: {len(limit_up)} 只')
print(limit_up[['name', 'price', 'pct_chg', 'amount']])
# 筛选成交额大且涨幅不错的股票
df = pro.realtime()
# 条件:成交额>5亿 且 涨幅3%-7%
hot = df[(df['amount'] > 5e8) &
(df['pct_chg'] >= 3) &
(df['pct_chg'] <= 7)]
print(f'放量上涨股: {len(hot)} 只')
print(hot[['name', 'price', 'pct_chg', 'amount']].head(10))
1. 实时行情数据约3秒延迟,适合盘中监控和选股。
2. 全市场查询返回约5000只股票,单次请求约1-2秒。
3. 非交易时段返回上一个交易日收盘数据。
💰 moneyflow - 个股资金流向
POST/api
获取个股每日资金流向数据,包括大单、中单、小单的买卖情况。
# 获取资金流向
df = pro.moneyflow(ts_code='000001.SZ', start_date='20260101')
# 计算主力净流入(大单+特大单)
df['main_net'] = (df['buy_lg_amount'] + df['buy_elg_amount'] -
df['sell_lg_amount'] - df['sell_elg_amount'])
# 最近5日主力净流入
recent = df.sort_values('trade_date').tail(5)
print(recent[['trade_date', 'main_net']])
💼 margin - 融资融券交易汇总
POST/api
获取融资融券每日交易汇总数据,单次最多返回4000条数据,可按日期范围查询。
输入参数
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
trade_date | str | N | 交易日期 (格式: YYYYMMDD) |
exchange_id | str | N | 交易所代码 (SSE上交所/SZSE深交所/BSE北交所) |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
输出参数
| 名称 | 类型 | 说明 |
|---|---|---|
trade_date | str | 交易日期 |
exchange_id | str | 交易所代码 |
rzye | float | 融资余额(元) |
rzmre | float | 融资买入额(元) |
rzche | float | 融资偿还额(元) |
rqye | float | 融券余额(元) |
rqmcl | float | 融券卖出量(股,份,手) |
rzrqye | float | 融资融券余额(元) |
rqyl | float | 融券余量(股,份,手) |
# 获取指定日期
df = pro.margin(trade_date='20260123')
print(df)
# 或使用query方式
df = pro.query('margin', trade_date='20260123', exchange_id='SSE')
📊 limit_list_d - 涨跌停列表 (新)
POST/api
获取A股每日涨跌停列表,炸板数据较全,数据从2020年开始。单次最多2500条,可按日期范围查询。
输入参数
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
trade_date | str | N | 交易日期 |
ts_code | str | N | 股票代码 |
limit_type | str | N | 涨跌停类型 (U涨停/D跌停/Z炸板) |
exchange | str | N | 交易所 (SH上交所/SZ深交所/BJ北交所) |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
输出参数
| 名称 | 类型 | 说明 |
|---|---|---|
trade_date | str | 交易日期 |
ts_code | str | 股票代码 |
industry | str | 所属行业 |
name | str | 股票名称 |
close | float | 收盘价 |
pct_chg | float | 涨跌幅 |
amount | float | 成交额 |
limit_amount | float | 板上成交金额(成交价为该板价格的金额) |
float_mv | float | 流通市值 |
total_mv | float | 总市值 |
turnover_ratio | float | 换手率 |
fd_amount | float | 封单金额(以涨跌停价格为基准的卖盘成交总金额) |
first_time | str | 首次封板时间 (炸板无此数据) |
last_time | str | 最后封板时间 |
open_times | int | 炸板次数(涨跌停为打板次数) |
up_stat | str | 涨停统计 (N/T N天有T涨停) |
limit_times | int | 连板数 (个股连续涨跌数量) |
limit | str | D跌停U涨停Z炸板 |
# 获取指定日期涨停股
df = pro.limit_list_d(trade_date='20260123', limit_type='U')
# 找出连板股(首板排除)
lianban = df[df['limit_times'] > 1].sort_values('limit_times', ascending=False)
print(lianban[['ts_code', 'name', 'industry', 'limit_times']])
📈 sw_daily - 申万行业日线行情
POST/api
获取申万行业每日行情数据,单次最多返回大约4000行数据,可按日期范围查询(默认2021年起)。
输入参数
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
ts_code | str | N | 行业代码 |
trade_date | str | N | 交易日期 (格式: YYYYMMDD, 下同) |
start_date | str | N | 开始日期 |
end_date | str | N | 结束日期 |
输出参数
| 名称 | 类型 | 说明 |
|---|---|---|
ts_code | str | 指数代码 |
trade_date | str | 交易日期 |
name | str | 指数名称 |
open | float | 开盘点位 |
low | float | 最低点位 |
high | float | 最高点位 |
close | float | 收盘点位 |
change | float | 涨跌点位 |
pct_change | float | 涨跌幅 |
vol | float | 成交量(万股) |
amount | float | 成交额(万元) |
pe | float | 市盈率 |
pb | float | 市净率 |
float_mv | float | 流通市值(万元) |
total_mv | float | 总市值(万元) |
# 获取申万行业日线
df = pro.sw_daily(trade_date='20260123')
# 涨幅前10行业
top10 = df.sort_values('pct_change', ascending=False).head(10)
print(top10[['name', 'close', 'pct_change', 'amount']])
🏭 index_classify - 申万行业分类
POST/api
获取申万行业分类,包括一级、二级、三级行业。
# 获取一级行业
df = pro.index_classify(level='L1')
print(df[['index_code', 'industry_name']])
# 获取全部行业(一二三级)
df_all = pro.index_classify()
print(f'共 {len(df_all)} 个行业分类')
🏭 index_member - 行业成分股
POST/api
获取申万行业成分股列表。
# 先查行业代码
ind = pro.index_classify(level='L1')
bank_code = ind[ind['industry_name'] == '银行']['index_code'].values[0]
# 获取成分股
members = pro.index_member(index_code=bank_code)
print(members[['con_code', 'con_name']])
🏦 shibor - 银行间拆借利率
上海银行间同业拆放利率(Shibor),是中国银行间市场最重要的基准利率。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_date | str | 否 | 开始日期(YYYYMMDD) |
| end_date | str | 否 | 结束日期(YYYYMMDD) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| date | str | 日期 |
| on | float | 隔夜利率(%) |
| 1w | float | 1周利率(%) |
| 2w | float | 2周利率(%) |
| 1m | float | 1月利率(%) |
| 3m | float | 3月利率(%) |
| 6m | float | 6月利率(%) |
| 9m | float | 9月利率(%) |
| 1y | float | 1年利率(%) |
df = pro.shibor(start_date='20260101')
print(df.head())
📊 cn_gdp - 国内生产总值(GDP)
中国国内生产总值季度数据,包含三大产业分项数据。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_q | str | 否 | 开始季度(如2024Q1) |
| end_q | str | 否 | 结束季度(如2024Q4) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| quarter | str | 季度(如2024Q1) |
| gdp | float | GDP累计值(亿元) |
| gdp_yoy | float | 当季同比增速(%) |
| pi/pi_yoy | float | 第一产业累计值/同比 |
| si/si_yoy | float | 第二产业累计值/同比 |
| ti/ti_yoy | float | 第三产业累计值/同比 |
df = pro.cn_gdp()
print(df[['quarter','gdp','gdp_yoy']].head())
📈 cn_cpi - 居民消费价格指数(CPI)
全国/城市/农村CPI月度数据,重要通胀指标。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_m | str | 否 | 开始月份(如202401) |
| end_m | str | 否 | 结束月份(如202412) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| month | str | 月份(如202401) |
| nt_val/nt_yoy/nt_mom | float | 全国当月值/同比/环比 |
| town_val/town_yoy/town_mom | float | 城市当月值/同比/环比 |
| cnt_val/cnt_yoy/cnt_mom | float | 农村当月值/同比/环比 |
df = pro.cn_cpi(start_m='202401')
print(df[['month','nt_yoy']].head())
🏭 cn_ppi - 工业品出厂价格指数(PPI)
工业生产者出厂价格指数月度数据,反映工业品价格变动。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_m | str | 否 | 开始月份(如202401) |
| end_m | str | 否 | 结束月份(如202412) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| month | str | 月份 |
| ppi_yoy | float | PPI当月同比(%) |
| ppi_accu | float | PPI累计同比(%) |
| ppirm_yoy | float | PPIRM当月同比(%) |
df = pro.cn_ppi(start_m='202401')
print(df[['month','ppi_yoy']].head())
💰 cn_m - 货币供应量
M0/M1/M2月度数据,反映货币政策宽松程度。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_m | str | 否 | 开始月份(如202401) |
| end_m | str | 否 | 结束月份(如202412) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| month | str | 月份 |
| m0/m0_yoy/m0_mom | float | M0(亿元)/同比/环比 |
| m1/m1_yoy/m1_mom | float | M1(亿元)/同比/环比 |
| m2/m2_yoy/m2_mom | float | M2(亿元)/同比/环比 |
df = pro.cn_m(start_m='202401')
print(df[['month','m2','m2_yoy']].head())
🏛️ sf_month - 社会融资数据
社会融资规模增量月度数据,反映实体经济融资情况。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_m | str | 否 | 开始月份(如202401) |
| end_m | str | 否 | 结束月份(如202412) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| month | str | 月份 |
| sf/sf_yoy | float | 社融增量(亿元)/同比 |
| rmb_loan | float | 人民币贷款(亿元) |
| ent_bond | float | 企业债券(亿元) |
| gov_bond | float | 政府债券(亿元) |
df = pro.sf_month(start_m='202401')
print(df[['month','sf','rmb_loan']].head())
🏭 cn_pmi - 采购经理指数(PMI)
制造业和非制造业PMI月度数据,重要经济景气先行指标。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| start_m | str | 否 | 开始月份(如202401) |
| end_m | str | 否 | 结束月份(如202412) |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| month | str | 月份 |
| mf_pmi | float | 制造业PMI |
| nmf_pmi | float | 非制造业PMI |
PMI>50表示扩张,<50表示收缩。制造业PMI是判断经济周期的重要指标。
df = pro.cn_pmi(start_m='202401')
print(df[['month','mf_pmi','nmf_pmi']].head())
📊 moneyflow_hsgt - 沪深港通资金流向
北向资金(外资)和南向资金每日净流入数据,市场情绪重要指标。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| trade_date | str | 否 | 交易日期(YYYYMMDD) |
| start_date | str | 否 | 开始日期 |
| end_date | str | 否 | 结束日期 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| trade_date | str | 交易日期 |
| hgt | float | 沪股通净流入(亿元) |
| sgt | float | 深股通净流入(亿元) |
| north_money | float | 北向资金净流入(亿元) |
| ggt_ss/ggt_sz | float | 港股通(沪/深)净流入 |
| south_money | float | 南向资金净流入(亿元) |
北向资金=沪股通+深股通,代表外资流入A股,是重要的市场风向标。
# 获取最近北向资金流向
df = pro.moneyflow_hsgt(start_date='20260101')
print(df[['trade_date','north_money','south_money']].head())
📊 ths_index - 同花顺板块指数
同花顺行业、概念板块列表,用于追踪热门板块和行业轮动。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts_code | str | 否 | 板块代码(如885566.TI) |
| name | str | 否 | 板块名称(模糊匹配) |
| type | str | 否 | N-板块 I-行业 S-特色 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| ts_code | str | 板块代码 |
| name | str | 板块名称 |
| count | int | 成分股数量 |
| type | str | 类型 |
# 搜索AI相关板块
df = pro.ths_index(name='人工智能')
print(df[['ts_code','name','count']])
👥 ths_member - 板块成分股
查询同花顺板块的成分股列表。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts_code | str | 否 | 板块代码 |
| code | str | 否 | 股票代码 |
| is_new | str | 否 | Y-最新成分 |
# 获取某板块成分股
df = pro.ths_member(ts_code='885566.TI')
print(df[['code','name']])
📈 ths_daily - 板块日线行情
同花顺板块指数日线行情,追踪板块涨跌趋势。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts_code | str | 否 | 板块代码 |
| trade_date | str | 否 | 交易日期 |
| start_date | str | 否 | 开始日期 |
| end_date | str | 否 | 结束日期 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| ts_code | str | 板块代码 |
| trade_date | str | 交易日期 |
| close/open/high/low | float | OHLC价格 |
| pct_change | float | 涨跌幅(%) |
| vol | float | 成交量 |
| total_mv | float | 总市值 |
df = pro.ths_daily(ts_code='885566.TI',start_date='20260101')
print(df[['trade_date','close','pct_change']].head())
💰 moneyflow_ind - 行业资金流向
同花顺行业板块资金流向,分析主力资金动向,判断行业景气度。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| trade_date | str | 否 | 交易日期 |
| ts_code | str | 否 | 板块代码 |
| start_date | str | 否 | 开始日期 |
| end_date | str | 否 | 结束日期 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| trade_date | str | 交易日期 |
| ts_code | str | 板块代码 |
| industry | str | 行业名称 |
| net_amount | float | 净流入额(亿元) |
| lead_stock | str | 领涨股票 |
| company_num | int | 公司数量 |
资金净流入代表主力资金流入,持续净流入表明行业景气度上升。
# 获取当日行业资金流向
df = pro.moneyflow_ind(trade_date='20260123')
# 按净流入排序,找出资金流入最多的行业
df = df.sort_values('net_amount',ascending=False)
print(df[['industry','net_amount','lead_stock']].head(10))
🏆 top_list - 龙虎榜统计
龙虎榜每日上榜股票汇总,追踪游资、机构动向。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| trade_date | str | 否 | 交易日期 |
| ts_code | str | 否 | 股票代码 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| trade_date | str | 交易日期 |
| ts_code | str | 股票代码 |
| name | str | 股票名称 |
| l_buy/l_sell | float | 龙虎榜买入/卖出额 |
| net_amount | float | 净买入额 |
| reason | str | 上榜原因 |
df = pro.top_list(trade_date='20260123')
print(df[['ts_code','name','net_amount','reason']].head())
🏛️ top_inst - 龙虎榜机构明细
龙虎榜机构席位交易明细,追踪机构买卖行为。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| trade_date | str | 否 | 交易日期 |
| ts_code | str | 否 | 股票代码 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| trade_date | str | 交易日期 |
| ts_code | str | 股票代码 |
| exalter | str | 营业部/机构名称 |
| buy/sell | float | 买入/卖出额(万) |
| side | str | 买卖方向 |
# 查看机构买入情况
df = pro.top_inst(trade_date='20260123')
inst = df[df['exalter'].str.contains('机构')]
print(inst[['ts_code','exalter','buy','sell']])
📊 dc_index - 东财概念板块
东方财富概念板块列表及实时涨跌。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts_code | str | 否 | 板块代码 |
| name | str | 否 | 板块名称(模糊) |
df = pro.dc_index(name='芯片')
print(df[['ts_code','name','pct_change']])
🎬 bo_weekly - 电影周票房
国内电影周票房数据,用于判断文娱行业景气度。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| date | str | 否 | 日期 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| date | str | 日期 |
| name | str | 电影名称 |
| week_amount | float | 当周票房(万) |
| total | float | 累计票房(万) |
| rank | int | 排名 |
df = pro.bo_weekly()
print(df[['date','name','week_amount']].head(10))
🔍 stk_surv - 机构调研
上市公司机构调研数据,追踪基金、券商等机构的调研动向,判断市场关注热点。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts_code | str | 否 | 股票代码 |
| surv_date | str | 否 | 调研日期(YYYYMMDD) |
| start_date | str | 否 | 开始日期 |
| end_date | str | 否 | 结束日期 |
返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| ts_code | str | 股票代码 |
| name | str | 股票名称 |
| surv_date | str | 调研日期 |
| fund_visitors | str | 调研机构(基金公司等) |
| org_num | int | 接待机构数量 |
被多家机构集中调研的股票往往是市场关注热点,机构调研数量可作为市场情绪指标。
# 查询最近被调研的股票
df = pro.stk_surv(start_date='20260101')
# 按接待机构数量排序,找出最受关注的股票
df = df.sort_values('org_num',ascending=False)
print(df[['surv_date','name','org_num']].head(10))
🔑 Token有效期与续费
登录 quantgo.ai 打开页面右上角「个人中心」,可查看当前Token、套餐类型与到期日期。
续费:在订阅页再次购买当前套餐,到期日自动顺延30天,Token保持不变。
Pro→Ultra 升级:购买Ultra时按Pro剩余时长自动折抵差价,支付后立即生效。
Ultra→Pro:购买Pro后将在Ultra到期时自动生效,不浪费Ultra剩余时长。
# Token过期或无效时,SDK调用会抛出 PipelineSDKError: unauthorized (401)
from qgdata import PipelineSDKError
try:
df = pro.daily(ts_code='000001.SZ')
except PipelineSDKError as e:
print('请检查Token是否有效或已过期:', e)
日线/周线/月线:17:00 / 18:30 / 20:00 / 21:00 / 22:00 / 00:00
每日指标:17:00 / 21:00
资金流向:17:30 / 21:30
分钟数据:18:00 / 21:15
行业分类:每周一更新
本项目接口规范参考 Tushare Pro,感谢 Tushare 团队为量化社区提供的优秀数据服务。
1. 本服务提供的所有数据仅供学习研究参考,不构成任何投资建议。
2. 数据来源于公开渠道,我们不对数据的准确性、完整性、及时性做任何保证。
3. 用户基于本服务数据做出的任何投资决策,风险自担,与本服务无关。
4. 本服务为个人非盈利项目,不承担因使用本服务产生的任何直接或间接损失。
5. 使用本服务即表示您已阅读并同意以上条款。
QuantGo · 个人学习项目 · 数据仅供参考
股市有风险,投资需谨慎