R:基于每股权益的量化分析 —— PEG估值法

PEG指标概念

PEG指标即市盈率相对盈利增加比率(EPS增加率),是由上市公司的市盈率除以盈利增加速度获得的数值。该指标既能够经过市盈率考察公司目前的财务情况,又经过盈利增加速度考察将来一段时期内公司的增加预期,所以是一个比较完美的选股参考指标。git


PEG指标的计算方法

PEG的中文名称为市盈率相对盈利增加比率,该指标的计算公式为:code

PEG=市盈率÷盈利增加比率it


PEG指标的应用

用PEG指标选股的好处就是将市盈率和公司业绩成长性对比起来看,其中的关键是要对公司的业绩做出准确的预期。io

所谓PEG,是用公司的市盈率(PE)除以公司将来3或5年的每股收益复合增加率。好比一只股票当前的市盈率为20倍,其将来5年的预期每股收益复合增加率为20%,那么这只股票的PEG就是1。方法

当PEG等于1时,代表市场赋予这只股票的估值能够充分反映其将来业绩的成长性。数据

当PEG大于1时,则这只股票的价值就可能被高估,或市场认为这家公司的业绩成长性会高于市场的预期。一般,那些成长型股票的PEG都会高于1,甚至在2以上,投资者愿意给予其高估值,代表这家公司将来颇有可能会保持业绩的快速增加,这样的股票就容易有超出想象的市盈率估值。top

当PEG小于1时,要么是市场低估了这只股票的价值,要么是市场认为其业绩成长性可能比预期的要差。一般价值型股票的PEG都会低于1,以反映低业绩增加的预期。di

投资者须要注意的是,像其余财务指标同样,PEG也不能单独使用,必需要和其余指标结合起来,这里最关键的仍是对公司业绩的预期。行业


PEG适用条件

PEG侧重于公司的成长性,即适用于寻找高增加公司中被低估的股票。应该配合市净率、公司市值、净资产收益率等指标使用。把PEG估值法和市净率结合起来就基本能够肯定一只股票是高估仍是低估。一只股票看起来PEG小于或等于1,但若是市净率高达10倍以上,仍然极有可能被高估了。若是一只股票市盈率和市净率都很低,而且PEG小于1,那么基本上能够肯定是低估了。投资者不能仅看公司自身的PEG来确认它是高估仍是低估,若是某公司股票的PEG为12,而其余成长性相似的同行业公司股票的PEG都在15以上,则该公司的PEG虽然已经高于1,但价值仍可能被低估。co


PEG计算

> library(openxlsx)

> options(digits=3)     #设置当前环境的小数点位数

> stockEPS<-read.xlsx("C:/Users/steph/Desktop/stock/stockEPS.xlsx",colNames=T)    #导入股票前三季度的每股权益数据

> Q3EPS<-as.numeric(stockEPS$Q3EPS)

> Q2EPS<-as.numeric(stockEPS$Q2EPS)

> Q1EPS<-as.numeric(stockEPS$Q1EPS)

> EPS<-data.frame(code=stockEPS$code,Q3EPS,Q2EPS,Q1EPS)

> stockInfo<-read.xlsx("C:/Users/steph/Desktop/stock/stockInfo.xlsx",colNames=T)    #导入股票代码、名称、现价信息

> price<-as.numeric(stockInfo$price)

> Info<-data.frame(code=stockInfo$code,name=stockInfo$name,price)

> stockdata<-merge(Info,EPS,by.Info=code,by.EPS=code)    #合并数据框

> newdata<-subset(stockdata,price>0&stockdata$Q3EPS>0&stockdata$Q1EPS>0)    #筛选现价和每股权益大于0的记录

> PE<-newdata$price/(newdata$Q3EPS/3*4)    #将每股权益年化和计算股票的市盈率

> seasonrate<-(newdata$Q3EPS/newdata$Q1EPS)^(1/2)-1    #计算季度的EPS增加率

> EPSrate<-(1+seasonrate)^4-1    #季度的EPS增加率进行年化计算

> PEG<-PE/EPSrate    #计算PEG

> res<-ifelse( PEG>0& PEG<1,T,F)

> mydata<-data.frame(code=newdata$code,name=newdata$name,PE,EPSrate,PEG,res)

> finaldata<-subset(mydata,res==T)    #筛选符合条件的股票

> length(finaldata[,1])    #计算符合条件股票的个数

(End)

相关文章
相关标签/搜索