量化投资学习——PE、PB、PS、ROE、EPS含义及计算公式

PEPBPSROE、EPS含义及计算公式

PE:市盈率 = 股价 / 每股盈利=总市值 /净利润

PB:市净率=股价 / 每股净资产=总市值 /净资产

PS:市销率=股价 / 每股收入=总市值 / 销售收入

ROE:净资产收益率=报告期净利润/报告期末净资产

EPS:每股盈余=盈余 / 流通在外股数 or

      每股收益=期末净利润 / 期末总股本

 

PE:Price/Earnings 市盈率 也有叫做PER的,Price/Earnings Ratio
本益比,价格收益比,市盈率
   市盈率反映市场对企业盈利的看法。市盈率越高暗示市场越看好企业盈利的前境。对於投资者来说,市盈率过低的股票会较为吸引。不过,在讯息发达的金融市场,市盈率过低的股票是十分少见。单凭市盈率来拣股是不可能的。投资者可以利用每股盈利增长率(Rate of EPS Growth),与市盈率作比较。对於一间增长企业,如果其股价是合理的话,每股盈利增长率将会与市盈率相约。公式:市盈率 = 股价 / 每股盈利.如果企业每股盈利为5元,股价为40元,市盈率是8倍。

PB:Price/Book value   :平均市净率
股价 / 账面价值
其中,账面价值的含义是:总资产 ? 无形资产 ? 负债 ? 优先股权益;可以看出,所谓的账面价值,是公司解散清算的价值。因为如果公司清算,那么债要先还,无形资产则将不复存在,而优先股的优先权之一就是清算的时候先分钱。但是本股市没有优先股,如果公司盈利,则基本上没人去清算。这样,用每股净资产来代替账面价值,则PB就和大家理解的市净率了。  

PS市销率=总市值/销售收入,

P是股价,S是每股的销售收入,P/S或者用总市值除以销售额,这样算出的值叫PS
PS即市销率估值法的优点是,销售收入最稳定,波动性小;并且营业收入不受公司折旧、存货、非经常性收支的影响,不像利润那样易操控;收入不会出现负值,不会出现没有意义的情况,即使净利润为负也可用。所以,市销率估值法可以和市盈率估值法形成良好的补充。市销率估值法的缺点是,它无法反映公司的成本控制能力,即使成本上升、利润下降,不影响销售收入,市销率依然不变。另外,市销率(PS)会随着公司销售收入规模扩大而下降;营业收入规模较大的公司,PS较低。用PS看企业潜在的价值,看它未来的盈利能不能大幅增长。PS低了就存在上升的可能。PS最低的股票是长线大牛股。

ROE,即净资产收益率(Rate of Return on Common Stockholders’ Equity )的英文简称,又称股东权益报酬率。
作为判断上市公司盈利能力的一项重要指标,一直受到证券市场参与各方的极大关注。分析师将ROE解释为将公司盈余再投资以产生更多收益的能力。它也是衡量公司内部财务、行销及经营绩效的指标。
ROE的计算方法是:净资产收益率=报告期净利润/报告期末净资产

 

EPS,是每股盈余(Earnings Per Share)的缩写,指普通股每股税后利润。

EPS(每股盈余)=盈余/流通在外股数,传统的每股收益指标计算公式为:每股收益=期末净利润÷期末总股本。EPS为公司获利能力的最后结果。每股盈余高代表着公司每单位资本额的获利能力高,这表示公司具有某种较佳的能力——产品行销、技术能力、管理能力等等,使得公司可以用较少的资源创造出较高的获利。

