基于Python的指数基金量化投资 - 指数的市盈率和市净率计算

本文介绍了如何使用Python计算指数基金的市盈率(PE)和市净率(PB)。通过解析指数包含的个股信息,计算出指数的总市值、总净利润和总净资产,进而得出指数的市盈率和市净率。文章提供了详细的代码实现,涉及多个指数的数据处理,并提醒读者注意数据来源和可能出现的问题。
摘要由CSDN通过智能技术生成

上一篇《基于Python的指数基金量化投资 - 通过市盈率和市净率对指数估值》介绍了通过市盈率和市净率对指数进行估值,然后结合具体的估值百分位来进行投资。所以指数的市盈率和市净率是两个非常重要的指标。

这里就会有个问题,指数的市盈率和市净率怎么进行计算,指数不像个股,个股的市盈率计算起来比较简单:

同样个股的市净率计算也比较简单:

 

 

而指数是一篮子股票,例如沪深300就包含了300家上市公司,中证500包含了500家上市公司,上证50包含了50家上市公司,所以指数是一个上市公司的集合体,这个集合体我们也可以把它看成一家公司,里面包含的这些上市公司可以看成这家公司的某一部分或者某一个部门,这样的话,这家公司的市值就是所有部门的市值总和,公司净利润就是所有部门的利润总和,而公司净资产就是所有部门的净资产总和,同样再通过上面的计算过程就可以得到指数的市盈率:

 

同样的方式也可以得到指数的市净率:

 

具体怎么做呢,分为3个步骤:

1)通过指数包含的个股,解析出具体的个股信息;

2)把第一步中所有个股的总市值、总净利润和总净资产计算出来;

3)通过上面介绍的指数计算方式计算出市盈率和市净率即可。

 

 

具体来看看代码实现

首先看看市盈率的计算方式

import pandas as pd

import math

 

indexType = ['./importfile/indexSeries/indexTpye/hs300.csv',  # 沪深300 - 0

             './importfile/indexSeries/indexTpye/zz500.csv',  # 中证500 - 1

             './importfile/indexSeries/indexTpye/zz100.csv',  # 中证100 - 2

             './importfile/indexSeries/indexTpye/shz50.csv',  # 上证50  - 3

             './importfile/indexSeries/indexTpye/hsyy300.csv',  # 沪深医药300 - 4

             './importfile/indexSeries/indexTpye/zzyh.csv',   # 中证银行  -5

             './importfile/indexSeries/indexTpye/zzxf.csv',   # 中证消费  -6

             './importfile/indexSeries/indexTpye/zzbj.csv',   # 中证白酒  -7

             './importfile/indexSeries/indexTpye/db500.csv',  # 500低波动 -8

             './importfile/indexSeries/indexTpye/jz300.csv',  # 300价值   -9

             './importfile/indexSeries/indexTpye/yy100.csv',  # 医药100   -10

             './importfile/indexSeries/indexTpye/zzyyao.csv',   # 中证医药  -11

             './importfile/indexSeries/indexTpye/jbm50.csv',  # 基本面50  -12

             './importfile/indexSeries/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值