量化研究–ptrade下载全部财务数据教程

fields:指明数据结果集中所需输出业务字段,支持多个业务字段输出(list类型),如fields=[‘settlement_provi’, ‘client_provi’](list[str]);输出具体字段请参考
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)。
-
‘1’:表示获取一季度财报 -
‘2’:表示获取半年报 -
‘3’:表示获取截止到三季度财报 -
‘4’:表示获取年度财报
(已废弃)date_type:数据参考时间设置,该参数只适用于按日期查询模式(date参数模式)(int) :
(已废弃)date_type不传或传入date_type = None,返回发布日期(publ_date)在查询日期(date)之前指定财报类型数据(report_types),若未指定财报类型(report_types)则默认为离查询日期(date)最近季度的数据,数据未公布用NAN填充(已废弃)date_type传入1,返回会计周期(end_date)在查询日期(date)之前指定财报类型数据(report_types),若未指定财报类型(report_types)则默认为查询日期(date)最近季度会计周期的数据,数据未公布用NAN填充
merge_type:数据更新设置;相关财务数据信息会不断进行修正更新,为了避免未来数据影响,可以通过参数获取原始发布或最新发布数据信息;只有部分表包含此字段(int) :
-
merge_type不传或传入merge_type = None,获取首次发布的数据,即使实际数据发生变化,也只返回原样数据信息;回测场景为避免未来数据建议使用此模式 -
merge_type传入1,获取已发布财报数据的更新数据,更新数据范围包括但不限于相关日期数据,研究场景或交易场景建议使用此模式,但需要指定报告期,否则会获取到历史最近一期有过更新情况的财报数据(不一定是最近一个财报期)
is_dataframe:True-返回DataFrame格式;False-返回pandas.Panel格式(默认,仅python3.5的按年份查询模式有效)。
注意:
-
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. 按日期查询模式(默认以发布日期为参考时间):返回输入日期之前对应的财务数据# 在回测中获取单一股票中对应回测日期资产负债表中资产总计(total_assets)数据get_fundamentals('.SS','balance_statement','total_assets','20160628')# 2. 按年份查询模式:返回输入年份范围内对应季度的财务数据# 获取恒生电子(600570.SS)从2013年至2015年第一季度资产负债表中资产总计#(total_assets)数据get_fundamentals('0.SS','balance_statement','total_assets',start_year='2013',end_year='2015', report_types='1')










'''下载全部财务数据'''import pandas as pddef initialize(context):# 初始化策略g.path=get_research_path()g.start_year='2014'g.end_year='2060'run_daily(context, func=down_data, time='14:15')def handle_data(context, data):passdef down_data(context):'''下载数据函数'''print("营运能力下载数据函数*********************************")stock_list=get_Ashares()print(stock_list)df=get_fundamentals(stock_list,'operating_ability',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/营运能力.xlsx'.format(g.path))print('营运能力数据下载完成******************************************')#####################################################################df=get_fundamentals(stock_list,'eps',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/每股指标.xlsx'.format(g.path))print('每股指标数据下载完成******************************************')###########################################################################df=get_fundamentals(stock_list,'profit_ability',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/盈利能力.xlsx'.format(g.path))print('盈利能力数据下载完成******************************************')#####################################df=get_fundamentals(stock_list,'growth_ability',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/成长能力.xlsx'.format(g.path))print('成长能力数据下载完成******************************************')########################################################df=get_fundamentals(stock_list,'cashflow_statement',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/现金流量表.xlsx'.format(g.path))print('现金流量表数据下载完成******************************************')####################################################df=get_fundamentals(stock_list, 'valuation', date = '20500101')df.to_excel(r'{}/估值数据.xlsx'.format(g.path))print('估值数据数据下载完成******************************************')#########################################################################df=get_fundamentals(stock_list,'debt_paying_ability',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/偿债能力.xlsx'.format(g.path))print('偿债能力数据下载完成******************************************')#######################################df=get_fundamentals(stock_list,'income_statement',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/利润表.xlsx'.format(g.path))print('利润表数据下载完成******************************************')#######################################df=get_fundamentals(stock_list,'balance_statement',start_year=g.start_year,end_year=g.end_year)df.to_excel(r'{}/资产负债表.xlsx'.format(g.path))print('数据下载完成******************************************')
夜雨聆风