Appearance
行情数据
get_price-获取指定日期范围内的历史行情
python
get_price(security,start_date=None,end_date=None,frequency='daily',fields=None,skip_paused=False,fq='pre',fq_ref_date=None,count=0,fill_suspend=True,df=False,include_now=True)获取指定日期范围内的历史行情,可查询多个标的多个字段.支持股票、指数、债券、场内基金、期货
参数
- security: 标的代码;str/list[str]
- start_date: 开始时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,不能与 count 同时使用,如果只传入日期, 则日内时间是当日的 00: 00: 00
- end_date: 截止时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,如果只传入日期, 则日内时间是当日的 00: 00: 00,默认回测时间
- frequency: k 线频率,str,
'xd','xm','daily'(等同于'1d'),'minute'(等同于'1m'),x 是一个正整数,分别表示x 天和 x 分钟,默认'daily' - fields: 支持以下字段 ['open', 'close', 'low', 'high', 'volume', 'money', 'avg', 'time'],其中 'time' 是以毫秒为单位的 Unix 时间戳(例如: 1675062000000)
- skip_paused: 是否跳过不交易日期(包括停牌,未上市或者退市后的日期),bool,默认为 False,不跳过
- fq: 'pre'/None 或'none'/'post',前复权/不复权/后复权,默认为'pre'
- fq_ref_date: 复权基准日期.影响前复权数据: 对这一天之前的每次除权进行连续的前复权处理,对这一天之后每次除权进行连续的后复权处理.默认 current.dt,回测当前日期
- count: 获取 k 线的数量,即表示获取 end_date 之前几个 frequency 的数据,int,与 start_date 二选一,不可同时使用
- fill_suspend: 对于停牌股票的价格处理,bool,默认为 True;True 表示用 pre_close 价格填充;False 表示使用 nan 填充停牌的数据
- df: 返回的数据格式,bool.True 表示返回 dataframe 格式
- include_now: 是否包含截止时间的 bar,bool,默认为 True,最后一根 bar 为用截止时间合成的一根 bar;为 False 时,最后一根 bar 为截止时间的上一根 bar.若 include_now=True,9: 30 时 get_price 会返回集合竞价数据
返回
- time: bar 时间,timestamp
- open: 开盘价
- close: 收盘价
- high: 最高价
- low: 最低价
- volume: 成交量
- money: 成交额
- avg: 均价,仅日线有数据
注意 1.当查询多个时,推荐使用 dict,这样可以提高回测速度.2.当查询多只标的时,为保持数据的一致性,对于停牌的数据不支持跳过,默认填充.
示例
python
data=get_price('sz000001',end_date='2024-06-04 11:00:00',frequency='1m',fields=['high','low'],count=5,df=True)
print(data)
'''
time high low
0 1717469760000 11.02 11.01
1 1717469820000 11.02 11.01
2 1717469880000 11.02 11.01
3 1717469940000 11.03 11.01
4 1717470000000 11.03 11.02
'''history-从当前时间开始获取历史数据
python
history(count,unit='daily',field='avg',security_list=None,df=True,skip_paused=False,fq='pre')从当前时间开始获取历史数据,可查询多个标的单个数据字段.支持股票、指数、债券、场内基金、期货
参数
- count: 获取 K 线的数量,即表示获取 end_date 之前几个 frequency 的数据;与 start_date 二选一,不可同时使用;
- unit: K 线频率; 'Xd','Xm','daily'(等同于'1d'),'minute'(等同于'1m'),X 是一个正整数,分别表示 X 天和 X 分钟;
- field: ['open','close','low','high','volume','money']中的一个字段
- security_list: 要获取数据的股票列表;None 表示查询 context.universe 中所有股票的数据,context.universe 需要使用 set_universe 进行设定,形如: set_universe(['sz000001','sh600000'])。
- df: 返回的数据格式;True 表示返回 DataFrame 格式,False 表示在单只标的时返回 numpy 格式,在批量时返回 dict 格式;默认为 False;批量获取时,推荐使用 dict 效率更高;
- skip_paused: 是否跳过不交易日期(包括停牌,未上市或者退市后的日期);默认为 False;如果为 True,跳过, 则行索引不再是日期, 因为不同股票的实际交易日期可能不一样
- fq: 'pre'/'none/'post'前复权/不复权/后复权;默认为 pre;
返回
- df=True: [pandas.DataFrame]对象, 行索引是[datetime.datetime]对象, 列索引是股票代号.
示例
python
history(count=10,unit="1d",field="close",security_list=["sz000001","sh600000"],df=True,skip_paused=False,fq="pre")
'''
sz000001 sh600000
1733382000000 11.077999 9.64
1733468400000 11.298000 9.70
1733727600000 11.308001 9.66
1733814000000 11.427999 9.80
1733900400000 11.368000 9.63
1733986800000 11.488001 9.82
1734073200000 11.198000 9.66
1734332400000 11.208000 9.64
1734418800000 11.167999 9.53
1734485100000 11.218000 9.56
'''- df=False: dict, key 是股票代码, value 是一个 list, 对应上面的 dataframe 的每一列
示例
python
{'sz000001': [11.077999114990234, 11.29800033569336, 11.308000564575195, 11.427999496459961, 11.368000030517578, 11.488000869750977, 11.197999954223633, 11.208000183105469, 11.167999267578125, 11.218000411987305], 'sh600000': [9.640000343322754, 9.699999809265137, 9.65999984741211, 9.800000190734863, 9.630000114440918, 9.819999694824219, 9.65999984741211, 9.640000343322754, 9.529999732971191, 9.5600004196167]]get_current_data-获取当前单位时间的涨停价等
python
get_current_data()获取当前单位时间(当天/当前分钟)的涨跌停价,是否停牌,当天的开盘价等. 支持股票、指数、债券、场内基金、期货. 返回一个 dict
- key: 股票代码,str
- value: 是一个 Bar 对象
示例
python
data=get_current_data()
print(data['sh600000'].last_price)get_current_tick-获取当前单位时间的 tick 数据
python
get_current_tick(security, date=None, df=False)支持股票、指数、债券、场内基金、期货
参数
- security: 标的代码或代码列表
- date: datetime 格式. 指定时代表返回离指定时刻最近的一条 tick. 默认为 None, 回测当前时刻
- df: 默认为 False,表示用 Tick 对象来封装 tick 数据,df=True 的时候,tick 数据使用 dataframe 返回。
返回
- 当传入参数为标的代码时,返回 tick 对象;
- 当传入包含标的代码的列表则返回一个 dict,key 是标的代码,value 是 tick 对象
- 当参数 df = True 时,返回 dataframe 格式数据
注意
- 当天截至当天时刻未产生 tick 时返回 None;
示例
python
print(get_current_tick('sh600000', date=datetime(2025,2,20,10,00,00)))
{'sh600000': Tick(2025-02-20 09:59:58, sh600000, 10.359999656677246, 10.420000076293945, 10.479999542236328, 10.34000015258789, 8381100.0, 87157104.0)]get_ticks-获取标的实时及历史 tick 数据
python
get_ticks(security,start_date=None,end_date,count=None,fields=['time','current','high','low','volume','money'],df=False)获取标的实时及历史 tick 数据.支持股票、指数、债券、场内基金~~、期货~~
参数
- security: 标的代码;格式: str/list[str];
- start_date: 开始时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,如果只传入日期, 则日内时间是当日的 00: 00: 00
- end_date: 截止时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,如果只传入日期, 则日内时间是当日的 00: 00: 00,默认回测时间
- count: 表示获取 end_date 之前多少条的 tick 数据,与 start_date 二选一,不可同时使用
- fields: 选择要获取的行情数据字段,默认为["time","current","high","low","volume","money"],默认的 fields 没有 a1_v~a5_v 等数据,需要这些字段的话,需要您在 fields 中自己添加,即可获取
- df: 默认为 False,返回 numpy.ndarray 格式的 tick 数据;df=True 的时候,返回 pandas.dataframe 格式的数据.
返回
numpy.ndarray/pandas.dataframe
- time: tick 时间
- open: 开盘价
- current: 最新价
- high: 最高价
- low: 最低价
- volume: 成交总量
- money: 成交总金额
- 报价: a1_v ~ a5_v,a1_p ~ a5_p,b1_p ~ b5_p,b1_v ~ b5_v
示例
python
print(get_ticks('sh600000',start_date='2025-02-01',end_date='2025-02-27',fields=['time','current','high','low','volume','money'],df=True))
time current high low volume money
sh600000 0 1738718102000 0.00 0.00 0.00 0.0 0.0
1 1738718105000 0.00 0.00 0.00 0.0 0.0
2 1738718108000 0.00 0.00 0.00 0.0 0.0
3 1738718111000 0.00 0.00 0.00 0.0 0.0
4 1738718114000 0.00 0.00 0.00 0.0 0.0
... ... ... ... ... ... ...
77012 1740553187000 10.21 10.32 10.12 54717504.0 559261632.0
77013 1740553190000 10.21 10.32 10.12 54717504.0 559261632.0
77014 1740553193000 10.21 10.32 10.12 54717504.0 559261632.0
77015 1740553196000 10.21 10.32 10.12 54717504.0 559261632.0
77016 1740553199000 10.21 10.32 10.12 54717504.0 559261632.0
[77017 rows x 6 columns]get_call_auction-获取每天集合竞价数据
python
get_call_auction(security, start_date=None, end_date=None, fields=None)获取指定时间区间内交易日集合竞价(09:25)数据,支持股票、场内基金、指数和上交所 ETF 期权,当日的集合竞价数据最晚于 9:28 分返回.
参数
- security: 标的代码或者标的代码组成的列表
- start_date:开始时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh:mm:ss'/时间戳,截取到日期,默认回测当前时间
- end_date:截止时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh:mm:ss'/时间戳,截取到日期,默认回测当前时间
- fields: 选择要获取的行情字段(类似 tick 数据的每一个字段),字段介绍如下:
| 字段名 | 说明 | 字段类型 |
| 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 |
返回一个 dataframe
示例
python
d = get_call_auction(['sz000001', 'sz000002'], start_date='2019-01-01', end_date='2019-10-10',fields=['time', 'current', 'a1_v', 'b1_v'])
print(d)
code time current a1_v b1_v
0 sz000001 2019-01-02 09:25:03 9.3900 13400.0 183300.0
1 sz000001 2019-01-03 09:25:03 9.1800 99200.0 37200.0
2 sz000001 2019-01-04 09:25:03 9.2400 47000.0 56500.0
3 sz000001 2019-01-07 09:25:03 9.8400 186300.0 47300.0
.. ... ... ... ... ...
352 sz000002 2019-09-19 09:25:03 27.0500 32300.0 18200.0
353 sz000002 2019-09-20 09:25:03 26.8900 17280.0 700.0
354 sz000002 2019-09-23 09:25:03 26.4900 199614.0 32300.0
355 sz000002 2019-09-24 09:25:03 26.2400 701.0 7300.0
[356 rows x 5 columns]get_call_auction_ticks-获取集合竞价期间的数据
python
get_call_auction_ticks(security, start_date=None, end_date=None, fields=None)获取指定时间区间内交易日集合竞价(09:15-09:25)数据,支持股票、场内基金、指数和上交所 ETF 期权.
参数
- security: 标的代码或者标的代码组成的列表
- start_date: 开始时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,如果只传入日期, 则日内时间是当日的 00: 00: 00
- end_date: 截止时间,datetime.date/datetime.datetime/'yyyy-mm-dd'/'yyyy-mm-dd hh: mm: ss'/时间戳,如果只传入日期, 则日内时间是当日的 00: 00: 00,默认回测时间
- fields: 选择要获取的行情字段(类似 tick 数据的每一个字段),字段介绍如下:
| 字段名 | 说明 | 字段类型 |
| time | 时间 | datetime |
| current | 09:25之前:空 | float |
| volume | 09:25之前:空 | float |
| money | 09:25之前:空 | float |
| b1_v | 09:25之前:虚拟匹配量 | float |
| b2_v | 09:25之前:买方虚拟未匹配量 | float |
| b3_v | 09:25之前:空 | float |
| b4_v | 09:25之前:空 | float |
| b5_v | 09:25之前:空 | float |
| b1_p | 09:25之前:虚拟开盘参考价格 | float |
| b2_p | 09:25之前:空 | float |
| b3_p | 09:25之前:空 | float |
| b4_p | 09:25之前:空 | float |
| b5_p | 09:25之前:空 | float |
| a1_v | 09:25之前:虚拟匹配量 | float |
| a2_v | 09:25之前:卖方虚拟未匹配量 | float |
| a3_v | 09:25之前:空 | float |
| a4_v | 09:25之前:空 | float |
| a5_v | 09:25之前:空 | float |
| a1_p | 09:25之前:虚拟开盘参考价格 | float |
| a2_p | 09:25之前:空 | float |
| a3_p | 09:25之前:空 | float |
| a4_p | 09:25之前:空 | float |
| a5_p | 09:25之前:空 | float |
返回一个 dataframe