history(推荐)
获取多只股票多属性的历史行情数据,不能在研究环境中使用。
调用方法:
history(symbol_list, fields, bar_count, fre_step, skip_paused = False, fq = 'pre', is_panel=0)
释义:
获取多只股票多属性的历史行情数据,不能在研究环境中使用。
参数:
|
参数 |
含义 |
详细内容 |
|
symbol_list |
股票、指数或基金代码列表 |
例如:symbol_list = ['000001.SZ','600000.SH','510300.OF'],单个股票可以是字符串. |
|
fields |
数据字段 |
分钟和日级支持以下字段:> 'open': 开盘价(元)> 'high': 最高价(元)> 'low': 最低价(元)> 'close': 收盘价(元)> 'factor': 复权因子(复权因子 = 后复权价格 / 不复权价格)> 'volume': 成交量(股)> 'turnover': 成交额(元)> 'turnover_rate': 换手率(%)> 'is_paused': 是否停牌, 返回值为0或1, 0表示未停牌日级还支持以下字段:> 'high_limit': 涨停价(元)> 'low_limit': 跌停价(元)> 'avg_price': 均价(元)> 'prev_close': 前收盘价(元)> 'quote_rate': 涨跌幅(%)> 'amp_rate': 振幅(%)> 'is_st': 是否为ST, 返回值为0或1, 0表示非ST |
|
bar_count |
历史长度 |
例如bar_count = 5,表示获取过去5个时间步长的历史数据 |
|
fre_step |
时间步长 |
其中’Xd’代表X天,’Xm’代表X分钟,’Xt’代表Xtick例如:fre_step = '1d'表示时间步长为1天当X>1时,fields只支持 ‘open’、’close’、’high’、’low’、’volume’、’turnover’这几个字段 |
|
skip_paused |
是否跳过停牌数据 |
默认不跳过(主要是为了在获取多只股票数据时保持时间轴一致)skip_paused = True:表示跳过skip_paused = False:表示不跳过 |
|
fq |
复权选项 |
默认为不复权fq = None:不复权fq = 'post':后复权fq = 'pre':前复权(动态复权模式,详情请参见拆分、合并与分红) |
|
is_panel |
返回数据格式 |
默认为dict,即is_panel = 0is_panel = 1则返回Pandas.Panel格式的数据,key为fieldsis_panel = 0则返回dict格式的数据,key为symbol |
注意事项:
1.该函数可以直接用来获取数据,且支持多只股票多属性.
2.该函数的参数顺序与调用方法中一致,不然无法获取相关数据.
3.该函数没有起始日期,结束日期默认为上一个交易日(获取日级数据)或上一分钟(分钟数据)
返回格式:
1. is_panel = 0: 返回dict对象,其key是symbol即证券代码、值是pandas.Dataframe,行索引是datetime.datetime对象,列索引是字段名称。
2. is_panel = 1: 返回pandas.Panel对象,key为fileds字段(open/high/low/…)。pandas.Panel为pandas.DataFrame的三维结构,选定字段后输出的便是pandas.DataFrame对象。
示例:
【示例1】
def init(context):
pass
def handle_bar(context,bar_dict):
#获取万科A与平安银行过去10日的收盘价与最高价,并且输出数据
price=history(['000001.SZ','000002.SZ'], ['close','high'], 10, '1d', False, 'pre', is_panel=1)
log.info('收盘价:'+str(price['close']))
log.info('最高价:'+str(price['high']))
【示例2】
def init(context):
pass
def handle_bar(context,bar_dict):
#获取万科A与平安银行过去10个60分钟级的开盘价,并且输出数据
price=history(['600519.SH','300033.SZ'], ['open'] , 10, '60m', False, 'pre', is_panel=0)
log.info('300033.SZ开盘价:'+str(price['300033.SZ']))
log.info('600519.SH开盘价:'+str(price['600519.SH']))
示例返回结果:
【示例1】返回结果:
2026-03-14T14:05:18+00:00 - INFO
收盘价: 000001.SZ 000002.SZ
2016-12-19 9.20 21.10
2016-12-20 9.11 20.33
2016-12-21 9.16 20.48
2016-12-22 9.14 20.61
2016-12-23 9.08 20.30
2016-12-26 9.12 20.65
2016-12-27 9.08 21.42
2016-12-28 9.06 21.20
2016-12-29 9.08 20.84
2016-12-30 9.10 20.55
2026-03-14T14:05:18+00:00 - INFO
最高价: 000001.SZ 000002.SZ
2016-12-19 9.23 22.00
2016-12-20 9.20 21.00
2016-12-21 9.16 20.70
2016-12-22 9.16 20.77
2016-12-23 9.14 20.67
2016-12-26 9.13 20.69
2016-12-27 9.13 21.98
2016-12-28 9.11 21.48
2016-12-29 9.09 21.32
2016-12-30 9.10 20.96
【示例2】返回结果:
2026-03-14T14:05:18+00:00 - INFO
300033.SZ开盘价: open
2026-03-14T14:05:18+00:00 69.00
2026-03-14T14:05:18+00:00 68.50
2026-03-14T14:05:18+00:00 68.12
2026-03-14T14:05:18+00:00 68.69
2026-03-14T14:05:18+00:00 68.49
2026-03-14T14:05:18+00:00 68.55
2026-03-14T14:05:18+00:00 68.90
2026-03-14T14:05:18+00:00 68.81
2026-03-14T14:05:18+00:00 70.20
2026-03-14T14:05:18+00:00 70.11
2026-03-14T14:05:18+00:00 - INFO
600519.SH开盘价: open
2026-03-14T14:05:18+00:00 328.30
2026-03-14T14:05:18+00:00 326.55
2026-03-14T14:05:18+00:00 326.99
2026-03-14T14:05:18+00:00 326.00
2026-03-14T14:05:18+00:00 325.19
2026-03-14T14:05:18+00:00 325.40
2026-03-14T14:05:18+00:00 324.01
2026-03-14T14:05:18+00:00 323.70
2026-03-14T14:05:18+00:00 325.80
2026-03-14T14:05:18+00:00 325.80