感谢,转载自:https://www.joinquant.com/community/post/detailMobile?postId=1058&page=&limit=20&replyId=&tag=

感谢cjhren在他的基础上增加了等权PB。目前等权PBPE都全了。
目前市场大部分还在高位,只有大蓝筹便宜。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import bisect#指定日期的指数PE(等权重)
def get_index_pe_date(index_code,date):stocks = get_index_stocks(index_code, date)q = query(valuation).filter(valuation.code.in_(stocks))df = get_fundamentals(q, date)if len(df)>0:pe = len(df)/sum([1/p if p>0 else 0 for p in df.pe_ratio])return peelse:return float('NaN')#指定日期的指数PB(等权重)
def get_index_pb_date(index_code,date):stocks = get_index_stocks(index_code, date)q = query(valuation).filter(valuation.code.in_(stocks))df = get_fundamentals(q, date)if len(df)>0:pb = len(df)/sum([1/p if p>0 else 0 for p in df.pb_ratio])return pbelse:return float('NaN')#指数历史PEPB
def get_index_pe_pb(index_code):start='2005-1-1'#start='2015-1-1'end = pd.datetime.today();dates=[]pes=[]pbs=[]for d in pd.date_range(start,end,freq='M'): #频率为月dates.append(d)pes.append(get_index_pe_date(index_code,d))pbs.append(get_index_pb_date(index_code,d))d = {'PE' : pd.Series(pes, index=dates),'PB' : pd.Series(pbs, index=dates)}PB_PE = pd.DataFrame(d)return PB_PEall_index = get_all_securities(['index'])
index_choose =['000016.XSHG',                        '000300.XSHG','000902.XSHG','000905.XSHG','399106.XSHE',               '399316.XSHE','000036.XSHG','000037.XSHG','000038.XSHG','000039.XSHG','000158.XSHG']
df_pe_pb = pd.DataFrame()
frames=pd.DataFrame()
today= pd.datetime.today()
for code in index_choose:index_name = all_index.ix[code].display_name  print u'正在处理: ',index_name   df_pe_pb=get_index_pe_pb(code)    results=[]pe = get_index_pe_date(code,today)q_pes = [df_pe_pb['PE'].quantile(i/10.0)  for i in range(11)]    idx = bisect.bisect(q_pes,pe)quantile = idx-(q_pes[idx]-pe)/(q_pes[idx]-q_pes[idx-1])   #index_name = all_index.ix[code].display_nameresults.append([index_name,'%.2f'% pe,'%.2f'% (quantile*10)]+['%.2f'%q  for q in q_pes]+[df_pe_pb['PE'].count()])pb = get_index_pb_date(code,today)q_pbs = [df_pe_pb['PB'].quantile(i/10.0)  for i in range(11)] idx = bisect.bisect(q_pbs,pb)quantile = idx-(q_pbs[idx]-pb)/(q_pbs[idx]-q_pbs[idx-1])   #index_name = all_index.ix[code].display_nameresults.append([index_name,'%.2f'% pb,'%.2f'% (quantile*10)]+['%.2f'%q  for q in q_pbs]+[df_pe_pb['PB'].count()])df_pe_pb['10% PE']=q_pes[1]df_pe_pb['50% PE']=q_pes[5]df_pe_pb['90% PE']=q_pes[9]df_pe_pb['10% PB']=q_pbs[1]df_pe_pb['50% PB']=q_pbs[5]df_pe_pb['90% PB']=q_pbs[9]df_pe_pb.plot(secondary_y=['PB','10% PB','50% PB','90% PB'],figsize=(14,8),title=index_name,style=['k-.', 'k', 'g', 'y', 'r', 'g-.', 'y-.', 'r-.']) columns=[u'名称',u'当前估值',u'分位点%',u'最小估值']+['%d%%'% (i*10) for i in range(1,10)]+[u'最大估值' , u"数据个数"]df= pd.DataFrame(data=results,index=['PE','PB'],columns=columns)frames = pd.concat([frames, df])
frames

正在处理:  上证50
正在处理:  沪深300
正在处理:  中证流通
正在处理:  中证500
正在处理:  深证综指
正在处理:  巨潮小盘
正在处理:  上证消费
正在处理:  上证医药
正在处理:  上证金融
正在处理:  上证信息
正在处理:  上证环保

