支持 Python 3.9+,推荐 3.10 或更高版本。内置 pandas 和 tqdm 支持。
初始化
from quantdash import QuantDash
qd = QuantDash(api_key="your-api-key")
也可以通过环境变量设置:
export QUANTDASH_API_KEY="your-api-key"
from quantdash import QuantDash
qd = QuantDash() # 自动读取 QUANTDASH_API_KEY
标的代码格式
标的代码统一使用 {代码}.{交易所后缀} 格式:
| 后缀 | 交易所 | 示例 |
|---|
.SH | 上海证券交易所 | 600519.SH |
.SZ | 深圳证券交易所 | 000001.SZ |
.BJ | 北京证券交易所 | 920047.BJ |
.US | 美股 | AAPL.US |
.HK | 港股 | 00700.HK |
获取日K线
支持周期:1d(日)、1w(周)、1M(月)、1Q(季)、1Y(年)
df = qd.klines.get("600519.SH", period="1d", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_date", "open", "high", "low", "close", "volume"]])
symbol name trade_date open high low close volume
600519.SH 贵州茅台 2026-06-02 1306.00 1326.36 1301.00 1307.22 36362
600519.SH 贵州茅台 2026-06-03 1304.00 1304.00 1276.00 1281.91 52477
600519.SH 贵州茅台 2026-06-04 1278.99 1288.99 1266.69 1268.00 33506
600519.SH 贵州茅台 2026-06-05 1278.00 1283.00 1267.74 1272.86 31304
600519.SH 贵州茅台 2026-06-08 1272.00 1278.00 1260.00 1262.98 30828
获取分钟K线
支持周期:1m(1分钟)、5m(5分钟)、15m(15分钟)、30m(30分钟)、60m(60分钟)
df = qd.klines.get("600519.SH", period="5m", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_time", "open", "high", "low", "close", "volume"]])
symbol name trade_time open high low close volume
600519.SH 贵州茅台 2026-06-08 14:40:00 1263.21 1263.86 1262.11 1262.81 502
600519.SH 贵州茅台 2026-06-08 14:45:00 1262.93 1263.48 1260.00 1260.80 1307
600519.SH 贵州茅台 2026-06-08 14:50:00 1261.40 1261.80 1260.80 1261.00 544
600519.SH 贵州茅台 2026-06-08 14:55:00 1260.88 1261.25 1260.42 1260.78 810
600519.SH 贵州茅台 2026-06-08 15:00:00 1260.80 1263.34 1260.80 1262.98 577
复权方式
K 线接口支持 adjust 参数:
| 值 | 说明 |
|---|
forward | 前复权(默认) |
backward | 后复权 |
none | 不复权 |
df = qd.klines.get("600519.SH", adjust="none", to_dataframe=True) # 不复权
df = qd.klines.get("600519.SH", adjust="forward", to_dataframe=True) # 前复权(默认)
df = qd.klines.get("600519.SH", adjust="backward", to_dataframe=True) # 后复权
批量获取K线
一次请求获取多只标的的K线数据:
symbols = ["600519.SH", "000001.SZ"]
dfs = qd.klines.batch(symbols, period="1d", count=3, to_dataframe=True, show_progress=True)
for sym, df in dfs.items():
print(f"--- {sym} ({df['name'].iloc[0]}) ---")
print(df[["trade_date", "open", "close", "volume"]].to_string(index=False))
--- 000001.SZ (平安银行) ---
trade_date open close volume
2026-06-04 10.91 10.82 869271
2026-06-05 10.83 10.98 1003503
2026-06-08 10.97 11.03 1090926
--- 600519.SH (贵州茅台) ---
trade_date open close volume
2026-06-04 1278.99 1268.00 33506
2026-06-05 1278.00 1272.86 31304
2026-06-08 1272.00 1262.98 30828
获取实时行情
按标的代码查询
df = qd.quotes.get(symbols=["600519.SH", "000001.SZ"], to_dataframe=True)
print(df[["symbol", "last_price", "prev_close", "volume", "ext.name", "ext.change_pct"]])
symbol last_price prev_close volume ext.name ext.change_pct
600519.SH 1262.98 1272.86 30828 贵州茅台 -0.007762
000001.SZ 11.03 10.98 1090926 平安银行 0.004554
按标的池查询(全量行情)
支持的标的池:
| 标的池 ID | 说明 |
|---|
CN_Stock | A 股(沪深) |
CN_ETF | ETF |
US_Stock | 美股 |
HK_Stock | 港股 |
df = qd.quotes.get(universes=["CN_Stock"], to_dataframe=True)
print(df)
获取日内分时
单只标的
支持周期:1m(默认)、5m、15m、30m、60m
df = qd.klines.intraday("600519.SH", count=5, to_dataframe=True)
print(df[["symbol", "name", "trade_time", "close", "volume"]])
symbol name trade_time close volume
600519.SH 贵州茅台 2026-06-08 14:56:00 1263.00 191
600519.SH 贵州茅台 2026-06-08 14:57:00 1262.99 126
600519.SH 贵州茅台 2026-06-08 14:58:00 1263.00 6
600519.SH 贵州茅台 2026-06-08 14:59:00 1263.00 0
600519.SH 贵州茅台 2026-06-08 15:00:00 1262.98 254
批量日内分时
dfs = qd.klines.intraday_batch(["600519.SH", "000001.SZ"], to_dataframe=True)
for sym, df in dfs.items():
print(f"{sym}: {len(df)} 条分钟线")
获取标的信息
insts = qd.instruments.get(["600519.SH", "000001.SZ"])
for i in insts:
print(f"{i['symbol']:>10s} {i['name']:<6s} 交易所={i['exchange']} 类型={i['type']} 上市={i['ext'].get('listing_date','')}")
600519.SH 贵州茅台 交易所=SH 类型=stock 上市=2001-08-27
000001.SZ 平安银行 交易所=SZ 类型=stock 上市=1991-04-03
获取除权因子
df = qd.klines.ex_factors(["600519.SH"], to_dataframe=True)
print(df[["symbol", "trade_date", "ex_factor"]].tail(5))
symbol trade_date ex_factor
600519.SH 2023-12-20 1.011540
600519.SH 2024-06-19 1.020716
600519.SH 2024-12-20 1.015637
600519.SH 2025-06-26 1.019649
600519.SH 2025-12-19 1.017003
获取五档盘口
depth = qd.depth.get("600519.SH")
print(f"标的: {depth['symbol']} 地区: {depth['region']}")
for i in range(5):
bid = f"买{i+1}: {depth['bid_prices'][i]:>10.2f} x {depth['bid_volumes'][i]}"
ask = f"卖{i+1}: {depth['ask_prices'][i]:>10.2f} x {depth['ask_volumes'][i]}"
print(f" {bid} | {ask}")
标的: 600519.SH 地区: CN
买1: 1262.98 x 2 | 卖1: 1262.99 x 7
买2: 1262.65 x 1 | 卖2: 1263.00 x 44
买3: 1262.31 x 1 | 卖3: 1263.02 x 1
买4: 1262.20 x 2 | 卖4: 1263.20 x 2
买5: 1262.03 x 2 | 卖5: 1263.34 x 1