支持 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-12 1271.18 1295.00 1265.01 1291.91 50495
600519.SH 贵州茅台 2026-06-15 1292.70 1292.70 1270.10 1271.10 41586
600519.SH 贵州茅台 2026-06-16 1267.01 1267.88 1255.00 1255.67 34970
600519.SH 贵州茅台 2026-06-17 1258.00 1259.77 1238.56 1240.00 44803
600519.SH 贵州茅台 2026-06-18 1235.00 1238.87 1211.22 1215.00 57472
获取分钟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-18 14:40:00 1214.44 1215.82 1212.26 1215.82 1151
600519.SH 贵州茅台 2026-06-18 14:45:00 1215.02 1217.00 1215.00 1216.99 997
600519.SH 贵州茅台 2026-06-18 14:50:00 1216.52 1217.39 1215.99 1217.38 827
600519.SH 贵州茅台 2026-06-18 14:55:00 1217.40 1228.37 1217.40 1222.55 2355
600519.SH 贵州茅台 2026-06-18 15:00:00 1223.02 1223.99 1215.00 1215.00 2324
复权方式
K 线接口支持 adjust 参数:
| 值 | 说明 |
|---|
forward | 前复权 - 比例复权(默认) |
backward | 后复权 - 比例复权 |
forward_additive | 前复权 - 差值复权 |
backward_additive | 后复权 - 差值复权 |
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) # 后复权-比例
df = qd.klines.get("600519.SH", adjust="forward_additive", to_dataframe=True) # 前复权-差值
df = qd.klines.get("600519.SH", adjust="backward_additive", 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))
--- 600519.SH (贵州茅台) ---
trade_date open close volume
2026-06-16 1267.01 1255.67 34970
2026-06-17 1258.00 1240.00 44803
2026-06-18 1235.00 1215.00 57472
--- 000001.SZ (平安银行) ---
trade_date open close volume
2026-06-16 11.05 10.94 942708
2026-06-17 10.97 10.78 965828
2026-06-18 10.74 10.52 1426893
获取实时行情
按标的代码查询
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
000001.SZ 10.52 10.78 1426893 平安银行 -0.024119
600519.SH 1215.00 1240.00 57472 贵州茅台 -0.020161
按标的池查询(全量行情)
支持的标的池:
| 标的池 ID | 说明 |
|---|
CN_Stock | A 股(沪深京) |
CN_ETF | ETF |
US_Stock | 美股 |
HK_Stock | 港股 |
df = qd.quotes.get(universes=["CN_Stock"], to_dataframe=True)
print(df)
symbol region ... ext.amplitude ext.turnover_rate
0 920985.BJ CN ... 0.043893 0.015161
1 002414.SZ CN ... 0.027106 0.015167
2 600589.SH CN ... 0.047852 0.076141
3 688543.SH CN ... 0.043046 0.052545
4 300988.SZ CN ... 0.044633 0.043186
... ... ... ... ... ...
5496 002546.SZ CN ... 0.022026 0.014857
5497 920363.BJ CN ... 0.038917 0.027170
5498 688590.SH CN ... 0.033557 0.051160
5499 001317.SZ CN ... 0.053210 0.043987
5500 300731.SZ CN ... 0.080393 0.090136
[5501 rows x 18 columns]
获取日内分时
单只标的
支持周期: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-18 14:56:00 1223.50 273
600519.SH 贵州茅台 2026-06-18 14:57:00 1223.88 261
600519.SH 贵州茅台 2026-06-18 14:58:00 1223.26 2
600519.SH 贵州茅台 2026-06-18 14:59:00 1223.26 0
600519.SH 贵州茅台 2026-06-18 15:00:00 1215.00 1788
批量日内分时
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: 1215.00 x 123 | 卖1: 1215.28 x 1
买2: 1214.95 x 2 | 卖2: 1215.96 x 1
买3: 1214.88 x 1 | 卖3: 1216.00 x 2
买4: 1214.48 x 1 | 卖4: 1218.00 x 1
买5: 1214.40 x 1 | 卖5: 1218.89 x 1
批量盘口
result = qd.depth.batch(["000001.SZ", "600000.SH"])
for sym, depth in result.items():
print(f"--- {sym} ---")
for i in range(5):
bid = f"买{i+1}: {depth['bid_prices'][i]:>8.2f} x {depth['bid_volumes'][i]:<6}"
ask = f"卖{i+1}: {depth['ask_prices'][i]:>8.2f} x {depth['ask_volumes'][i]}"
print(f" {bid} | {ask}")
--- 000001.SZ ---
买1: 10.52 x 19374 | 卖1: 10.53 x 2
买2: 10.51 x 16237 | 卖2: 10.54 x 430
买3: 10.50 x 28122 | 卖3: 10.55 x 75
买4: 10.49 x 4656 | 卖4: 10.56 x 2771
买5: 10.48 x 3764 | 卖5: 10.57 x 2566
--- 600000.SH ---
买1: 9.08 x 4661 | 卖1: 9.09 x 7087
买2: 9.07 x 5576 | 卖2: 9.10 x 1052
买3: 9.06 x 6301 | 卖3: 9.11 x 2108
买4: 9.05 x 10340 | 卖4: 9.12 x 1537
买5: 9.04 x 1074 | 卖5: 9.13 x 3112