首页 > 其他分享 >PTrade如何获取历史数据—PTrade量化API说明,get_price - 获取历史数据

PTrade如何获取历史数据—PTrade量化API说明,get_price - 获取历史数据

时间:2024-06-12 13:58:27浏览次数:25  
标签:02 open price 获取 str date 历史数据 PTrade 2017

get_price - 获取历史数据

get_price(security, start_date=None, end_date=None, frequency='1d', fields=None, fq=None, count=None)
使用场景

该函数在研究、回测、交易模块可用

接口说明

该接口用于获取指定日期的前N条的历史行情K线数据或者指定时间段内的历史行情K线数据。支持多股票、多行情字段获取。

注意事项:

可免费提供恒生PTrade量化软件,迅投QMT量化软件,低门槛申请,交易费率成本价,↑↑↑欢迎联系交流~

1、start_date与count必须且只能选择输入一个,不能同时输入或者同时都不输入。

2、针对停牌场景,我们没有跳过停牌的日期,无论对单只股票还是多只股票进行调用,时间轴均为二级市场交易日日历,停牌时使用停牌前的数据填充,成交量为0,日K线可使用成交量为0的逻辑进行停牌日过滤。

3、数据返回内容不包括当天数据。

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年后的数据。

参数

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);

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_price对于多股票和多字段不同场景下获取返回数据的规则与get_history一致,如下:

第一种返回数据:

当获取单支股票(单只股票必须为字符串类型security='600570.SS',不能用security=['600570.SS'])和单个或多个字段的时候,返回的是pandas.DataFrame对象,行索引是datetime.datetime对象,列索引是行情字段,为str类型。

例如,输入为get_price(security='600570.SS',start_date='20170201',end_date='20170213',frequency='1d')时,将返回:


                 open	close	 high	 low	 volume	        price	   money     preclose    high_limit    low_limit    unlimited
2017-02-03	44.47	43.90	44.50	43.58	4418325.0	43.90	193895820.0	44.26	   48.69	39.83   	0
2017-02-06	43.91	44.10	44.30	43.66	4428487.0	44.10	194979290.0	43.90	   48.29	39.51   	0
2017-02-07	44.05	43.52	44.07	43.34	5649251.0	43.52	246776480.0	44.10	   48.51	39.69   	0
2017-02-08	43.59	44.59	44.78	43.53	12570233.0	44.59	557883600.0	43.52	   47.87	39.17   	0
2017-02-09	44.74	44.74	45.28	44.39	9240223.0	44.74	413875390.0	44.59	   49.05	40.13   	0
2017-02-10	44.80	44.62	44.98	44.41	8097465.0	44.62	361757300.0	44.74	   49.21	40.27   	0
2017-02-13	44.32	44.89	45.98	44.02	14931596.0	44.89	672360490.0	44.62	   49.08	40.16   	0
第二种返回数据:

当获取多支股票(多只股票必须为list类型,特殊情况:当list只有一个股票时仍然当做多股票处理,比如security=['600570.SS'])和单个字段的时候,返回的是pandas.DataFrame对象,行索引是datetime.datetime对象,列索引是股票代码的编号,为str类型。

例如,输入为get_price(['600570.SS'], start_date='20170201', end_date='20170213', frequency='1d', fields='open')时,将返回:


              600570.SS
2017-02-03      44.47
2017-02-06      43.91
2017-02-07      44.05
2017-02-08      43.59
2017-02-09      44.74
2017-02-10      44.80
2017-02-13      44.32
第三种返回数据:

如果是获取多支股票(多只股票必须为list类型,特殊情况:当list只有一个股票时仍然当做多股票处理,比如security=['600570.SS'])和多个字段,则返回pandas.Panel对象,items索引是行情字段,为str类型(如'open'、'close'等),里面是很多pandas.DataFrame对象,每个pandas.DataFrame的行索引是datetime.datetime对象, 列索引是股票代码,为str类型。

例如,输入为get_price(['600570.SS','600571.SS'], start_date='20170201', end_date='20170213', frequency='1d', fields=['open','close'])['open']时,将返回:


             600570.SS   600571.SS
2017-02-03    44.47        19.36
2017-02-06    43.91        19.00
2017-02-07    44.05        19.27
2017-02-08    43.59        19.10
2017-02-09    44.74        19.47
2017-02-10    44.80        19.57
2017-02-13    44.32        19.22

假如要对panel索引中的对象进行转换,比如将items索引由行情字段转换成股票代码,可以通过panel_info = panel_info.swapaxes("minor_axis", "items")的方法转换。

