楼主: 邢不行
2399 0

[交易策略] 公司估值越低越好吗?买市盈率低的股票究竟是赚是赔?附代码【邢不行】中 [推广有奖]

院士

5%

还不是VIP/贵宾

-

威望
1
论坛币
26743 个
通用积分
135.2753
学术水平
485 点
热心指数
505 点
信用等级
456 点
经验
44525 点
帖子
547
精华
26
在线时间
1111 小时
注册时间
2010-4-30
最后登录
2024-4-1

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
接上文

02

数据获取

1 数据获取

我们首先需要获取每个股票每天的市盈率数据,你可以去新浪财经、东方财富这类网站上抓取,上面的数据较为全面。


但数据纰漏较大,还需要你有一定的爬虫技术。

6.jpg


为此,我提前给大家准备好了所需的数据,它里面包含了每个股票每天的总市值和净利润,两列相除就可以得到相应的市盈率。

7.jpg

如果你需要这个数据的话,可以加我微信xbx1717,都是可以免费发给你的。


2 数据处理

需要注意的是,市盈率计算公式在实际应用中会遇到一些问题,特别是当净利润为0时,公式无法成立。

为此,我们使用它的倒数来规避,即1/市盈率,又叫EP

8.jpg

数据到手后,我们先不买低市盈率的股票,而去买入老师口中需要远离的,也就是高估值、高市盈率、未来低回报的股票。


我们来看看买入之后效果如何?

03

高估值策略

1 策略构建

我们构建如下量化策略:

在每个月的最后一个交易日,我们计算所有股票的EP,选择EP最小(即市盈率最大)的10只股票,在次月的第一个交易日开盘时均仓买入


之后无论涨跌如何都持有不动,等到这个月的最后一个交易日收盘时再把股票卖光。


之后继续选择此时EP最小的股票并买入,如此循环往复。

9.jpg

比如在2009年的12月29日,我选出了当天EP最小的10只股票。


那我就在2010年1月的第一个交易日去均仓买入它们,并一直持有到1月31日再卖光。


此时再选出最新的10只股票去买入,每月重复上述操作即可。

10.jpg


2 策略结果

这个策略的收益我并不推荐手工计算。


我们用Python编程及相应的股票数据来得到结果。


如果你对数据和代码感兴趣的话,可以加我微信xbx1717,都是可以免费发给你的。

11.jpg

代码运行结果如图所示:


黄色曲线是代表大盘的沪深300指数,它从2010年至今基本没涨,你可以永远相信A股。


蓝色曲线是我们策略的结果,甚至连沪深300指数都没有跑赢,属实拉垮。

12.jpg


如果仔细观察这张图,我们甚至还可以得到几个有趣的结论:

13.jpg


04

低估值策略


既然高市盈率的股票不能买,那我们买入那些低市盈率的股票会如何?


1 策略构建

我们仍旧执行之前的策略,只不过这次选择EP最大(即市盈率最低)的10只股票,其他条件完全不变。

14.jpg


2 策略结果

我们还是用Python编程及相应的数据来计算。

如果你对数据和代码感兴趣的话,可以加我微信xbx1717,都是可以免费发给你的。

15.jpg


代码运行之后,最终结果如图所示:

16.jpg

图中蓝色曲线是我们的策略净值,黄色曲线是沪深300指数。


低市盈率策略的收益确实比沪深300指数好了一点,但并不显著,年化收益只有6.66%,且最大回撤高达57%。


当然,我估计这已经跑赢在座的大多数了,毕竟大部分人炒股都是亏损的。


但这样的策略在量化投资中是不合格的,尤其是最近几年它的表现十分差劲。

17.jpg

那为什么买低市盈率股票的实践结果和理论有那么大的偏差呢?


05

行业中性策略

1 行业影响

我们看这个策略每个月选出来的10只股票,发现它们都偏向于银行、地产、基建等行业。


这类行业的市盈率都比较低,所以这些行业的股票就很容易被我们选中。因此我们的策略选择是偏颇的。

18.jpg

比如银行业的平均市盈率是8,工行的市盈率低于行业平均,只有7。


假设互联网行业的平均市盈率是20,其中某只股票的市盈率是10。


这只股票和工行的市盈率哪个更低呢?

19.jpg

绝对值看,工行的市盈率确实更低。


但从相对值来说,这家互联网公司它的市盈率是更低的。


因此我们尝试对之前的策略进行调整。

2 行业中性化

我们把所有股票根据申万一级行业进行分类。


在每个行业中选择EP最大(即市盈率最低)的3只股票。如果有10个行业就会选出30只股票。


其他条件完全不变。

这一步操作在我们专业术语中就是所谓的行业中性化,用来去除行业对市盈率指标的影响。

20.jpg

当然在实际操作当中会用到更专业的数学方法,这里就不多加赘述了。

3 策略结果

我们仍使用Python编程以及相应的数据来得到结果。

如果你对这个数据和代码感兴趣的话,可以加我的微信xbx1717,都是可以免费发给你的。

21.jpg

代码运行后,最终结果仍是令人失望:

22.jpg

与之前的结果相比有所改善,最大回撤有所减少,但年化收益基本一致。


接下文

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:公司估值 市盈率 Python编程 沪深300指数 python

不管去哪里 只要在路上
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 13:54