3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant 平台上,常规的行情获取函数 get_price 或 history 主要是获取连续竞价期间的 K 线数据,因此无法直接获取集合竞价期间的详细价格和盘口信息。
要获取集合竞价期间的数据,您需要使用专门的 API:get_call_auction。
get_call_auction 函数详解该函数用于获取指定时间区间内交易日 09:25 的集合竞价数据。支持股票(2010年至今)、场内基金(2019年至今)、指数(2017年至今)和上交所ETF期权(2017年至今)的集合竞价数据。
注意:当日的集合竞价数据最晚于 9:28 分返回。
from jqdata import *
get_call_auction(security, start_date=None, end_date=None, fields=None)
security: 标的代码或者标的代码组成的列表,支持股票、指数、50ETF期权。start_date: 开始日期,一个时间字符串,比如 "2019-01-01"。不能为 None。end_date: 结束日期,一个时间字符串,比如 "2019-02-01"。不能为 None。fields: 选择要获取的行情字段(类似 tick 数据的每一个字段)。如果为 None,默认获取全部字段。可选字段包括:
time: 时间 (datetime)current: 当前价 (float)volume: 累计成交量(股) (float)money: 累计成交额 (float)b1_v ~ b5_v: 五档买量 (float)b1_p ~ b5_p: 五档买价 (float)a1_v ~ a5_v: 五档卖量 (float)a1_p ~ a5_p: 五档卖价 (float)返回一个 pandas.DataFrame,索引为 pandas 默认的整数索引。
示例 1:获取多只股票指定字段的集合竞价数据
from jqdata import *
# 获取平安银行和万科A在指定时间段的集合竞价当前价和买卖一档量
d = get_call_auction(['000001.XSHE', '000002.XSHE'],
start_date='2019-01-01',
end_date='2019-10-10',
fields=['time', 'current', 'a1_v', 'b1_v'])
print(d)
示例 2:获取单只股票全部字段的集合竞价数据
from jqdata import *
# fields不填,默认获取全部字段数据
d = get_call_auction('000001.XSHE', '2019-08-10', '2019-08-20')
print(d)
09:30 之前(如 09:00 的 before_trading_start)调用此函数获取当天的集合竞价数据,可能会获取不到,因为当天的数据最晚在 09:28 生成。建议在 09:30 的 handle_data 或定时函数中获取前一日或当天的集合竞价数据。