问题描述
试了一下get_ticks和get_current_tick目前都不支持早盘9:15到9:25之间的竞价数据,这部分数据还是挺具有参考意义的,能否支持下?
解决方案
您好!JoinQuant 聚宽平台已经支持获取早盘的集合竞价数据。不过,正如您所发现的,常规的 get_ticks 和 get_current_tick 函数并不包含这部分数据。为了获取 9:15 到 9:25 之间的集合竞价数据,您需要使用平台专门提供的 API:get_call_auction。
以下是关于如何使用 get_call_auction 获取集合竞价数据的详细指南:
get_call_auction 函数介绍
该函数用于获取指定时间区间内交易日 09:25 的集合竞价数据。当日的集合竞价数据最晚于 9:28 分返回。
支持的标的及时间范围:
- 股票:2010年至今
- 场内基金:2019年至今
- 指数:2017年至今
- 上交所ETF期权:2017年至今
函数原型:
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,则默认获取全部字段。
可选的 fields 字段:
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)
代码示例
示例 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)
注意事项
- 数据量限制:为了防止返回数据量过大,每次调用最多返回 5000 行 数据。如果需要更长时间段的数据,请分批次获取。
- 返回值格式:返回的是一个
pandas.DataFrame,索引为 pandas 默认的整数索引。 - 调用时机:在模拟交易或回测中,如果您需要获取当天的集合竞价数据,请确保在 9:28 之后 调用该函数,因为当日数据最晚于 9:28 返回。
通过 get_call_auction,您就可以将早盘集合竞价的参考信息融入到您的量化策略中了!