3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!在 JoinQuant 平台中,使用 get_bars 获取 09:30 的数据时成交量为 0 是平台 API 的默认设定。根据官方文档说明:“get_bars 开盘时取的 bar 高开低收都是当天的开盘价,成交量成交额为 0”。
这是因为在 A 股市场中,一分钟 K 线实际上是没有 09:30 这一根的。第一根 1 分钟 K 线的时间标识是 09:31,它包含了 09:25:00 到 09:30:59 的所有交易数据(即集合竞价加上开盘第一分钟的成交)。
要获取开盘时的成交量,您可以通过以下两种方法来实现:
如果您想获取开盘第一根 K 线的完整成交量,应该获取时间标识为 09:31 的 bar。在策略中,您可以将运行时间设置在 09:31 或之后来获取。
# 获取 09:31 的 1 分钟 K 线数据
array = get_bars(stock, 1, unit='1m', fields=['date', 'open', 'close', 'volume'], include_now=False, end_dt='2023-10-10 09:31:00')
print(array)
注:这根 K 线的 volume 就是 09:25 集合竞价成交量加上 09:30:00-09:30:59 的连续竞价成交量之和。
get_call_auction 获取纯集合竞价成交量如果您仅仅是想获取 09:25 集合竞价产生的成交量,应该使用专门的集合竞价 API get_call_auction。
from jqdata import *
# 获取指定日期的集合竞价数据
# 注意:当日的集合竞价数据最晚于 09:28 分返回
auction_data = get_call_auction(stock, start_date='2023-10-10', end_date='2023-10-10', fields=['time', 'current', 'volume'])
if not auction_data.empty:
open_volume = auction_data['volume'].iloc[0]
print(f"集合竞价成交量为: {open_volume}")
get_call_auction 函数获取。