量化研究--ptrade下载全部财务数据教程 最近在做量化研究需要使用到全部的财务数据我看了很多平台ptrade的数据比较全面我们怎么样第哦啊有代码下载全部的财务数据保存到本地做研究今天我给研究的教程先看一下财务数据的读取接口对应的参数说明fields指明数据结果集中所需输出业务字段支持多个业务字段输出(list类型)如fields[settlement_provi, client_provi](list[str])输出具体字段请参考date查询日期按日期查询模式返回查询日期之前对应的财务数据输入形式如20170620支持datetime.date时间格式输入不能与start_year与end_year同时作用支持按日期查询模式不传入date时默认取回测日期的上一个交易日数据(str)start_year查询开始年份按年份查询模式返回输入年份范围内对应的财务数据如2015start_year与end_year必须同时输入且不能与date同时作用(str)end_year查询截止年份按年份查询模式返回输入年份范围内对应的财务数据如2015start_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_dataframeTrue-返回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, date2018-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_year2013,end_year2015, report_types1)根据上面的思路我们可以下载全部的财务数据我用2014年开始下载大概的思路是先读取研究环境的路径设置开始的时间读取全市场的股票代码在报告期没有上市的股票财务数据是空的比如2024年没有上市的标的这个函数是读取最新全市场股票写好代码挂模型交易就会自动下载数据设置好下载的时间挂策略交易就可以下载好的数据保存在交易环境里面研究里面点击数据点击下载按钮就可以保存到本地点击鼠标右键选择下载按钮就可以下载的数据还是很不错的可以自己保存到本地研究不懂的问我就可以代码参考学习。不做交易参考 下载全部财务数据 import pandas as pd def initialize(context): # 初始化策略 g.pathget_research_path() g.start_year2014 g.end_year2060 run_daily(context, funcdown_data, time14:15) def handle_data(context, data): pass def down_data(context): 下载数据函数 print(营运能力下载数据函数*********************************) stock_listget_Ashares() print(stock_list) dfget_fundamentals(stock_list,operating_ability,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/营运能力.xlsx.format(g.path)) print(营运能力数据下载完成******************************************) ##################################################################### dfget_fundamentals(stock_list,eps,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/每股指标.xlsx.format(g.path)) print(每股指标数据下载完成******************************************) ########################################################################### dfget_fundamentals(stock_list,profit_ability,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/盈利能力.xlsx.format(g.path)) print(盈利能力数据下载完成******************************************) ##################################### dfget_fundamentals(stock_list,growth_ability,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/成长能力.xlsx.format(g.path)) print(成长能力数据下载完成******************************************) ######################################################## dfget_fundamentals(stock_list,cashflow_statement,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/现金流量表.xlsx.format(g.path)) print(现金流量表数据下载完成******************************************) #################################################### dfget_fundamentals(stock_list, valuation, date 20500101) df.to_excel(r{}/估值数据.xlsx.format(g.path)) print(估值数据数据下载完成******************************************) ######################################################################### dfget_fundamentals(stock_list,debt_paying_ability,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/偿债能力.xlsx.format(g.path)) print(偿债能力数据下载完成******************************************) ####################################### dfget_fundamentals(stock_list,income_statement,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/利润表.xlsx.format(g.path)) print(利润表数据下载完成******************************************) ####################################### dfget_fundamentals(stock_list,balance_statement,start_yearg.start_year,end_yearg.end_year) df.to_excel(r{}/资产负债表.xlsx.format(g.path)) print(数据下载完成******************************************)