




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
上市公司综合评价指标选择、数据处理主成分分析与综合排名投资组合收益率计算与量化投资策略设计基于成长与价值指标的综合评价(指标选择)第8章
选取的价值指标包括市盈率、市现率、市净率、市盈率增长率,选取的成长指标包括净利润增长率、营业收入增长率、营业利润率、净资产收益率,共8个指标包括2013年—2017年的数据,综合评价按年进行,本案例以2014年为例。字段名称字段中文名称字段说明Stkcd股票代码Accper会计年度2013-12-31、2014-12-31、2015-12-31、2016-12-31、2017-12-31F100101B市盈率今收盘价当期值/(净利润上年报值/实收资本期末值)F100301B市现率今收盘价当期值/(经营活动产生的现金流量净额上年报值/实收资本期末值)F100401A市净率今收盘价当期值/(所有者权益合计期末值/实收资本期末值)F081001B净利润增长率(净利润本年期单季度金额−净利润上一个单季度金额)/净利润上一个单季度金额F081601B营业收入增长率(营业收入本年期单季度金额−营业收入上一个单季度金额)/营业收入上一个单季度金额F051501B营业净利率净利润/营业收入F050501B净资产收益率净利润/股东权益余额PEG市盈率增长率(当前市盈率−上期市盈率)/上期市盈率基于成长与价值指标的综合评价(数据处理)第8章
1.读取2014年的财务指标数据importpandasaspddata=pd.read_excel('data1.xlsx')data2=data.iloc[data['Accper'].values=='2014-12-31',[0,2,3,4,5,6,7,8,9]]2.对最后一个指标PEG进行处理da=da[(da[:,8]<4)&(da[:,8]>-4),:]#消除异常值da[:,8]=1-(da[:,8]-min(da[:,8]))/(max(da[:,8])-min(da[:,8]))#反极差化处理3.对剩下的7个指标均要求大于0,且将8倍均值作为异常值进行剔除处理foriinnp.arange(1,8):da=da[da[:,i]>0,:]
#要求指标值大于0da=da[da[:,i]<8*np.mean(da[:,i]),:]#剔除异常值(8倍均值)基于成长与价值指标的综合评价(数据处理)第8章
4.要求净资产收益率大于0.06
da=da[da[:,6]>=0.06,:]5.数据标准化处理fromsklearn.preprocessingimportMinMaxScalerX=da[:,1:]scaler=MinMaxScaler()scaler.fit(X)X=scaler.transform(X)6.对市盈率、市现率、市净率指标也做反极差化处理#主要目的是实现指标度量的统一,即值越大越好X[:,2]=1-X[:,2]X[:,3]=1-X[:,3]X[:,4]=1-X[:,4]基于成长与价值指标的综合评价(主成分分析)第8章
对标准化之后的指标数据X做主成分分析,提取其主成分,要求累计贡献率在95%以上。fromsklearn.decompositionimportPCApca=PCA(n_components=0.95)#累计贡献率为95%Y=pca.fit_transform(X)
#满足累计贡献率为95%的主成分数据gxl=pca.explained_variance_ratio_
#贡献率基于成长与价值指标的综合评价(综合排名)第8章
1.计算综合得分
importnumpyasnp
F=np.zeros((len(Y)))
foriinrange(len(gxl)):
f=Y[:,i]*gxl[i]
F=F+f2.整理排名结果#第1种方式如下:Fs1=pd.Series(F,index=da[:,0])Fscore1=Fs1.sort_values(ascending=False)#False为降序,True为升序第2种方式如下:co=pd.read_excel('TRD_Co.xlsx')Co=pd.Series(co['Stknme'].values,index=co['Stkcd'].values)Co1=Co[da[:,0]]Fs2=pd.Series(F,index=Co1.values)Fscore2=Fs2.sort_values(ascending=False)#False为降序,True为升序基于成长与价值指标的综合评价(综合排名)第8章
得到两种方式的排名结果基于成长与价值指标的综合评价(投资组合收益率计算)第8章
以排名前20的上市公司股票代码构建投资组合作为计算举例,持有期为2015年5月1日至2015年12月31日,计算其收益率单只股票的收益率计算方法为:以该股票持有期内首个交易日考虑现金红利再投资的收盘价可比价p1买入,持有期内最后交易日的考虑现金红利再投资的收盘价可比价p2卖出,收益率计算公式为(p2-p1)/p1。投资组合的收益率为该组合内所有股票收益率之和2015年交易数据,字段依次表示股票代码、交易日期、收盘价、考虑现金红利再投资的收盘价可比价、不考虑现金红利再投资的收盘价可比价StkcdTrddtClsprcAdjprcwdAdjprcnd6005062015-01-1211.3415.0401914.968796005072015-01-125.1947.96334734.611936005082015-01-1211.4535.22748826.792836005092015-01-129.5856.02117843.483156005102015-01-127.4838.94253229.171786005112015-01-1233.9177.325211158.6509…………………………基于成长与价值指标的综合评价(投资组合收益率计算)第8章
投资组合收益率计算示例代码:trd=pd.read_excel('trd_2015.xlsx')r_list=[]foriinrange(20):code=Fscore1.index[i]dt=trd.iloc[trd.iloc[:,0].values==code,:]I1=dt['Trddt'].values>='2015-05-01'I2=dt['Trddt'].values<='2015-12-31'dtt=dt.iloc[I1&I2,:].sort_values('Trddt')iflen(dtt)>1:p1=dtt.iloc[0,3]p2=dtt.iloc[len(dtt)-1,3]r_list.append((p2-p1)/p1)r_total=sum(r_list)总的收益率为:r_total=0.0563208822523。基于成长与价值指标的综合评价(量化投资策略设计)第8章
将数据处理、主成分分析与综合排名过程,定义为一个函数Fr2;收益率计算,同基于总体规模与投资效率指标的综合评价,也为函数Re。defFr2(data,year):#输入:
#data--财务指标数据
#year--排名年度
#输出:
#Fscore1--排名结果(股票代码形式)
#Fscore2--排名结果(股票名称形式)return(Fscore1,Fscore2)其结果Fscore1、Fscore2、r_list、r_total同前面所述importpandasaspdimportffunimportfun2data=pd.read_excel('data1.xlsx')r1=ffun.Fr2(data,2014)Fscore1=r1[0]Fscore2=r1[1]r2=fun2.Re(Fscore1,'2015-05-01','2015-12-31',20)r_list=r2[0]r_total=r2[1]基于成长与价值指标的综合评价(量化投资策略设计)第8章
量化投资策略:以2013年—2016年的财务指标数据为基础计算其综合排名,并取排名前20和前40的股票构建投资组合,以下一年5月1日~6月30日、5月1日—9月30日、5月1日—12月31日作为持有期,分别计算其投资组合的总收益率,并与同期的沪深300指数收益率进行对比。持有期内指数收益率=(期末收盘指数−期初收盘指数)/期初收盘指数。importpandasaspdimportffun#导入自定义的函数文件importfun2#导入自定义的函数文件data1=pd.read_excel('data1.xlsx')ind300=pd.read_excel('index300.xlsx')list1=[]#存放年度list2=[]#存放持有期list3=[]#存放投资组合收益率list4=[]#存放沪深300指数收益率foryearin[2013,2014,2015,2016]:
fortimein['06-30','09-30','12-31']:
r1=ffun.Fr2(data,year)
r2=fun2.Re(r1[0],str(year+1)+'-05-01',
str(year+1)+'-'+time,20)
r_total=r2[1]
list1.append(year)
list2.append(str(year+1)+'-05-01'+'--'+str(year+1)+'-'+time)
list3.append(r_total)
td1=str(year+1)+'-05-01'
td2=str(year+1)+'-'+time
I1=ind300.iloc[:,1].values>=td1
I2=ind300.iloc[:,1].values<=td2
dt=ind300.iloc[I1&I2,[1,2]].sort_values('Idxtrd01')
p=dt.iloc[:,1].values
list4.append((p[len(p)-1]-p[0])/p[0])#将结果转化为数据框,并导出到ExcelD={'year':list1,'time':list2,'r_total':list3,'index':list4}D=pd.DataFrame(D)D.to_excel('D.xlsx')基于成长与价值指标的综合评价(量化投资策略设计)第8章
排名前20的股票投资组合ID会计年度持有期总收益率沪深300收益率020132014-05-01—2014-06-303.1485626080.004011120132014-05-01—2014-09-309.630419830.136575220132014-05-01—2014-12-3112.850669940.638655320142015-05-01—2015-06-300.830089605−0.06574420142015-05-01—2015-09-30−5.156852664−0.33101520142015-05-01—2015-12-310.056320882−0.22072620152016-05-01—2016-06-300.512823766−0.01855720152016-05-01—2016-09-30−0.4576735270.012378201520
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 2762-2024黄精
- 2025至2030年中国平衡重式电动车数据监测研究报告
- 2025至2030年中国PVC防静电胶地板数据监测研究报告
- 【假期提升】 五升六语文暑假作业(十三)-人教部编版(含答案含解析)
- 2025年消防设施操作员之消防设备中级技能提升训练试卷A卷附答案
- 城步中考数学试题及答案
- 采购与制造分包合同(2篇)
- 高等教育自学考试《00102世界市场行情》模拟试卷二
- 2024年广东省公务员《申论(省市级)》试题真题及答案
- 内燃机基础知识培训课件
- 2025年天翼云解决方案架构师认证考试指导题库-上(单选题)
- 2025年广东省深圳市高考语文一模试卷
- 2025年春人教版英语八年级下册同步课件 Unit 7 Whats the highest mountain in the world课件 Section A 1a-2d
- 2025年哈尔滨铁道职业技术学院单招职业倾向性测试题库必考题
- 行为规范教育中学校长在国旗下讲话:严格要求自己规范自己的行为
- 2025年福建省高职单招职业适应性测试题库及答案解析
- 七下综合世界真奇妙-共享“地球村”
- 2025年信阳职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025-2030年中国eva热熔胶行业运营状况与发展潜力分析报告
- 2024年广东职业技术学院高职单招语文历年参考题库含答案解析
- 第一单元第6课时 小兔子安家(教学课件)-一年级下册数学(北师大版•2024)
评论
0/150
提交评论