跳转到主要内容

安装

pip install quantdash
支持 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_StockA 股(沪深)
CN_ETFETF
US_Stock美股
HK_Stock港股
df = qd.quotes.get(universes=["CN_Stock"], to_dataframe=True)
print(df)

获取日内分时

单只标的

支持周期:1m(默认)、5m15m30m60m
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