get_price(security, start_date=None, end_date=None, frequency='1d', fields=None, fq=None, count=None)
使用场景
该函数在研究环境、回测、交易模块可用。这是为数不多可以再研究中的Notebook调用的接口。
参数解析
security:一支股票代码或者一个股票代码的list(list[str]/str)
start_date:开始时间,默认为空。传入格式仅支持:YYYYmmdd、YYYY-mm-dd、YYYY-mm-dd HH:MM、YYYYmmddHHMM,如'20150601'、'2015-06-01'、'2015-06-01 10:00'、'201506011000'(str);
end_date:结束时间,默认为空,传入格式仅支持:YYYYmmdd、YYYY-mm-dd、YYYY-mm-dd HH:MM、YYYYmmddHHMM,如'20150601'、'2015-06-01'、'2015-06-01 14:00'、'201506011400'(str);
时间参数可以通过以下方法获得,详看文末连接
context.blotter.current_dt
frequency: 单位时间长度,现有支持1分钟线(1m)、5分钟线(5m)、15分钟线(15m)、30分钟线(30m)、60分钟线(60m)、120分钟线(120m)、日线(1d)、周线(1w/weekly)、月线(mo/monthly)、季度线(1q/quarter)和年线(1y/yearly)频率数据(str);
fields:指明数据结果集中所支持输出字段(list[str]/str),输出字段包括 :
- open -- 开盘价(str:numpy.float64);
- high -- 最高价(str:numpy.float64);
- low --最低价(str:numpy.float64);
- close -- 收盘价(str:numpy.float64);
- volume -- 交易量(str:numpy.float64);
- money -- 交易金额(str:numpy.float64);
- price -- 最新价(str:numpy.float64);
- preclose -- 昨收盘价(str:numpy.float64)(仅日线返回);
- high_limit -- 涨停价(str:numpy.float64)(仅日线返回);
- low_limit -- 跌停价(str:numpy.float64)(仅日线返回);
- unlimited -- 判断查询日是否无涨跌停限制(1:该日无涨跌停限制;0:该日有涨跌停限制)(str:numpy.float64)(仅日线返回);
fq:数据复权选项,支持包括,pre-前复权,post-后复权,None-不复权(str);
count:大于0,不能与start_date同时输入,获取end_date前count根的数据,不支持除天('daily'/'1d')、分钟('1m')、5分钟线('5m')、15分钟线('15m')、30分钟线('30m')、60分钟线('60m')、120分钟线('120m')、周('weekly'/'1w')、('monthly'/'mo')、('quarter'/'1q')和('yearly'/'1y')以外的其它频率(int);
返回数据
和get_history接口返回数据完全一致,详细解析参考Ptrade量化交易平台历史数据接口get_history解析本文详细介绍了Ptrade中的历史数据接口get_history,详细介绍了get_history返回的数据格式https://blog.csdn.net/weixin_48607379/article/details/129987993
注意事项
1、start_date与count必须且只能选择输入一个,不能同时输入或者同时都不输入。
2、针对停牌场景,我们没有跳过停牌的日期,无论对单只股票还是多只股票进行调用,时间轴均为二级市场交易日日历,停牌时使用停牌前的数据填充,成交量为0,日K线可使用成交量为0的逻辑进行停牌日过滤。
3、 数据返回内容不包括当天数据。意味着你基本上不能在实盘交易中使用get_price接口!!
4、count只针对'daily', 'weekly', 'monthly', 'quarter', 'yearly', '1d', '1m', '5m', '15m', '30m', '60m', '120m', '1w', 'mo', '1q', '1y'频率有效,并且输入日期的类型需与频率对应。
5、'weekly', '1w', 'monthly', 'mo', 'quarter', '1q', 'yearly', '1y'频率不支持start_date和end_date组合的入参,只支持end_date和count组合的入参形式。
6、返回的周线数据是由日线数据进行合成。
7、该接口只能获取2005年后的数据。
为了解决在实盘交易中想要获取指定时间区间的数据,我编写了以下函数,可以让你在实盘交易的get_history接口,也可以使用像get_price一样的 start_date & end_date 参数来获取获取数据,在计算指定时间区间中的最值尤为好用
~~~有疑问可以交流,可代写策略,欢迎私信交流~~~