1. 程式人生 > >【金融量化】全市場估值-等權PE PB

【金融量化】全市場估值-等權PE PB

感謝,轉載自: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 pe else: 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 pb else: 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_PE all_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_name results.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_name results.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上證5011.3117.999.7910.5911.4912.4913.9615.0316.0617.8224.8632.6547.33135
PB上證501.428.441.301.441.581.701.801.932.102.302.723.756.57135
PE滬深30020.2246.2812.1115.8916.7017.4618.75

相關推薦

金融量化市場-PE PB

感謝,轉載自:https://www.joinquant.com/community/post/detailMobile?postId=1058&page=&limit=20&replyId=&tag=感謝cjhren在他的基礎上增加了等權PB

11-13A股主要指數的市盈率(PE)高度

全指材料(SH000987) - 2018-11-13日,當前值:12.4646,平均值:30.54,中位數:26.09865,當前 接近歷史新低。全指材料(SH000987)的歷史市盈率PE詳情 內地地產(SH000948) - 2018-11-13日,當前值:8

Python金融量化財經新聞文字分析

內容來自:微信公眾號:python金融量化 關注可瞭解更多的金融與Python乾貨。 引言 “80%的商業資訊來自非結構化資料,主要是文字資料”(Seth Grimes),這一說法可能誇大了文字資料在商業資料中的佔比,但是文字資料所蘊含的資訊價值是毋庸置疑的。在資訊爆炸的社會,文

Python金融量化零基礎如何開始學?

內容來自:微信公眾號:python金融量化 關注可瞭解更多的金融與Python乾貨。 Python可以說是當前非常流行的程式語言,甚至有點“網紅”的感覺。網上還流行一句話“Life is short, I use Python”(人生短暫,我用Python)。Python是一種非

2019年4月17日指數基金表(今日定投)

