量化交易API文档分享,ptrade量化交易软件python策略编写
获取股票信息
get_stock_name - 获取股票名称
get_stock_name(stocks)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口可获取股票、可转债、ETF等名称。
注意事项:
无
参数
stocks:股票代码(list[str]/str);
返回
股票名称字典,dict类型,key为股票代码,value为股票名称,当没有查询到相关数据或者输入有误时value为None(dict[str:str]);
{'600570.SS': '恒生电子'}
示例
展开全文
get_stock_info - 获取股票基础信息
get_stock_info(stocks, field=None)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口可获取股票、可转债、ETF等基础信息。
注意事项:
field不做入参时默认只返回stock_name字段
参数
stocks:股票代码(list[str]/str);
field:指明数据结果集中所支持输出字段(list[str]/str),输出字段包括 :
stock_name -- 股票代码对应公司名(str:str);
listed_date -- 股票上市日期(str:str);
de_listed_date -- 股票退市日期,若未退市,返回2900-01-01(str:str);
返回
嵌套dict类型,包含内容为field中指定内容,若field=None,返回股票基础信息仅包含对应公司名(dict[str:dict[str:str,...],...])
{'600570.SS': {'stock_name': '恒生电子', 'listed_date': '2003-12-16', 'de_listed_date': '2900-01-01'}}
示例
get_stock_status – 获取股票状态信息
get_stock_status(stocks, query_type='ST', query_date=None)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口用于获取指定日期股票的ST、停牌、退市属性。
注意事项:
退市整理期股票不包含在退市状态内,可通过get_stock_name函数判断股票名称是否包含【退】确认退市整理期代码
参数
stocks: 例如 ['000001.SZ','000003.SZ']。该字段必须输入,否则返回None(list[str]/str);
query_type: 支持以下三种类型属性的查询,默认为'ST'(str);
具体支持输入的字段包括 :
'ST' – 查询是否属于ST股票
'HALT' – 查询是否停牌
'DELISTING' – 查询是否退市
query_date: 格式为YYYYmmdd,默认为None,表示当前日期(回测为回测当前周期,研究与交易则取系统当前时间)(str);
返回
返回dict类型,每支股票对应的值为True或False,当没有查询到相关数据或者输入有误时返回None(dict[str:bool,...]);
{'600570': None}
示例
get_stock_exrights - 获取股票除权除息信息
get_stock_exrights(stock_code, date=None)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口用于获取股票除权除息信息。
注意事项:
无
参数
stock_code; str类型, 股票代码(str);
date: 查询该日期的除权除息信息,默认获取该股票历史上所有除权除息信息,e.g. '20180228'/20180228/datetime.date(2018,2,28)(str/int/datetime.date)
返回
输入日期若没有除权除息信息则返回None,有相关数据则返回pandas.DataFrame类型数据
例如输入get_stock_exrights('600570.SS'),返回
allotted_ps rationed_ps rationed_px bonus_ps exer_forward_a exer_forward_b exer_backward_a exer_backward_b
date
20040604 0.0 0.0 0.0 0.43 0.046077 -1.433 1.000000 0.430
20050601 0.5 0.0 0.0 0.20 0.046077 -1.413 1.500000 0.630
20050809 0.4 0.0 0.0 0.00 0.069115 -1.404 2.100000 0.630
20060601 0.4 0.0 0.0 0.11 0.096762 -1.404 2.940000 0.861
20070423 0.3 0.0 0.0 0.10 0.135466 -1.394 3.822000 1.155
20080528 0.6 0.0 0.0 0.07 0.176106 -1.380 6.115200 1.422
20090423 0.5 0.0 0.0 0.10 0.281770 -1.368 9.172799 2.034
20100510 0.4 0.0 0.0 0.05 0.422654 -1.340 12.841919 2.492
20110517 0.0 0.0 0.0 0.05 0.591716 -1.318 12.841919 3.134
20120618 0.0 0.0 0.0 0.08 0.591716 -1.289 12.841919 4.162
20130514 0.0 0.0 0.0 0.10 0.591716 -1.242 12.841919 5.446
20140523 0.0 0.0 0.0 0.16 0.591716 -1.182 12.841919 7.501
20150529 0.0 0.0 0.0 0.18 0.591716 -1.088 12.841919 9.812
20160530 0.0 0.0 0.0 0.26 0.591716 -0.981 12.841919 13.151
20170510 0.0 0.0 0.0 0.10 0.591716 -0.827 12.841919 14.435
20180524 0.0 0.0 0.0 0.29 0.591716 -0.768 12.841919 18.159
20190515 0.3 0.0 0.0 0.32 0.591716 -0.597 16.694494 22.269
20200605 0.3 0.0 0.0 0.53 0.769231 -0.407 21.702843 31.117
返回结果字段介绍:
date -- 日期(索引列,类型为int64);
allotted_ps -- 每股送股(str:numpy.float64);
rationed_ps -- 每股配股(str:numpy.float64);
rationed_px -- 配股价(str:numpy.float64);
bonus_ps -- 每股分红(str:numpy.float64);
exer_forward_a -- 前复权除权因子A;用于计算前复权价格(前复权价格=A*价格+B)(str:numpy.float64)
exer_forward_b -- 前复权除权因子B;用于计算前复权价格(前复权价格=A*价格+B)(str:numpy.float64)
exer_backward_a -- 后复权除权因子A;用于计算后复权价格(后复权价格=A*价格+B)(str:numpy.float64)
exer_backward_b -- 后复权除权因子B;用于计算后复权价格(后复权价格=A*价格+B)(str:numpy.float64)
示例
get_stock_blocks - 获取股票所属板块信息
get_stock_blocks(stock_code)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口用于获取股票所属板块。
注意事项:
该函数获取的是当下的数据,因此回测不能取到真正匹配回测日期的数据,注意未来函数
已退市股票无法成功获取数据,接口会返回None
参数
stock_code: 股票代码(str);
返回
获取成功返回dict类型,包含所属行业、板块等详细信息(dict[str:list[list[str,str],...],...]),获取失败返回None。返回数据如:
'HGT': [['HGTHGT.XBHK', '沪股通']],
'HY': [['710200.XBHS', '计算机应用']],
'DY': [['DY1172.XBHS', '浙江板块']],
'ZJHHY': [['I65000.XBHS', '软件和信息技术服务业']],
'GN': [['003596.XBHS', '融资融券'], ['003631.XBHS', '转融券标的'], ['003637.XBHS', '互联网金融'], ['003665.XBHS', '电商概念'], ['003707.XBHS', '沪股通'], ['003718.XBHS', '证金持股'], ['003800.XBHS', '人工智能'], ['003830.XBHS', '区块链'], ['031027.XBHS', 'MSCI概念'], ['B10003.XBHS', '蚂蚁金服概念']]
示例
get_index_stocks- 获取指数成分股
get_index_stocks(index_code,date)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口用于获取一个指数在平台可交易的成分股列表,指数列表
注意事项:
1、在回测中,date不入参默认取当前回测周期所属历史日期
2、在研究中,date不入参默认取的是当前日期
3、在交易中,date不入参默认取的是当前日期
参数
index_code:指数代码,尾缀必须是.SS 如沪深300:000300.SS(str)
date:日期,输入形式必须为'YYYYMMDD',如'20170620',不输入默认为当前日期(str);
返回
返回股票代码的list(list[str,...])。
['000001.SZ', '000002.SZ', '000063.SZ', '000069.SZ', '000100.SZ', '000157.SZ', '000425.SZ', '000538.SZ', '000568.SZ', '000625.SZ', '000651.SZ', '000725.SZ', '000728.SZ', '000768.SZ', '000776.SZ',
'000783.SZ', '000786.SZ', ..., '603338.SS', '603939.SS', '603233.SS', '600426.SS', '688126.SS', '600079.SS', '600521.SS', '600143.SS', '000800.SZ']
示例
get_etf_stock_list - 获取ETF成分券列表
get_etf_stock_list(etf_code)
使用场景
该函数仅支持Ptrade客户端可用、仅在股票交易模块可用
接口说明
该接口用于获取目标ETF的成分券列表
注意事项:
无
参数
etf_code : 单支ETF代码,必传参数(str)
返回
正常返回一个list类型字段,包含每只etf代码所对应的成分股。异常返回空list,如[](list[str,...])
['600000.SS', '600010.SS', '600016.SS']
示例
get_industry_stocks- 获取行业成份股
get_industry_stocks(industry_code)
使用场景
该函数在研究、回测、交易模块可用
接口说明
该接口用于获取一个行业的所有股票,行业列表
注意事项:
该函数获取的是当下的数据,因此回测不能取到真正匹配回测日期的数据,注意未来函数
参数
industry_code: 行业编码,尾缀必须是.XBHS 如农业股:A01000.XBHS(str)
返回
返回股票代码的list(list[str,...])
['300970.SZ', '300087.SZ', '300972.SZ', '002772.SZ', '000998.SZ', '002041.SZ', '600598.SS', '600371.SS', '600506.SS', '300511.SZ', '600359.SS', '600354.SS', '601118.SS', '600540.SS', '300189.SZ',
'600313.SS', '600108.SS']
示例
get_fundamentals-获取财务数据
get_fundamentals(security, table, fields=None, date=None, start_year=None, end_year=None, report_types=None, merge_type=None)
使用场景
该函数可在研究、回测、交易模块使用
接口说明
该接口用于获取财务三大报表数据、日频估值数据、各项财务能力指标数据。
注意事项:
1、该接口为http在线获取,会存在因网络拥堵等原因导致应答失败的情况,如果返回数据结果为空请多次尝试,策略中请增加保护机制。
2、该接口有流量限制,每秒不得调用超过100次,单次最大调用量是500条数据,每一条数据的定义为:一个股票对应一个表的一个字段,相当于最大不超过5万条。因此如果涉及多股多字段的查询要考虑限流情况,依据实际调用场景加入sleep做时间间隔,方法可参考示例。
参数
为保持各表接口统一,输入字段略有不同,具体可参见 财务数据的API接口说明
security:一支股票代码或者多只股票代码组成的list(list[str])
table:财务数据表名,输入具体表名可查询对应表中信息(str)
表名包含内容valuation估值数据balance_statement资产负债表income_statement利润表cashflow_statement现金流量表growth_ability成长能力指标profit_ability盈利能力指标eps每股指标operating_ability营运能力指标debt_paying_ability偿债能力指标
fields:指明数据结果集中所需输出业务字段,支持多个业务字段输出(list类型),如fields=['settlement_provi', 'client_provi'](list[str]);输出具体字段请参考 财务数据的API接口说明
date:查询日期,按日期查询模式,返回查询日期之前对应的财务数据,输入形式如'20170620',回测中支持datetime.date时间格式输入,不能与start_year与end_year同时作用。回测中,支持按日期查询模式,不传入date默认取回测时的日期(str);
start_year:查询开始年份,按年份查询模式,返回输入年份范围内对应的财务数据,如'2015',start_year与end_year必须同时输入,且不能与date同时作用(str)
end_year:查询截止年份,按年份查询模式,返回输入年份范围内对应的财务数据,如'2015',start_year与end_year必须同时输入,且不能与date同时作用(str)
report_types:财报类型;如果为年份查询模式(start_year/end_year),不输入report_types返回当年可查询到的全部类型财报;如果为日期查询模式(date),不输入report_types返回距离指定日期最近一份财报(str)。
report_types='1':表示获取一季度财报
report_types='2':表示获取半年报
report_types='3':表示获取截止到三季度财报
report_types='4':表示获取年度财报
merge_type:数据更新设置;相关财务数据信息会不断进行修正更新,为了避免未来数据影响,可以通过参数获取原始发布或最新发布数据信息;只有部分表包含此字段(int) :
merge_type不传或传入merge_type = None,获取首次发布的数据,即使实际数据发生变化,也只返回原样数据信息;回测场景为避免未来数据建议使用此模式
merge_type=传入1,获取已发布财报数据的更新数据,更新数据范围包括但不限于相关日期数据,研究场景或交易场景建议使用此模式,但需要指定报告期,否则会获取到历史最近一期有过更新情况的财报数据(不一定是最近一个财报期)
注意:
date字段与start_year/end_year不能同时输入,否则按日期查询模式(date参数模式)
当date和start_year/end_year相关数据都不传入时,默认为按日期查询模式(date参数模式),研究和回测中date取值有所不同:在研究中,date取的是当前日期
fields不入参的情况下,date必须参数名入参,否则会报错。正确调用示例:get_fundamentals('600570.XSHG', 'balance_statement', date='2018-06-01')
返回
返回值形式根据输入参数类型不同而有所区分:
1.按日期查询模式(date参数模式)返回数据类型为pandas.DataFrame类型,索引为股票代码,如get_fundamentals('600000.SS','balance_statement',date='20161201')将返回:
secu_abbrend_datepubl_datetotal_assets……total_liability600000.SS浦发银行2016-09-302016-10-295.56e+12......5.20e+12
2.按年份查询模式(start_year/end_year参数模式)返回数据类型为pandas.Panel类型,索引为股票代码,其中包含的DataFrame索引为返回股票对应会计日期(end_date),如get_fundamentals(['600000.SS', '600570.SS', '000002.SZ'], 'balance_statement', start_year='2016', end_year='2016')将返回:
示例
后续小编会持续更新关于ptrade使用的内容,关于ptrade开通的问题可以随时私信评论或者留言哦!小编会第一时间回复的!
评论