Out[8]:
  名称 当前估值 分位点% 最小估值 10% 20% 30% 40% 50% 60% 70% 80% 90% 最大估值 数据个数
PE 上证50 11.31 17.99 9.79 10.59 11.49 12.49 13.96 15.03 16.06 17.82 24.86 32.65 47.33 135
PB 上证50 1.42 8.44 1.30 1.44 1.58 1.70 1.80 1.93 2.10 2.30 2.72 3.75 6.57 135
PE 沪深300 20.22 46.28 12.11 15.89 16.70 17.46 18.75 21.08 22.85 24.50 32.00 41.05 54.96 132
PB 沪深300 2.11 44.44 1.33 1.53 1.72 1.86 2.01 2.24 2.60 2.81 3.17 3.92 6.80 132
PE 中证流通 52.89 76.55 9.39 22.45 27.83 30.66 32.13 35.68 40.37 46.46 56.28 64.36 77.09 130
PB 中证流通 3.56 68.25 1.45 1.84 2.12 2.26 2.44 2.95 3.31 3.62 3.97 4.40 5.76 130
PE 中证500 39.62 60.07 17.36 25.09 27.00 28.32 31.08 35.52 39.57 46.41 54.19 62.26 72.21 111
PB 中证500 2.85 50.84 1.32 1.97 2.08 2.21 2.53 2.82 3.13 3.39 3.59 4.00 5.03 111
PE 深证综指 63.97 86.91 17.47 28.18 31.32 34.16 37.67 40.71 47.04 51.87 58.75 66.31 92.41 135
PB 深证综指 4.18 75.35 1.43 1.76 2.22 2.40 2.56 3.00 3.50 3.96 4.36 4.94 6.38 135
PE 巨潮小盘 46.30 64.78 18.64 30.25 31.69 32.92 35.15 40.70 43.75 49.09 56.74 71.09 86.67 134
PB 巨潮小盘 3.18 66.19 1.34 1.64 2.03 2.23 2.38 2.62 2.94 3.33 3.66 4.05 5.32 134
PE 上证消费 32.51 35.39 23.77 27.39 29.33 31.25 33.59 35.49 39.08 51.59 57.61 72.23 78.03 87
PB 上证消费 3.30 39.09 2.45 2.73 2.95 3.10 3.32 3.47 3.75 4.21 4.64 5.02 5.79 87
PE 上证医药 39.01 86.39 22.45 27.57 30.13 31.90 32.63 33.58 34.33 35.02 36.75 40.28 59.94 87
PB 上证医药 3.88 58.83 2.92 3.19 3.41 3.49 3.61 3.77 3.90 4.42 4.79 5.36 6.22 87
PE 上证金融 9.04 30.12 7.30 7.71 8.47 9.02 10.03 10.72 11.84 14.00 15.01 22.91 32.23 87
PB 上证金融 1.39 28.23 1.08 1.18 1.27 1.41 1.51 1.61 1.75 2.02 2.33 2.93 4.05 87
PE 上证信息 59.31 65.30 26.65 33.77 36.47 43.28 48.88 54.02 57.50 60.90 68.35 80.31 101.23 87
PB 上证信息 5.42 90.37 1.89 2.29 2.68 3.12 3.27 3.71 4.02 4.40 4.75 5.30 8.54 87
PE 上证环保 32.29 25.02 27.03 30.31 31.44 33.13 33.51 34.35 35.37 36.82 40.19 44.68 54.85 43
PB 上证环保 3.11 70.97 1.90 2.17 2.35 2.41 2.46 2.62 2.91 3.08 3.37 3.84 4.97 43

