量化投资学习之【4】计算创业板平均市盈率

2017-11-08  本文已影响0人  夜雨寒山

文章来源: 量化小课堂

市盈率(Price Earning Ratio),英文缩写为PE或P/E Ratio,指在一个考察期(通常为12个月的时间)内,股票的价格和每股收益的比例。

市盈率计算方法:

  市盈率=普通股每股市场价格 / 普通股每年每股盈利

每股盈利的计算方法,是该企业在过去12个月的净收入除以总发行已售出股数。市盈率越低,代表投资者能够以较低价格购入股票以取得回报。假设某股票的市价为24元,而过去12个月的每股盈利为3元,则市盈率为24/3=8。该股票被视为有8倍的市盈率,即每付出8元可分享1元的盈利。投资者计算市盈率,主要用来比较不同股票的价值。理论上,股票的市盈率愈低,愈值得投资。比较不同行业、不同国家、不同时段的市盈率是不大可靠的。比较同类股票的市盈率较有实用价值。

一般来说,市盈率水平为:

0--13:即价值被低估

14--20:即正常水平

21--28:即价值被高估

28+:反映股市出现投机性泡沫

附上代码

#coding:utf-8

import os
import pandas as pd

stock_code_list = []
for root, dirs, files in os.walk('./all_trading_data/stock data/'):
    if files:  #存在
        for f in files:
            if '.csv' in file:
                stock_code_list.append(f.split('.csv')[0])

for code in stock_code_list:
    if code[2] != '3':
        continue
    stock_data = pd.read_csv('/all_trading_data/stock data/' + code + '.csv',\
        parse_dates =[1])
    stock_data= stock_data[stock_data['PE_TTM'].notnull()]
    # 净利润 由 市值/PE_TTM 得到
    stock_data['net profit'] = stock_data['market_value'] / stock_data['PE_TTM']
    stock_data = stock_data[['code', 'date', 'market_value', 'net profit']]
    all_stock = all_stock.append(stock_data, ignore_index =True)


output['stock num'] = all_stock.groubpy('date').size()
output['ave PE'] = output['market_value'] / output['net profit']
#保存到csv文件
output.to_csv('创业板平均市盈率.csv', encoding='gbk')
上一篇下一篇

猜你喜欢

热点阅读