未來 ogr 賣出 一起 使用 ack auto 金額 -i 大家好,我是牛九老師,財經達人,專註於研究指數基金。 今天周四,我們定投的時間到了,推薦大家在支付寶中進行基金的購買,即方便又安全。 本周老師推薦的定投組合如下(下午三點之前在支付寶“基金欄目&r

node.js局變量、常用工具、文件系統

所有 格式 rmdir files cat 函數 lena roc close 學習鏈接:http://www.runoob.com/nodejs/nodejs-global-object.html 在 JavaScript 中,通常 window 是全局對象, 而 Nod

學術篇luogu1351 [NOIP2014提高組] 聯合

https mat 父親 ans 級別 pop isp etc 取模 一道提高組的題。。。。。 傳送門:題目在這裏。。。。 現在都懶得更自己的blog了,怕是太頹廢了_ (:з」∠) _ 好久沒做題了,手都生了。(好吧其實是做題方面手太生了) 這題我都不想講了,把代碼一貼就

Python量化手把手教你用python做股票分析入門

內容來自:微信公眾號:python金融量化 關注可瞭解更多的金融與Python乾貨。 目前,獲取股票資料的渠道有很多,而且基本上是免費的,比如,行情軟體有同花順、東方財富等,入口網站有新浪財經、騰訊財經、和訊網等。Python也有不少免費的開源api可以獲取交易行情資料,如pandas自

C學習通紙筆王網上閱卷系統 APMS_Setup.exe IP修改程式

前段時間用APMS遠端改卷,發現瀏覽器需要安裝閱卷外掛,安裝的過程提示IP無效,無法正常安裝外掛。後來用UEdit開啟可見.exe檔案中已經內建配置好的IP地址,可以通過修改為指定的IP後,便可以在本地正常安裝外掛並正常進入閱卷系統了。 為了方便起見,用C和C#以及Delphi寫了一份程式碼

docker效能優化-redis之主從複製量複製和部分複製

概念: 全量複製:用於初次複製或其它無法進行部分複製的情況,將主節點中的所有資料都發送給從節點,是一個非常重型的操作,當資料量較大時,會對主從節點和網路造成很大的開銷 部分複製:用於處理在主從複製中因網路閃斷等原因造成的資料丟失場景,當從節點再次連上主節點後,如果條件允許,主節點會補發丟

第三期屏banner圖片切換特效詳解

十一長假plus已經結束  ,上班的第一週,大家都是什麼心情呢,是不是還沒有從放假的狀態轉換過來呢,需要調整一段時間 記得放假的時候,不知不覺就過去4天,當時感嘆,哇靠,一下子就過去一半了啊,只能安慰自己的,沒事,還有一半呢 等剩下三天的時候安慰自己,沒事,就當放個3天小長

震驚!河大某學子寫出市場過億的AI核心程式碼!

hhhhhhhh 這是一個被網友們玩壞的梗。 震驚!河大某學子寫出市場估值過億的AI核心程式碼!Just kidding! 本菜雞打算將這行市場估值過億的AI核心程式碼開源。 其實這TM就是一條替換語句,把“嗎”去掉 把“?”換成“!”。由於我只替換了全形字元"?",所以當輸入半形

影象處理高效的中濾波(bug 已修復)

之前的bug: 當灰度為255或者0時,出現灰度溢位的bug,導致灰度黑白顛倒,現已修復,並重新將函式改為無返回值型別,原有的帶有返回影象的函式不規範,容易忘記釋放空間。新的函式再最後面 經測試,我的程式計算速度比OpenCV耗時多多了,,,~~(>

特徵工程一種異常檢測方法、原理、程式碼實現 (基於箱線圖)

先介紹使用到的方法原理,也就是一種異常檢測的方法。 首先要先了解箱線圖。 箱線圖 箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用資料中的五個統計量:最小值、第一四分位數、中位數、第三四分位數與最大值來描述資料的一種方法,它也可以

CEF3編譯增加對mp3/mp4格式支持的編譯手記 搭建編譯環境的過程中所遇到的問題(1) 2018-5-19

代碼 問題 enable img oid bit orm redist def 迫於對現有項目的升級,最近開始考慮更新在項目中所使用到的CEF(Chromium Embedded Framework)瀏覽器庫,但CEF/Chromium出於版權考慮保留了對於m

CEF3編譯增加對mp3/mp4格式支持的編譯手記 完成編譯,增加mp3/mp4格式支持(3) 2018-5-21

this 文件夾創建 ble 檢查 更新 tails while chromium aac 經過前兩天的準備工作,好在有幾位前輩們留下的"血淚史" ~( ̄▽ ̄~) 實際操刀的過程中並沒有遇到太大的困難,今天終於可以開始嘗試編譯cef.master分支了。 P

linux 06 linux中的用戶限、文件限與目錄

不可 自己 mod install 用戶權限 包括 strong 而且 comm   1、用戶及用戶組的概念:     1.文件所有者     2.用戶組     3.用戶   以root登錄Linux之後,執行ls -al,會看到有關文件屬性的信息   -rw-r--r-

MarketAnalysis總結4.0使用者登入賬戶安全訪問的實現

在這部分,我主要實現了使用者賬戶登入的身份校驗,使用者賬戶的註冊,使用者的登出、規避了繞過登入訪問的不合法請求,以及拒絕非法請求的實現。在具體論述每一部分之前,我先來說明使用者安全與許可權部分用到的表結構。這裡用到的具體表結構如圖4.1,他們的邏輯關係圖如圖4.2,E-R圖如

bzoj 1202狡猾的商人(帶並查集)

傳送門biu~ 設sisi表示前ii個月份的收入和。每條資訊(l,r,v)(l,r,v)相當於是在說sr−sl−1=vsr−sl−1=v,可以用帶權並查集來將l−1l−1月份和rr月份合併。設root

bzoj 2102 [HNOI2005]狡猾的商人 帶並查集維護區間和

以為是掃描演算法,想了半天最後看人家說是並查集我一下子就懵逼了,畢竟是第一次用並查集來維護區間和 這裡為啥要用並查集呢,因為每一段的區間和可以為負數,所以如果兩端區間之間沒有端點相交,那麼就是互不影響