量化入门系列:四行代码实现A股的估值温度计

系列通过一些实例介绍量化的入门知识,适合零基础的初学者。本篇介绍如何实现估值温度计。

估值温度计用来反映估值所处的位置,比如大家熟悉的集思录估值温度计长这样子的:

图片

上图是A股全市场的PE估值温度计,有时候我们想知道某个指数的估值温度、某个板块的估值温度、某个股票的估值温度,这时就需要自己算一下,计算的工具很多,EXCEL、Python或其他的数据处理工具都行,这里推荐Python,简单易用,比如只要四行代码就能实现A股的估值温度计:

import akshare as ak    # 导入数据源
entire_marke_pe_df = ak.stock_a_ttm_lyr()    # 获取A股全市场的PE数据
pe_ttm_middle_pct = entire_marke_pe_df[['date','middlePETTM']].set_index('date').rank(ascending=True, pct=True)*100    # 计算PE值的历史百分位
pe_ttm_middle_pct.plot(figsize=(16,8),grid=True,title='A股PE估值温度计')    # 画图

结果如下:

图片

跟上图有些不同是因为选取的时间段不一样。

第一行代码是导入数据源。计算估值温度需要用到PE数据,这里用的是AKShare这个数据源。AKShare是一个免费的数据源,提供了大量的数据接口,用来做些一般的研究基本够了。有关AKShare的文档可以看

https://www.akshare.xyz/index.html

第二行代码是获取A股全市场的PE数据,通过数据接口ak.stock_a_ttm_lyr()返回一个DataFrame类型的数据存储在变量entire_marke_pe_df中。DataFrame类型是个表格,把这个DataFrame导出到Excel中是这样的:

图片

第三行代码是计算PE估值的历史百分位并保存到变量pe_ttm_middle_pct中。这里我们用到了上面这个entire_marke_pe_df表格的两列数据:‘date’ 和 ‘middlePETTM’。'date’是日期;'middlePETTM’是全市场用TTM计算的PE值的中位数。接下来是计算估值温度,所谓估值温度计,实际上就是估值的历史百分位,历史百分位100表示估值水平为历史最高,历史百分位0表示估值水平为历史最低。这里用rank()函数就可以把历史百分位计算好了。

第四行代码是用plot()函数画图。

是不是超简单。刚才做的是PE的温度计,PB温度计又怎么做呢?把代码稍改一下就行:

entire_marke_pb_df = ak.stock_a_all_pb()    # 获取A股全市场的PB数据
pb_middle_pct = entire_marke_pb_df[['date','middlePB']].set_index('date').rank(ascending=True, pct=True)*100    # 计算PB的历史百分位
pb_middle_pct.plot(figsize=(16,8),grid=True,title='A股PB估值温度计')    # 画图

数据源导入一次就行,所以这回只需三行代码,主要改动是把获取PE数据换成获取PB数据。结果如下:

图片

本篇简单介绍了用Python实现全市场的估值温度计。下篇继续介绍如何计算各指数、各行业的估值温度:沪深300和中证500哪个更便宜?食品饮料行业的估值到底高不高?这都是几行代码的事,量化并没有这么难,用Python,So Easy。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值