示例
def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 获得600570.SS(恒生电子)的2015年01月的天数据,只获取open字段
    price_open = get_price('600570.SS', start_date='20150101', end_date='20150131', frequency='1d')['open']
    log.info(price_open)
    # 获取指定结束日期前count天到结束日期的所有开盘数据
    # price_open = get_price('600570.SS', end_date='20150131', frequency='daily', count=10)['open']
    # log.info(price_open)
    # 获取股票指定结束时间前count分钟到指定结束时间的所有数据
    # stock_info = get_price('600570.SS', end_date='2015-01-31 10:00', frequency='1m', count=10)
    # log.info(stock_info)
    # 获取指定结束日期前count周到结束日期所在周的所有开盘数据
    # week_open = get_price('600570.SS', end_date='20150131', frequency='1w', count=10)['open']
    # log.info(week_open)

    # 获取多只股票
    # 获取沪深300的2015年1月的天数据,返回一个[pandas.Panel]
    security_list = get_index_stocks('000300.XBHS', '20150101')
    price = get_price(security_list, start_date='20150101', end_date='20150131')
    log.info(price)
    # 获取某股票开盘价,行索引是[datetime.datetime]对象,列索引是行情字段
    price_open = price['open'][security_list[0]]
    log.info(price_open)

    # 获取农业版块指定结束日期前count天到结束日期的数据
    industry_info = get_price("A01000.XBHS", end_date="20210315", frequency="daily", count=10)
    log.info(industry_info)

标签:02,open,price,获取,str,date,历史数据,PTrade,2017
From: https://blog.csdn.net/vx17628023449/article/details/139624702

相关文章

  • vue tree展开自动获取焦点
     打开弹窗设置默认焦点html代码重点:设置 node-key="id"  ref="table_dedh"<el-tree:data="dedhtreeData"node-key="id"ref="table_dedh":props="{children:'children',label:'label'}"@no......
  • C# 获取当前服务器域名
    C#获取当前服务器域名"http://"是协议名"www.test.com"是域名"aaa"是站点名"bbb.aspx"是页面名(文件名)"id=5&name=kelli"是参数//获取完整url(协议名+域名+站点名+文件名+参数)stringurl=Request.Url.ToString();url="http://www.test.com/aaa/b......
  • 基于HTTP传输协议、cJSON库的网络天气获取程序
    基于HTTP传输协议、cJSON库的网络天气获取程序#include<stdio.h>#include<string.h>#include<strings.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<stdlib.h>#include<errno.h>#include......
  • ExecuteReader 获取数据集的基础使用
    ///<summary>///获取多个结果集///</summary>///<paramname="sql"></param>///<returns></returns>///<exceptioncref="Exception"></exception>publicstaticSqlDataReaderGetReader(strings......
  • snmp-check一键获取SNMP信息(KALI工具系列二十一)
    目录1、KALILINUX简介  2、snmp-check工具简介3、在KALI中使用onesixtyone3.1目标主机IP(win)3.2KALI的IP 4、操作示例4.1SNMP检查4.2指定SNMP端口4.3指定社区字符串4.4详细输出4.5指定多项5、总结1、KALILINUX简介KaliLinux是一个功能强大......
  • 【恒生ptrade量化交易功能之盘口扫单】
    恒生Ptrade——盘口扫单盘口扫单主要是对股票代码的行情的实时监控,然后分批次的按目标数量的买入。点击“盘口扫单”-输入需要盘口扫单的股票代码-设置目标扫单数量-选择买卖方向-设置最高限价-选择扫盘盘口-设置扫盘比例-设置扫盘时间-委托量大时可以设置拆单策略......
  • 磁力猫官网cilimao,获取磁力链接的操作步骤
    磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远的磁力链接下载成功的几率越小,因为持有该资源的节......
  • vue3 通过ref获取元素离顶部的距离
    vue3版本 ^3.2.45[ref].value.$el.getBoundingClientRect().top通过ref获取元素。使用 getBoundingClientRect().top 获取离顶部的距离  Vue无法读取HTMLCollection列表的length问题解决方案实践项目时候发现一个问题在mounted阶段,获取Element对象,console.l......
  • 【JS封装-兼容IE(较旧版本如IE8及以下)】强化编程实践:精选JavaScript函数封装集锦-添加E
    目录添加Event监听获取非行间样式JSON.parse与JSON.stringifyquerySelector与querySelectorAll的兼容支持跨浏览器的classList操作兼容性处理console.log兼容性处理forEach方法Promise的兼容性处理FetchAPI的兼容性处理添加Event监听IE8及以下版本不支持addEvent......
  • 自定义注解获取属性对应枚举的翻译值
    平时在开发的时候难免会遇到枚举来翻译类,于是写一个自定义注解来在开发的时候自动翻译枚举的值相关代码如下:@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documented@JacksonAnnotationsInsidepublic@interfaceEnumShow{/***要转换......