基于John Neff,John Neff on Investing(1999年)
John Neff(生于1931年)是温莎基金的传奇基金经理,从1964年到1995年管理该基金31年。在他的任期结束时,温莎基金的年回报率为13.7%,而标普500为10.6%——这是一个令人震惊的差异,考虑到温莎基金是一个纯股票组合,从不持有科技股或热门股票。
Neff是逆向投资者的典型代表,他的方法建立在简单、纪律严明、低市盈率的原则上。当华尔街追逐高增长、高市盈率的"壮观"公司时,Neff寻找那些被忽视、被误解、暂时失宠但具有坚实基础的公司。
Neff的低市盈率方法基于几个核心观察:
Neff的投资哲学可以概括为:以合理价格购买优质公司,以极低价格购买普通公司。
他的目标不是在每一年都击败市场——而是在一个完整的市场周期内持续击败市场,犯更少的重大错误。
市盈率(P/E)= 当前股价 / 每股收益(EPS)
示例:
- 股价 $40,EPS $2 → P/E = 20
- 股价 $20,EPS $1 → P/E = 20
- 两者P/E相同,但绝对价格和盈利状况不同
Neff关注的是相对市盈率——一只股票与市场整体、其行业及其自身历史相比的市盈率。
| 优势 | 解释 |
|---|---|
| 安全边际 | 支付更少意味着更多上涨空间、更少下跌空间 |
| 市场纠正 | 当坏消息被定价后,任何改善都会推动股价上涨 |
| 机构再发现 | 被忽视的股票一旦被注意到,升值潜力巨大 |
| 盈利韧性 | 低市盈率股票往往更成熟、盈利更稳定 |
| 风险/回报更好 | 下跌风险有限,上涨潜力显著 |
低市盈率存在正当理由——不是所有低市盈率股票都被低估。
| 陷阱类型 | 信号 | 应对 |
|---|---|---|
| 价值陷阱 | 盈利长期下降 | 检查3-5年趋势 |
| 周期性陷阱 | 周期顶部买入 | 在周期底部附近买入 |
| 财务造假 | 资产负债表可疑 | 审查现金流量表 |
| 行业夕阳 | 整个行业下滑 | 检查行业趋势 |
Neff使用六个标准评估每一只潜在投资:
市盈率必须显著低于市场平均水平。
盈利必须呈现积极趋势——不一定两位数增长,但必须稳定。
在温莎基金,股息是关键。
最好的低市盈率股票往往被华尔街忽视。
寻找由于非基本面原因而失宠的股票。
流动性很重要。
低市盈率候选股检查清单:
□ 1. 相对市盈率 < 市场P/E的65%?
□ 2. 过去5年每股收益趋势向上?
□ 3. 股息收益率 > 市场平均的150%?
□ 4. 机构持股 < 30%?
□ 5. 有具体的、可识别的一次性抛售原因吗?
□ 6. 市值 > $5亿且日成交量充足?
□ 7. 资产负债表健康(低债务)?
□ 8. 行业地位稳固?
□ 9. 竞争地位没有永久性损害的迹象?
□ 10. 可以在1-3年内看到价值实现路径?
Neff说:"知道自己何时卖出与知道何时买入同样重要。"
低市盈率股票上涨后,往往会达到"公平估值"——此时不应再持有。
| 信号 | 原因 |
|---|---|
| P/E追上市场 | 低估值理由消失 |
| 达到目标价 | 上涨潜力耗尽 |
| 基本面前景恶化 | 买入理由不再成立 |
| 更好的机会出现 | 资本应配置到更高价值处 |
| 行业领导力丧失 | 竞争优势消失 |
| 持仓超过组合10% | 过度集中 |
核心规则: 卖出当且仅当:
永远不要因为恐惧或短期波动而卖出。
持有低市盈率股票,如果:
Neff是早期使用行业轮动策略的投资者之一——在不同行业之间轮换,以利用市场周期。
轮动逻辑:
| 周期阶段 | 领先行业 | 落后行业 |
|---|---|---|
| 早期复苏 | 金融、材料、工业 | 公用事业、消费必需品 |
| 中期扩张 | 消费可选、技术、医疗 | 能源、金融 |
| 周期峰值 | 能源、医疗 | 科技、可选消费 |
| 早期衰退 | 公用事业、必需品 | 可选消费、科技 |
| 深度衰退 | 公共事业 | 周期性行业 |
步骤一:识别周期位置
步骤二:寻找低估值行业
步骤三:选择行业内最佳公司
Neff花费大量时间理解机构投资者——他们的激励机制、偏见和群体动态。
机构行为的关键观察:
Neff的方法:
最重要的机会之一是"机构再发现"——当一只被忽视的股票突然被一家大型机构买入时:
触发因素:
信号:
Neff对共同基金行业有独特见解——因为他从内部看它:
关键问题:
| 指标 | Neff的标准 |
|---|---|
| 换手率 | < 30%/年 |
| 费用率 | < 0.75% |
| 现金持仓 | < 5% |
| 税收效率 | 关注资本利得分配 |
| 晨星评级 | 参考但不盲从 |
| 基金经理任期 | 越长越好 |
逆向投资需要在别人恐惧时贪婪,在别人贪婪时恐惧。
这违反人类本能:
| 素质 | 表现 |
|---|---|
| 独立思考 | 不受群体影响 |
| 耐心 | 等待数年价值实现 |
| 勇气 | 在恐惧中买入 |
| 纪律 | 遵循系统而非情绪 |
| 自知 | 了解自己的心理弱点 |
| 谦逊 | 接受错误并继续 |
Neff情绪检查:
当你感到极度乐观时:
→ 卖出(市场可能已到顶部)
当你感到极度悲观时:
→ 买入(市场可能已到底部)
当你听到"这次不同"时:
→ 警惕(历史韵脚)
当每个人都同意时:
→ 反向思考
当媒体极度兴奋时:
→ 准备退出
当没有人谈论股票时:
→ 准备买入
步骤一:建立股票筛选标准
步骤二:应用质量过滤
步骤三:评估催化剂
步骤四:建立头寸
监控频率: 每季度审查一次基本面,每年审查一次完整组合
再平衡触发因素:
| 特征 | 低市盈率 | 成长股 |
|---|---|---|
| P/E | 低于市场 | 高于市场 |
| 股息 | 通常较高 | 通常较低或无 |
| 波动性 | 较低 | 较高 |
| 机构认可 | 通常较低 | 通常较高 |
| 预期回报来源 | 估值修复 + 盈利 | 盈利增长 |
| 持有期 | 2-5年 | 更长 |
| 心理挑战 | 持有令人讨厌的股票 | 持有高价股票 |
函数 screen_low_pe_universe(universe, market_pe):
候选股 = []
对于 universe 中的每只股票:
如果 股票.市盈率 < market_pe * 0.65:
如果 股票.每股收益趋势 > 0: // 盈利向上
如果 股票.股息收益率 > 平均股息收益率 * 1.5:
如果 股票.机构持仓 < 0.30:
如果 股票.市值 > 5亿美元:
候选股.添加(股票)
按 市盈率升序排序(最便宜优先)
返回 候选股
函数 neff_six_criteria(股票, 市场):
分数 = 0
详细评估 = {}
// 标准1:相对P/E低
relative_pe = 股票.市盈率 / 市场.市盈率
如果 relative_pe < 0.60:
分数 += 2
详细评估["相对P/E"] = "优秀:{relative_pe:.2f}"
否则如果 relative_pe < 0.70:
分数 += 1
详细评估["相对P/E"] = "可接受:{relative_pe:.2f}"
否则:
详细评估["相对P/E"] = "不通过:{relative_pe:.2f}"
// 标准2:收益改善
eps_growth_5yr = 股票.每股收益_5年_复合增长率
如果 eps_growth_5yr > 0.05: // > 5%
分数 += 1
详细评估["收益趋势"] = "通过:{eps_growth_5yr:.1%}"
否则:
详细评估["收益趋势"] = "不通过"
// 标准3:股息收益率
div_yield = 股票.股息收益率
avg_yield = 市场.平均股息收益率
如果 div_yield > avg_yield * 1.5:
分数 += 1
详细评估["股息收益率"] = "通过:{div_yield:.2f}% vs 市场{avg_yield:.2f}%"
否则:
详细评估["股息收益率"] = "不通过"
// 标准4:机构认可
inst_pct = 股票.机构持仓比例
如果 inst_pct < 0.20:
分数 += 1
详细评估["机构认可"] = "低:仍有机会"
否则如果 inst_pct < 0.30:
分数 += 0.5
详细评估["机构认可"] = "中等:可接受"
否则:
详细评估["机构认可"] = "过高:已定价"
// 标准5:一次性抛售原因
如果 股票.有可识别的暂时性负面事件:
分数 += 1
详细评估["抛售原因"] = "存在:{事件描述}"
否则:
详细评估["抛售原因"] = "无明显原因:谨慎"
// 标准6:流动性
daily_volume = 股票.日均成交量
如果 daily_volume * 股票.股价 > 500万美元:
分数 += 1
详细评估["流动性"] = "通过"
否则:
详细评估["流动性"] = "不足"
返回 {
总分: 分数,
最高分: 7,
评估: 详细评估,
建议: "强烈买入" if 分数 >= 6 else "买入" if 分数 >= 4 else "不通过"
}
函数 should_sell(股票, 市场):
// 规则1:P/E是否追上市场?
relative_pe = 股票.市盈率 / 市场.市盈率
如果 relative_pe > 0.90:
返回 {卖出: True, 原因: "估值已正常化", 优先级: "高"}
// 规则2:是否达到目标价?
目标价 = 股票.买入价 * 1.50 // 50%上涨目标
如果 股票.当前价 >= 目标价:
如果 relative_pe > 0.75:
返回 {卖出: True, 原因: "接近目标价且估值偏高", 优先级: "中"}
// 规则3:基本面前景是否恶化?
如果 股票.盈利趋势 < 0:
返回 {卖出: True, 原因: "盈利恶化", 优先级: "高"}
// 规则4:是否有更好机会?
// 比较其他候选股的预期回报
当前持仓_预期 = 估算_5年_总回报(股票)
对于 universe 中的其他候选股:
如果 其他候选股.预期回报 > 当前持仓_预期 * 1.3:
返回 {卖出: True, 原因: "更好机会", 优先级: "低"}
// 规则5:集中度检查
如果 股票.组合占比 > 0.10:
返回 {卖出: True, 原因: "超过10%集中度限制", 优先级: "中"}
返回 {卖出: False, 原因: "无卖出信号"}
函数 build_neff_portfolio(universe, market, target_size=25):
// 第一步:筛选低市盈率候选股
候选股 = screen_low_pe_universe(universe, market.市盈率)
// 第二步:应用六项标准
通过筛选 = []
对于 候选股 中的每只:
评估 = neff_six_criteria(股票, market)
如果 评估.建议 in ["强烈买入", "买入"]:
通过筛选.添加({股票: 股票, 评估: 评估})
// 第三步:按分数排序
通过筛选.按分数降序排序
// 第四步:建立头寸
组合 = []
对于 通过筛选[0:target_size] 中的每只:
头寸大小 = min(0.05, 评估.总分 / 7 * 0.08) // 3-5%初始仓位
组合.添加({股票: 股票, 头寸: 头寸大小})
// 第五步:确保多元化
行业 = 组合.获取_行业分布()
对于 每个行业:
如果 该行业占比 > 0.25: // 单一行业不超过25%
减仓至组合的8%
返回 组合
"我们在温莎基金所做的是在名牌公司的股票折价出售时买入——不是因为它们廉价,而是因为它们被误解了。"
"市盈率是投资者支付的每一元当前盈利的价格。低市盈率意味着你为盈利付的更少。"
"股息收益率是被遗忘的回报组成部分。随着时间的推移,股息几乎占股票市场总回报的一半,然而大多数投资者完全忽视它们。"
"我们的平均持股期约为三年。我们在股票被忽视或鄙视时买入。在它变得受欢迎时卖出。然后我们再做一次。"
"我从不试图猜测股市的短期走势。我从未遇到过能持续做到这一点的人。相反,我专注于寻找被低估的股票,然后等待市场认识到它们的价值。"
John Neff on Investing是对低市盈率投资艺术的持久介绍。Neff的方法——简单、纪律严明、以价值为基础——在今天与他在温莎基金的年代一样适用。核心信息:寻找被忽视的公司,以显著低于市场平均的市盈率买入,让纪律和耐心做剩下的工作。