核心因子解析:市盈率(PE)因子的计算逻辑、选股逻辑与实战陷阱
市盈率,也就是PE,是价值投资里最经典的指标。说白了,它就是「你愿意为每一块钱的利润付多少钱」。我刚开始做量化那会儿,觉得PE太简单了,不就是股价除以每股收益嘛。后来踩了不少坑,才发现这个指标背后藏着不少门道。
一、PE的计算逻辑:不止一个版本
PE的计算公式很简单:
PE = 股价 / 每股收益(EPS)
但问题来了——每股收益用哪个?这里就有讲究了。
| PE类型 | EPS来源 | 特点 |
|---|---|---|
| 静态PE(LYR) | 最近一期年报 | 数据确定,但滞后半年 |
| 滚动PE(TTM) | 最近四个季度 | 更及时,我最常用 |
| 动态PE(Forward) | 分析师预测 | 前瞻性强,但预测不准 |
我个人习惯用滚动PE。为什么?因为静态PE太滞后了。举个例子,现在是8月份,年报数据还是去年12月的,中间半年发生了什么,PE完全没反映。滚动PE用最近四个季度的数据,至少能跟上节奏。
核心要点:计算PE时,务必明确用的是哪种EPS。不同口径的PE,数值可能差一倍以上。
二、选股逻辑:低PE就是好股票?
很多新手以为PE越低越好。嗯,这个想法对了一半。低PE确实意味着估值便宜,但便宜不等于值得买。
我总结了一套PE选股的逻辑框架:
- 行业内部比较——不同行业的PE没有可比性。银行股PE常年5-8倍,科技股PE动辄30-50倍。你拿银行PE去比科技股,那没法比。
- 历史分位数——看当前PE处于历史什么位置。如果一只股票PE处于近5年10%分位以下,说明相对便宜。
- 结合盈利质量——低PE但盈利是假的,那也没用。我遇到过一家公司PE只有3倍,结果发现它的利润全是变卖资产得来的,这种低PE就是陷阱。
实战技巧:我通常用「PE分位数 + 行业排名」双重筛选。先选出PE处于历史低位的前30%股票,再在行业内排序,选PE最低的前20%。这样既避免了行业偏差,又保证了相对便宜。
三、实战陷阱:我踩过的那些坑
做PE因子选股,有几个坑是绕不开的。我曾经在这些坑里摔得鼻青脸肿,现在分享给你。
陷阱一:利润中的「噪音」
PE的分母是净利润,但净利润里有很多一次性项目。比如卖房子、政府补贴、资产减值转回。这些项目今年有,明年可能就没了。
我曾经选到一只PE只有5倍的化工股,看起来便宜得离谱。结果仔细一看,它的利润里有60%来自出售一块闲置土地。第二年没有土地可卖了,利润暴跌,PE瞬间变成50倍。嗯,这个教训挺深刻的。
解决办法:用「扣非净利润」代替净利润。扣非净利润剔除了非经常性损益,更能反映主营业务的盈利能力。
# 计算扣非PE的Python示例
import pandas as pd
def calc_pe_non_recurring(price, net_profit, non_recurring):
"""
price: 股价
net_profit: 净利润
non_recurring: 非经常性损益
"""
recurring_profit = net_profit - non_recurring
eps_recurring = recurring_profit / total_shares
pe_non_recurring = price / eps_recurring
return pe_non_recurring
陷阱二:周期股的PE幻觉
周期股是PE因子的重灾区。你想想看,当一家钢铁公司利润最好的时候,PE往往最低。但这时候恰恰是周期顶部,接下来利润就要下滑了。低PE买进去,很可能买在最高点。
我记得2017年做过一个回测,用低PE策略选钢铁股,收益惨不忍睹。后来改用「市净率PB」替代PE,效果才好起来。
重要提醒:对于强周期行业(钢铁、煤炭、有色、化工),PE因子基本失效。建议改用PB或EV/EBITDA等指标。
陷阱三:负PE的处理
亏损公司的PE是负数。负PE怎么处理?直接剔除?还是当作极值处理?
我的做法是:将负PE统一赋值为一个较大的正数,比如100或999。这样既保留了这些股票,又不会让它们排在最前面。为什么?因为亏损公司可能正在困境反转,直接剔除会错过机会。
# 负PE处理示例
def handle_negative_pe(pe_series, max_pe=100):
"""
将负PE替换为最大PE值
"""
pe_series = pe_series.copy()
pe_series[pe_series < 0] = max_pe
pe_series[pe_series > max_pe] = max_pe
return pe_series
四、PE因子的知识体系
下面这张图是我梳理的PE因子核心逻辑,你看一眼就能明白整体框架。
五、实战中的几个小技巧
最后分享几个我在实战中总结的小技巧:
- PE与增速匹配——用PEG指标(PE/增长率),PEG小于1才算真便宜。我一般要求PEG在0.5-1.5之间。
- 剔除极端值——PE大于100或小于0的股票,建议做缩尾处理。我通常用1%和99%分位数截断。
- 行业中性化——在选股时,先对PE做行业中性化处理,消除行业偏好。具体做法是:用个股PE减去行业平均PE。
一句话总结:PE因子是价值选股的基石,但要用好它,你得懂计算口径、懂行业特性、懂利润质量。别被表面的低PE迷惑,多问一句「为什么这么低」,能帮你避开不少坑。
好了,PE因子的核心内容就这些。下一章我们会聊另一个经典价值因子——市净率PB。到时候你会发现,PB和PE搭配使用,效果往往1+1>2。