请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3366962 新帖:0

指数PE统计

螺罗丝发表于:5 月 10 日 05:24回复(1)

第一次发帖,多多包涵。
利用“研究”做了各个指数的PE计算(等权重)。
结果如下。供大家参考。
2016-2-28更新,增加研究分享。
2016-6-26: @scc 的 帖子更全面,

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport 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')#指数历史PEdef get_index_pe(index_code):start='2005-1-1'end = pd.datetime.today();dates=[]pes=[]for d in pd.date_range(start,end,freq='M'): #频率为月dates.append(d)pes.append(get_index_pe_date(index_code,d))return pd.Series(pes, index=dates)all_index = get_all_securities(['index'])index_choose =['000016.XSHG',   '000010.XSHG',   '000300.XSHG',   '000905.XSHG',   '399001.XSHE',   '399330.XSHE',   '399005.XSHE',   '399006.XSHE',   '000990.XSHG',   '000991.XSHG',   '000992.XSHG',   '000993.XSHG',   '000827.XSHG',   '000985.XSHG'  ]df_pe = pd.DataFrame()for code in index_choose:print u'正在处理: ',codedf_pe[code]=get_index_pe(code)today= pd.datetime.today()results=[]for code in index_choose:pe = get_index_pe_date(code,today)q_pes = [df_pe.quantile(i/10.0)[code]  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[code].count()])df_pe.columns=np.array(results)[:,0]df_pe.plot(figsize=(12,10))columns=[u'名称',u'当前PE',u'分位点%',u'最小PE']+['%d%%'% (i*10) for i in range(1,10)]+[u'最大PE' , u"数据个数"]df = pd.DataFrame(data=results,index=index_choose,columns=columns)df
正在处理:  000016.XSHG
正在处理:  000010.XSHG
正在处理:  000300.XSHG
正在处理:  000905.XSHG
正在处理:  399001.XSHE
正在处理:  399330.XSHE
正在处理:  399005.XSHE
正在处理:  399006.XSHE
正在处理:  000990.XSHG
正在处理:  000991.XSHG
正在处理:  000992.XSHG
正在处理:  000993.XSHG
正在处理:  000827.XSHG
正在处理:  000985.XSHG

名称当前PE分位点%最小PE10%20%30%40%50%60%70%80%90%最大PE数据个数
000016.XSHG上证5010.417.789.7910.5911.4812.5013.9915.0616.0717.8725.0432.9347.33134
000010.XSHG上证18015.6719.4013.3714.7115.7316.7217.8419.9822.0823.5032.5440.5258.09134
000300.XSHG沪深30018.0635.1412.1115.8816.6917.4118.6821.1522.9024.6632.0041.0654.96131
000905.XSHG中证50034.0447.5717.3625.0826.9728.2730.8035.0839.8446.4454.2462.4172.21110
399001.XSHE深证成指36.4782.5110.1912.4014.4515.7417.0919.3521.0324.3334.9341.0465.63134
399330.XSHE深证10022.5650.3911.7016.2618.3919.6621.2322.4924.3227.5136.2142.9252.75134
399005.XSHE中小板指34.7950.6813.8024.8527.4628.3530.6734.5837.7640.6146.7052.2063.22111
399006.XSHE创业板指57.3760.1028.4233.5638.2644.1049.3354.6157.3460.4162.7277.75113.8869
000990.XSHG全指消费44.5866.4929.2933.5934.5135.1336.9138.3942.6245.6448.4558.1174.1355
000991.XSHG全指医药43.4660.8629.2933.1034.8937.1840.1042.4343.2945.3049.0656.8778.2255
000992.XSHG全指金融14.8652.4011.1411.7012.7513.1713.7214.6915.4216.3917.5520.4225.2855
000993.XSHG全指信息67.5572.3530.9436.2639.1241.5349.0055.8460.5666.1572.1193.89132.1355
000827.XSHG中证环保33.9419.2629.9732.1234.0834.9435.5736.1737.0039.0143.9048.3766.3842
000985.XSHG中证全指45.1078.4625.3927.2229.0630.6031.2431.7933.2139.3246.1657.1675.4155
 

全部回复

0/140

达人推荐

量化课程

    移动端课程