### 使用Python实现基本面量化选股 #### 构建股票池 为了实施有效的量化选股,构建一个合理的股票池至关重要。通常可以选择某个指数的成分股作为基础股票池,这有助于缩小研究范围并提高效率。具体操作可以通过调用特定函数来完成: ```python import tushare as ts def get_stock_pool(index_code='000300.SH', date=None): """ 获取指定日期的沪深300指数成分股列表 参数: index_code (str): 指数代码,默认为'000300.SH'(沪深300) date (str or None): 查询日期,格式YYYYMMDD;如果为空,则取最新一期数据 返回: DataFrame: 包含成分股信息的数据框 """ pro = ts.pro_api('your_token_here') df = pro.index_weight(index_code=index_code, start_date=date, end_date=date) return df[['con_code']].drop_duplicates().reset_index(drop=True) stock_pool = get_stock_pool() print(stock_pool.head()) ``` 此部分展示了如何利用`stk_get_index_constituents()`方法获取给定时间点上的某只指数所包含的所有个股[^2]。 #### 数据收集与预处理 一旦确定了目标股票集合,下一步就是搜集这些公司的财务报表和其他公开可用的信息源。可以借助第三方API服务如Tushare Pro API来进行高效的数据抓取工作。对于每一家公司而言,关注的重点可能包括但不限于营业收入增长率、净利润率、资产负债比率等关键指标。 ```python from datetime import datetime def fetch_financial_data(ts_codes): """ 批量下载多个证券的基本面数据 参数: ts_codes (list of str): 股票TS代码列表 返回: dict: 键为ts_code,值为对应的DataFrame形式的基础面数据表 """ financials = {} for code in ts_codes: try: # 假设这里有一个能够返回所需字段的接口 data = some_finance_api.get_basic_info(code) # 将结果存入字典中以便后续访问 financials[code] = pd.DataFrame(data).set_index(['report_period']) except Exception as e: print(f"Error fetching {code}: ", e) return financials financial_data = fetch_financial_data(stock_pool['con_code'].tolist()) ``` 在此基础上,还需要对原始数据集执行必要的清洗和转换步骤,比如去除异常值、填补缺失项以及标准化数值特征等等[^1]。 #### 单因子分析 当准备好干净整洁的历史记录后,就可以开始探索各个潜在影响因素之间的关系模式了。单因子测试是最简单直接的方式之一,它允许单独考察某一特性对企业绩效的影响程度。例如计算每股收益(EPS)在过去几个季度内的变化趋势,并据此筛选出表现优异者加入投资组合之中。 ```python def single_factor_analysis(factor_name, threshold=0.1): """ 对单一因子进行统计检验 参数: factor_name (str): 待评估的因素名称 threshold (float): 进入选股名单的标准阈值 返回: list: 符合条件的股票清单 """ selected_stocks = [] for stock_id, records in financial_data.items(): recent_changes = (records[factor_name].iloc[-1] - records[factor_name].iloc[0]) / abs(records[factor_name].iloc[0]) if not np.isnan(recent_changes) and recent_changes >= threshold: selected_stocks.append(stock_id) return selected_stocks selected_by_eps_growth = single_factor_analysis('eps') ``` 这段代码片段说明了怎样针对EPS增长幅度这一单项标准挑选符合条件的目标资产。 #### 多因子综合评价体系 随着研究深入和技术进步,越来越多的研究表明单纯依赖个别参数难以全面反映复杂市场环境下的真实情况。因此引入更加复杂的多维度考量机制变得尤为重要。通过集成多种不同类型的变量形成综合性评分系统,从而更精准地识别那些具备长期增值潜力的投资对象。 ```python class MultiFactorModel(object): def __init__(self, factors_weights={}): self.factors_weights = factors_weights def score(self, ticker_symbol): scores = [] record = financial_data[ticker_symbol] for fct, wgt in self.factors_weights.items(): value = record.loc[:,fct][-1:].values[0] normalized_value = normalize(value)[0][0] weighted_score = normalized_value * wgt scores.append(weighted_score) total_score = sum(scores) return round(total_score, 4) model = MultiFactorModel({ 'roe': 0.4, 'pe_ratio': 0.3, 'pb_ratio': 0.3 }) final_selection = sorted([(ticker, model.score(ticker)) for ticker in financial_data], key=lambda x:x[1], reverse=True)[:10] for item in final_selection: print(item) ``` 上述实例定义了一种基于ROE(净资产收益率), PE Ratio(市盈率),PB Ratio(市净率)三个核心要素加权求和得出最终得分的方法论框架[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值