Python金融应用之提取交易日+合并截面数据
来源:雪球App,作者: 西瓜财经资讯,(https://xueqiu.com/9877481013/154130315)
NO.160
2020.07.15
工欲善其事,必先利其器
//
- 前言 -
◆ ◆ ◆ ◆
今天,小咖来讲讲如何利用Python提取最近交易日、前一周交易日、前一月交易日、前一季度交易日等,并提取各个交易日的PE截面数据然后合并成单一表格,最终将导出以下结果。
资料来源:西瓜财经资讯
- 利用python进行金融处理 -
◆ ◆ ◆ ◆
为了实现以上功能需要进行以下完整步骤:
第一步:安装各种包
资料来源:西瓜财经资讯
第二步:提取交易日数据
资料来源:西瓜财经资讯
(1)首次使用Python的wind接口时,需要进行如下操作:wind客户端——量化——修复插件——修复Python接口。
(2)在导入“包”时已经导入了Windpy,并设置为w,之后的语句直接使用w即可。
(3)语句需要以w.start() 开始,否则所有与wind相关的程序都无法运行,但只要运行一次后不用重复运行。
(4)通常我们需要根据当天日期来查找最近交易日,为了实现python运行的自动化,先确定当天日期,主要使用today1=datetime.today() ,并利用datetime.strftime将其转为str。
(5)以当天日期为要素,然后根据wind的wsd函数得到 沪深300 最近365个交易日收盘价,这里为了便利不再将其转化为dateframe。注意得到的frame1为升序排列,因此最近交易日在最后一行,且一共有两列,第一列为日期。(为了下图的可视化小咖还是进行了dateframe转换的操作,但是如果单纯根据本文语句则无法显示如下dateframe)
资料来源:西瓜财经资讯
(6)设置timedelta这一空list,然后利用循环从表格中提取日期要素。frame1.Data[i][t]可以直接提取数据,i从0开始代表列数,t从0开始代表行数。由于frame1为升序排列,所以frame1.Data[0][-1]即代表第一列+倒数第二行,即前一交易日的日期数据。然后根据append将提取出的各个交易日合并至timedelta中。
资料来源:西瓜财经资讯
第三步:提取科创板成分上述交易日的PE数据
资料来源:西瓜财经资讯
(1)根据wset函数获取科创板成分,不用生成dateframe可以直接提取科创板代码,原理同上面的frame1。code的结果如下:
资料来源:西瓜财经资讯
(2)先用timedelta[0]即最近交易日得到一个有证券名称和和最近交易日PE的基础表。之前我们往往通过以下语句得到dateframe:
date1=w.wss(code,"sec_name,pe_ttm","tradeDate="+timedelta[0])
data1frame=pd.DataFrame(data=np.mat(date1.Data).T,index=date1.Codes)
但是经过对wind的探索,发现通过增加"error,"和“usedf=True”可以直接生成dateframe,语句如下:
error,data1=w.wss(code,"sec_name,pe_ttm","tradeDate="+timedelta[0],usedf=True)
资料来源:西瓜财经资讯
(3)根据剩下交易日生成各个日期的PE截面数据并直接在循环中合并。
资料来源:西瓜财经资讯
第四步:导出自动命名的表格
(1)excel表格名称设置为——科创板动态市盈率'+today+',即可以得到动态命名的表格。
资料来源:西瓜财经资讯
资料来源:西瓜财经资讯
资料来源:西瓜财经资讯
- 后言 -
◆ ◆ ◆ ◆Python金融应用之提取交易日+合并截面数据
想要获取源代码的小伙伴关注公众号,后台回复“Python金融应用之提取交易日+合并截面数据”即可。注意,源代码可以直接粘贴使用,而且是带文字说明的哦。