基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

2023年10月12日14:59:261,168

使用市盈率选股,被《基本面量化选股》一书证明了是一种有效的投资策略。

本文市盈率是指滚动市盈率(市盈率TTM)

使用市盈率选股,面临两个问题:

1.市盈率多低才算低估?多高才算高估?

2.如何避免买入“低估值陷阱”的股票?

一、市盈率的市场分布

市场是有效的。市盈率的高低,不是由投资者或机构决定的,而是由股票市场决定的。

新兴市场的市盈率水平普遍高于成熟市场。欧美股市的市盈率一般在15倍左右,亚洲发展中国家的市盈率一般在30倍左右。即使优秀如苹果公司,今天的市盈率也只有25倍。

因此,利用市盈率对股票估值,应该结合本国股市的市场现实。

下表是我统计的股票市盈率的比例分布状况,时间节点为2022年9月14日。

表1 A股市盈率分组百分比

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

4908家股票中:

负市盈率,占比19.5%,这有点出乎我的意料;

市盈率0-15倍,占比12.1%;

市盈率15-30倍,占比24.0%;

市盈率30-50倍,占比18.9%;

市盈率50-100倍,占比15.2%;

市盈率100-200倍,占比5.9%;

市盈率200-300倍,占比1.9%;

市盈率300-500倍,占比1.2%;

市盈率500倍以上,占比1.3%。

A股的绝大部分股票,市盈率落在0-100倍之间,这点大家可记下来。改天我要利用这个数据做标准化处理。市盈率0-30倍股票占比,合计36.1%。

市盈率分组分布图,如下所示:

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

图1 A股市盈率分组百分比

《基本面量化选股》一书,证明了负市盈率股票收益远落后于市场整体收益。

于是,我把负市盈率股票剔除,重新计算各市盈率范围的市场分布状况。

表2 A股市盈率分组百分比(剔除亏损股)

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

3950家股票中:

市盈率0-15倍,占比15.0%;

市盈率15-30倍,占比29.8%;

市盈率30-50倍,占比23.4%;

市盈率50-100倍,占比18.8%;

市盈率100-200倍,占比7.4%;

市盈率200-300倍,占比2.3%;

市盈率300-500倍,占比1.5%;

市盈率500倍以上,占比1.6%。

在非亏损股票中,市盈率0-30倍股票占比合计44.8%,因此以市盈率30倍作为股票高估、低估的标准,应当是较为科学的。市盈率低于15倍,属于较严重的低估。

在熊市,市盈率30倍以下的股票数量占比偏高,当前约45%;在牛市中,市盈率30倍以下的股票数量占比会大大下降,应该会在30%上下。从这方面来说,我认为30倍也是合理的。

动态地看,如果将来中国股市市盈率20倍以下股票占比30-40%,那就应该以市盈率20倍作为股票高估、低估的标准。

二、如何避免买入“低估值陷阱”的股票?

《基本面量化选股》一书的数据回测,证明了市盈率最低的分组并不是收益最高的,市盈率第二低、第三低分组的收益率才是最高的。造成这一结果的原因,就是“低估值陷阱”。

有关“低估值陷阱”,详见这篇文章:“低估值陷阱”股票

结合前面的结论,我以市盈率低于15倍为“严重低估”

首先,我找到容易陷入“低估值陷阱”的行业股票,比如钢铁行业中的宝钢股份。

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

图2 宝钢股份市盈率历史走势

观察宝钢股份市盈率历史走势,大家可看到2017年1月-2022年9月,宝钢股份的市盈率一直都在15倍以下,市盈率低于15倍的时间占比高达100%。因此,我们可以以市盈率低于15倍的时间占比来剔除“低估值陷阱”的股票。

以上是基本的思路。

在编写指标时,我约定:过去5年市盈率低于15倍的时间占比大于30%,则是“低估值陷阱”股票。同时,约定上市时间至少为2年。

如果从《基本面量化选股》一书中的最低市盈率分组中剔除“低估值陷阱”股票,那么最低市盈率分组的投资收益应该是最高的。

利用指标对9月14日的股票进行筛选,共找出469只“低估值陷阱”股票。从数据中可看出,银行、地产、基建、煤炭、路桥、港口、资源等行业,是“低估值陷阱”的重灾区。

表3仅展示了前50只股票。

表3   “低估值陷阱”股票(2022.9.14)

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

以下为指标的代码:

-------------------

{公式名称:x市盈率}

{公式描述:市盈率及历史百分位}

{画图方法:副图}

{p:0,999999,1250}

days:=count(c>0,0);

除权否:=splitbars(0,0)=0;

n:=split(0,0);

rn:=1/if(除权否,1-n,1);

净利润ttm:=finvalue(276)/10000/10000;

{近一年净利润}

总股本:=rn*finance(1)/10000/10000;

总市值:=总股本*c;

ttm:=总市值/净利润ttm;

{如市盈率为负值,则赋值为-1}

市盈率ttm:if(ttm<0,-1,if(ttm=0,dynainfo(40),ttm));

cpe:=const(市盈率ttm),nodraw;  hpe:=hhv(市盈率ttm,p),nodraw;

lpe:=llv(市盈率ttm,p),nodraw;

pe空间位:100*(市盈率ttm-lpe)/(hpe-lpe);

{pe时间位,仅对当日周期有效}

pe时间位:=100*count(市盈率ttm<cpe,p)/p,nodraw;

{一般推荐使用选股1条件选股}

选股1:市盈率ttm<30 and pe空间位<30,nodraw;

{懂指标的人,推荐用选股2条件选股}

选股2:市盈率ttm<30 and pe空间位<30 and pe时间位<30,nodraw;

trap:=100*count(市盈率ttm<15,p)/min(p,days),nodraw;

低估值陷阱:trap*if(trap>30 and between(市盈率ttm,0,15) and days>500,1,0),nodraw;

-------------------

基本面量化投资07 如何利用市盈率选股?如何剔除低估值陷阱的股票?

图3  指标编辑器界面,请记得输入参数!

注意事项:

1.需要在通达信中提前下载专业财务数据。

2.需要利用下箭头将k线图缩小,以加载5年的财务数据。

3.市盈率时间百分位仅对当日周期有效!

4.有人问为什么昨天的指标软件提示错误?结果我发现他们没有输入参数P!请一定认真查看指标编辑器界面图片!

  • 特别声明:本文由互联网用户自行发布,仅供参考,不作为投资建议。股市有风险,炒股需谨慎!
  • 本文链接:https://www.gpboke.com/33459.html