【Python代码】全市场估值-等权PE PB相关推荐

  1. 顶刊实证复现:排污权交易机制是否提高了企业全要素生产率 (思路梳理+全数据源+python代码)

    标题:排污权交易机制是否提高了企业全要素生产率 --来自中国上市公司的证据 参考文献 作者:任胜钢, 郑晶晶, 刘东华, 陈晓红 来源:<中国工业经济>2019年第5期 数据概况 1. 数 ...

  2. 基于Python的指数基金量化投资——A股全市场成交量计算

    成交量是反映市场情绪和流动性一个很重要的指标,当出现牛市时成交量会急剧放大,当出现熊市时成交量会急剧缩小. 通过成交量可以反映出市场的情绪是处于正常.平淡还是疯狂,可以在一定程度上指导我们的投资操作, ...

  3. python机器交易_全解用 Python 建立能源市场算法交易的机器学习框架

    原标题:全解用 Python 建立能源市场算法交易的机器学习框架 编译:数据派 - 笪洁琼 ,冯羽 , 英文:SIMON KUTTRUF 前言 人工智能的新突破每天都成为头条新闻.在金融领域,机器学习 ...

  4. 用python描述车_使用Python探索二手车市场(含代码)

    原标题:使用Python探索二手车市场(含代码) 感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式 ...

  5. python代码大全下载-最全Python算法实现资源汇总!

    原标题:最全Python算法实现资源汇总! 整理 | Rachel 责编 | Jane 出品 | Python大本营(ID:pythonnews) [导语]数据结构与算法是所有人都要学习的基础课程,自 ...

  6. python自动补全库_叼炸天的库! 自动补全 Python 代码,能节省 60% 敲码时间

    近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使用深度学习完成了一个简单的项目,可以自动进行 Python 代码补全.」 根据介绍,该项目基于 LSTM 模型,训 ...

  7. 这个库厉害了,自动补全Python代码,节省50%敲码时间

    点击"小詹学Python",选择"星标"公众号 第一时间速享重磅干货 本文转自 机器之心,禁止二次转载 摘要:介绍一个优秀代码自动补全工具库. 近日,Reddi ...

  8. python自动补全库_这个库厉害了,自动补全Python代码,节省50%敲码时间

    近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使用深度学习完成了一个简单的项目,可以自动进行 Python 代码补全.」 根据介绍,该项目基于 LSTM 模型,训 ...

  9. 这个库厉害了,自动补全 Python 代码,节省 50% 敲码时间

    原文: https://blog.csdn.net/qq_4320... 摘要:介绍一个优秀代码自动补全工具库. 近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使 ...

最新文章

  1. 802.11协议精读5:隐藏终端和暴露终端
  2. 认认真真推荐几个机器学习和Python类的公众号
  3. c语言比较当前日期大小,C语言判断两个日期只差的方法
  4. jupyter安装出现问题:安装后无法打开
  5. (转)dp动态规划分类详解
  6. do matlab的 while循环_除了Matlab,基本上所有的语言都有do-while语句吧?的相关推荐_ChinaUnix论坛...
  7. setInterval和setTImeout中的this指向问题
  8. 如何用html制作彩虹,使用transform和arc方法,怎么绘制彩虹效果。
  9. DIGITS使用步骤
  10. 接口文档模板,接口规范
  11. PHP之封装梦网云通讯短信发送类
  12. linux课程设计tiny6410,tiny6410烧写linux
  13. python判断邮箱格式是否正确_如何判断用户输入的邮箱格式是否正确?
  14. [Android各版本特性]Android 4.4 Kitkat
  15. vue学习第五天(9月8号)
  16. 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列
  17. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
  18. flutter菜鸟教程!java流程图平行四边形
  19. 计算机考试打字合格速度,雅思考试使用机考,打字速度决定最终成绩
  20. C语言字符数组显示钻石,c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式...

热门文章

  1. java 登录下线_单机登录实现思路(强制下线其他用户)
  2. RecyclerView的极尽升华:BaseRecyclerViewFragment(修改)
  3. 登录Linux时/etc/profile、~/.bash_profile等几个文件的执行过程
  4. 鸿蒙是不是把系统提供给友商,鸿蒙系统即将上线,却遭友商公开“嘲讽”,华为为何不受待见?...
  5. idea自动补全快捷键
  6. [音乐]被遗弃的公主-郑丽欣
  7. 使用postcss-plugin-px2rem和postcss-pxtorem(postcss-px2rem)-px自动转换rem的配置方法-vue-cli3.0
  8. 原画和3D建模到底选哪个?8年建模大佬从美术基础,就业难度,发展一一分析
  9. 杨森翔的书法-5.李白诗:早发白帝城
  10. 图文详解jvm中的线程状态