逆向投资策略——完整实施规范

基于 David Dreman,《逆向投资策略:心理优势》(1998年,修订版)


目录

  1. 概述
  2. 过度反应的心理学
  3. 为什么低市盈率/市净率/市销率股票表现更好
  4. 分析师预测误差——系统性偏差
  5. 重新估值的触发事件
  6. 逆向股票选择规则
  7. 逆向投资组合的风险管理
  8. 行业和板块分析
  9. 逆向市场时机
  10. 行为优势
  11. 构建和管理逆向投资组合
  12. 实施伪代码
  13. 重要语录

1. 概述

David Dreman(1936-2023)是现代最成功、最有影响力的逆向投资者之一。作为 Dreman Value Management 的创始人和主席,他使用一种纪律严明的逆向投资方法管理着数十亿美元,在数十年来持续跑赢市场。他的著作《逆向投资策略》是关于不受欢迎股票如何跑赢受欢迎股票的权威著作,基于实证证据和行为心理学。

1.1 核心论点

市场系统性地高估受欢迎股票,低估不受欢迎股票。这种过度反应是由有据可查的心理偏见驱动的——过度自信、锚定、从众行为和情感启发式——导致投资者将近期趋势过多地外推到未来。通过购买市场惩罚最严重的股票(低市盈率、低市净率、低市销率、高股息率)并避开奖励最慷慨的股票(高市盈率、高市净率、高市销率),投资者可以随着时间获得显著高于平均水平的回报。

1.2 实证基础

Dreman 的工作因其严格的实证基础而脱颖而出。他不仅仅断言逆向策略有效——他提供了数十年来跨多个指标、时间段、市场条件和国家市场的数据。证据是压倒性的和一致的:

历史业绩汇总(近似,来自 Dreman 的研究):

策略                 年回报率    与市场平均相比
最低20%市盈率股票      ~16-18%      高于市场3-5%
最低20%市净率股票      ~16-17%      高于市场3-4%
最低20%市销率股票      ~16-18%      高于市场3-5%
最高股息率             ~15-17%      高于市场2-4%

最高20%市盈率股票      ~10-12%      低于市场1-3%
最高20%市净率股票      ~10-11%      低于市场2-3%
最高20%市销率股票      ~9-11%       低于市场2-4%
最低股息率             ~10-12%      低于市场1-3%

市场平均              ~13%

时间段:1970年代至1990年代(多项研究)
注:确切数字因研究时间段和方法论而异。
模式在所有研究的时间段中是一致的。

1.3 为什么这不是常识

如果逆向策略如此有效,为什么不是每个人都使用它们?Dreman 确定了几个原因:

  1. 心理上的困难: 购买不受欢迎的股票在情感上是痛苦的
  2. 职业风险: 短期表现不佳的专业基金经理会被解雇
  3. 学术界的抵制: 有效市场假设在数十年来主导了金融学
  4. 叙事吸引力: 受欢迎的股票有令人兴奋的故事;不受欢迎的股票没有

2. 过度反应的心理学

2.1 过度反应假说

Dreman 在心理学家 Daniel Kahneman 和 Amos Tversky 的基础上解释为什么市场会过度反应。关键偏见:

代表性偏见: 投资者根据当前条件与熟悉模式的相似程度来判断未来结果的概率,而不是基于基础概率。连续五年盈利增长的公司"看起来像"成长型公司,因此投资者假设它将继续增长——通常为此类外推支付40-50倍市盈率。

锚定: 投资者锚定在近期趋势上,调整不足。如果一只股票已经上涨了两年,投资者会锚定在上涨趋势上并假设它将继续。如果一只股票一直在下跌,他们会锚定在下跌趋势上。

可得性偏见: 近期、鲜明和情感上强烈的事件在决策中被过度权重。最近刚报告糟糕收益的公司受到的评判比客观情况所要求的更严厉,因为负面新闻在投资者心中高度可得。

从众行为: 投资者跟随人群,因为不同意共识在心理上是代价高昂的。购买一只然后下跌的受欢迎股票是"坏运气"。购买一只然后下跌的不受欢迎股票是"坏判断"。独立思考的社会惩罚驱动了从众行为。

2.2 过度反应周期

过度反应周期:

对于受欢迎股票(高估):
  1. 公司有强劲的近期表现
  2. 分析师上调预期和目标价
  3. 媒体 coverage 变得正面和频繁
  4. 投资者将近期成功 far 延伸到未来
  5. 股价上涨至不可持续的市盈率(30倍、40倍、50倍+)
  6. 即使小小的失望也会触发大幅下跌
  7. 这只股票在50倍时是"伟大公司";现在在15倍时是"受损商品"

对于不受欢迎股票(低估):
  1. 公司近期表现疲软或危机
  2. 分析师下调预期和目标价
  3. 媒体 coverage 变得负面(或缺席)
  4. 投资者将近期问题 far 延伸到未来
  5. 股价下跌至异常低的市盈率(5倍、8倍、10倍)
  6. 即使小小的正面惊喜也会触发显著反弹
  7. 这只股票在5倍时是"绝望的";现在在12倍时是"复苏的"

逆向机会:
  在不受欢迎周期的第5-6步买入
  在受欢迎周期的第5-6步卖出

2.3 为什么过度反应持续存在

Dreman 认为过度反应不是会被套利走的暂时市场异常。它之所以持续存在,是因为它植根于不会改变的人类心理。导致1930年代过度反应的相同偏见今天导致它,2050年也会导致它。市场演变,但人性不变。


3. 为什么低市盈率/市净率/市销率股票表现更好

3.1 市盈率效应

Dreman 最广泛的研究集中在市盈率上。他将市场按市盈率分为五分位数(五组,每组20%),并跟踪长期回报:

市盈率五分位表现(说明性,基于 Dreman 的研究):

五分位    市盈率范围       年回报率    累计(20年)
最低20%   5-10倍           ~17%        $100 → ~$2,300
第二五分位 10-14倍          ~15%        $100 → ~$1,600
第三五分位 14-18倍          ~13%        $100 → ~$1,150
第四五分位 18-25倍          ~12%        $100 → ~$960
最高20%   25倍+            ~11%        $100 → ~$810

最低市盈率五分位持续跑赢:
  - 牛市和熊市
  - 通货膨胀和通缩时期
  - 不同十年(1970年代、1980年代、1990年代)
  - 美国和国际市场

3.2 市净率效应

账面市值比显示类似的模式。以最低账面市值比交易的股票跑赢以最高账面市值比交易的股票。Dreman 指出,市净率对于金融公司和资产密集型行业特别有用,因为账面价值在这些行业中是有意义的衡量标准。

3.3 市销率效应

市销率可能是最稳健的逆向指标,因为销售额数据比收益和账面价值更难操纵。公司可以通过会计选择管理收益,可以通过重组费用降低账面价值,但销售额相对直接。

3.4 股息率效应

高股息率股票持续跑赢低股息率股票。这种效应部分由价值倾斜解释(高收益率股票往往市盈率低),部分由行为倾向解释——低估再投资股息的力量。

3.5 "最佳逆向"指标

Dreman 测试了哪个单一指标是最可靠的逆向指标,发现低市盈率是最强的独立预测因素。然而,同时使用多个逆向指标可以提供更好的结果:

逆向指标强度(排名):

1. 低市盈率                     (最强的独立预测因素)
2. 低市销率                     (对会计操纵最稳健)
3. 低市净率                     (对资产密集型行业最佳)
4. 高股息率                     (再投资效果最佳)
5. 低市现率(市价与现金流比率)  (消除会计扭曲)

组合策略:
  购买在两个或更多这些指标上同时处于最低五分位的股票
  → 更高的超额表现

4. 分析师预测误差——系统性偏差

4.1 误差幅度

Dreman 最重要的贡献之一是他对分析师预测误差系统性特征的记录。分析师不会犯随机错误——他们犯可预测的、方向性的错误:

分析师预测误差模式:

对于受欢迎(高市盈率)股票:
  - 分析师系统性地过于乐观
  - 共识收益预期过高
  - 当公司实际报告的收益低于预期时,
    股价大幅下跌("盈利意外")
  - 平均负面意外频率:约45%的季度
  - 负面意外平均幅度:-5至-15%

对于不受欢迎(低市盈率)股票:
  - 分析师系统性地过于悲观
  - 共识收益预期过低
  - 当公司实际报告的收益高于预期时,
    股价大幅上涨("正面意外")
  - 平均正面意外频率:约50%的季度
  - 正面意外平均幅度:+5至+15%

非对称性:
  高市盈率股票:为完美定价 → 更多下行意外
  低市盈率股票:为灾难定价 → 更多上行意外

这种非对称性是逆向优势的主要驱动因素。

4.2 为什么分析师系统性地犯错

Dreman 确定了分析师系统性误差的几个来源:

  1. 近期偏见: 分析师将近期趋势(好的或坏的)过多地外推到未来
  2. 从众: 分析师聚集在共识周围以避免职业风险
  3. 利益冲突: 投资银行关系 bias 使分析师对所覆盖公司持乐观态度
  4. 复杂性: 未来确实是不可预测的,分析师在预测未来方面并不比任何人更好——但他们被付费假装他们可以

4.3 盈利意外作为触发因素

Dreman 使用盈利意外作为逆向重新估值的关键机制:

双重打击效应:

第0年:公司每股收益$2,交易价格8倍市盈率 = $16/股

第2年:公司每股收益$2.50(25%收益增长)
        市场重新评估:市盈率从8倍扩张至14倍
        股价:$2.50 × 14 = $35

        回报:($35 - $16) / $16 = 119%

        分解:
          来自收益增长:25%
          来自市盈率扩张:75%
          两者共同:119%

  市盈率扩张是关键——它代表了市场纠正其先前对负面情绪的过度反应。

5. 重新估值的触发事件

5.1 什么导致不受欢迎股票被重新估值

Dreman 确定了通常触发低估股票重新估值的事件:

正面盈利意外: 最常见的触发因素。当为灾难定价的股票报告不错或良好的收益时,悲观的共识受到挑战,股票重新评级。

管理层变动: 新管理层——尤其是以运营卓越或 turnaround 专业知识著称的CEO——可以在一夜之间改变市场对公司的看法。

激进投资者: 当一位著名的激进投资者持有重要股份并推动变革(成本削减、资产剥离、股票回购、战略转变)时,市场通常会预期改善而重新评级股票。

行业顺风: 惠及整个行业的结构性转变——监管变化、需求增长、大宗商品价格转变——可以提振该板块的所有股票,包括最便宜的股票。

股票回购: 当低市盈率公司使用其现金流回购股票时,它减少股本,增加每股收益,并表明管理层的信心。

股息增加: 股息增加或开始发放表明管理层对未来现金流的信心,并吸引寻求收入的投资者。

5.2 重新估值的时间范围

Dreman 的研究表明,逆向重新估值通常发生在1-5年内。一些股票在正面催化剂触发后数月内重新评级;其他则需要数年。投资者必须有足够的耐心持有度过等待期,但也要现实地认识到并非每只便宜的股票都会复苏。


6. 逆向股票选择规则

6.1 Dreman 的核心逆向规则

Dreman 提供了构建逆向投资组合的特定、可实施的规则:

DREMAN 的逆向选择标准:

规则1:低估值(至少一个, preferably 多个)
  □ 市盈率处于市场最低40%(或低于12倍)
  □ 市净率处于市场最低40%(或低于1.5倍)
  □ 市销率处于市场最低40%(或低于1.0倍)
  □ 股息率处于市场最高40%(或高于3%)

规则2:财务实力
  □ 流动比率 > 1.5(充足的短期流动性)
  □ 债务权益比 < 0.60(可管理的杠杆)
  □ 利息保障倍数 > 5倍(可以舒适地偿付债务)
  □ 没有近期收益损失(过去5年中至少3年盈利)

规则3:收益质量
  □ 经营活动现金流为正
  □ 收益主要不是来自一次性项目
  □ 收入在增长或至少稳定(不是结构性下降)
  □ 利润率稳定或改善(不是在自由落体)

规则4:最小规模
  □ 市值 > 10亿美元(避免微盘陷阱)
  □ 每日交易量充足(进入和退出不会产生重大市场影响)

规则5:股息安全(对于专注于股息的策略)
  □ 股息派发率 < 75%(可持续的派发)
  □ 过去5年未削减股息(稳定性)
  □ 自由现金流至少1.5倍覆盖股息

6.2 应避免什么

Dreman 对逆向投资者应该避免的内容同样具体:

应避免的逆向陷阱:

1. 价值陷阱——因为好原因而便宜的股票:
   □ 行业结构性下降(例如:印刷报纸)
   □ 技术过时
   □ 无法管理的债务负担
   □ 持续收入下降(>3年)
   □ 自由现金流为负且没有明确的正向路径

2. 会计红旗:
   □ 频繁的重述
   □ 收入确认变化
   □ 收益和现金流之间差距扩大
   □ 过度使用"调整"或"非GAAP"收益
   □ 审计师变更

3. 治理风险:
   □ 双重股权结构有利于内部人
   □ 高管薪酬过高
   □ 关联交易
   □ 帝国建设并购
   □ 股价下跌期间内部人抛售

6.3 "好公司,坏股票"框架

Dreman 强调,最好的逆向投资是拥有坏股票的好公司——公司基本健全,但由于收益未达预期、行业轮动、宏观经济恐慌或其他可逆转因素而暂时失宠。"坏股票"(因市场过度反应而暂时便宜)和"坏公司"(基本受损)之间的区别是逆向投资者做出的最重要的判断。


7. 逆向投资组合的风险管理

7.1 多元化

与持有8-15只股票的集中型投资者不同,Dreman 建议逆向投资组合更广泛的多元化——通常为20-30只股票。这是因为个别逆向持仓具有更高的特质风险(任何个别便宜股票可能是价值陷阱),多元化确保策略的统计优势可靠地显现。

逆向投资组合结构:

持仓数量:        20-30只股票
最大仓位规模:    成本的5%
最大板块权重:    25%
最小板块数量:    5个不同板块

再平衡:
  年度审查——替换已重新评级的股票
  (市盈率已升至市场平均或以上)
  替换为新的逆向候选股票(已变得便宜的股票)

预期换手率:20-40%每年
  (以主动管理标准来说是低的,但高于集中投资)

7.2 时间多元化优势

Dreman 表明,逆向优势随着时间增加。在任何单一年份,逆向投资组合可能表现不佳。在5年内,表现不佳变得罕见。在10年内,逆向策略几乎总是跑赢。

逆向跑赢的概率:

1年期滚动期间:   ~55-60%跑赢
3年期滚动期间:   ~65-75%跑赢
5年期滚动期间:   ~75-85%跑赢
10年期滚动期间:  ~85-95%跑赢
20年期滚动期间:  ~95%+跑赢

含义:逆向策略有效,但你必须给它时间。
短期表现不佳不是策略失败的证据。

7.3 下行保护

Dreman 证明,低市盈率股票在熊市中实际上下行 less。高市盈率股票似乎反直觉(便宜股票应该风险更大),但这有道理:便宜股票已经为坏消息定价了。下跌空间较小。为完美定价的高价股票在现实令人失望时下跌空间更大。

熊市行为:

高市盈率股票(最高五分位):
  平均熊市跌幅:-30至-45%
  市盈率压缩 + 收益失望 = 双向打击

低市盈率股票(最低五分位):
  平均熊市跌幅:-15至-25%
  已经低的预期 = 更少的失望空间

逆向投资组合在熊市中提供自然的缓冲,
无需任何市场时机或对冲。

7.4 止损政策

Dreman 不使用机械止损。他 arguments 止损与逆向投资是对立的:一支已经跌至其已经低的估值以下的股票,可能是更好的买入机会,而不是卖出信号。相反,他使用基本恶化作为卖出触发因素。


8. 行业和板块分析

8.1 各板块的逆向机会

不同板块轮流获得青睐和失宠,在板块层面创造逆向机会。Dreman 确定了模式:

板块轮动和逆向机会:

周期性板块(能源、材料、工业):
  逆向买入:在衰退期间,当收益受到抑制
  且市盈率看起来很高时(基于周期性低收益)
  逆向卖出:在扩张期间,当收益处于高位
  且市盈率看起来很低时(基于周期性高收益)
  注:使用标准化(周期中期)收益进行市盈率计算

防御性板块(公用事业、主要消费品、医疗):
  逆向买入:在牛市 euphoria 期间,当投资者
  追捧成长股而忽视防御性股票时
  逆向卖出:在熊市期间,当投资者逃往
  安全场所并推高防御性股票时

成长型板块(科技、生物技术):
  逆向买入:在行业范围的崩盘之后,惩罚
  好公司和坏公司不加区分
  逆向卖出:当该板块市盈率超过市场平均水平的2倍时

金融板块(银行、保险):
  逆向买入:在信贷危机期间,市场假设
  广泛破产(通常被高估)
  逆向卖出:当贷款增长加速和信贷
  标准放松时(衰退即将来临的迹象)

8.2 行业生命周期意识

Dreman 警告不要购买处于永久性下降行业中的便宜股票。逆向优势来自购买暂时失宠的股票,而非永久受损的股票。关键区别:

情况 行动
健康行业的周期性低迷 买入——经典逆向设置
暂时性公司特定问题 买入——如果基本面支持复苏
行业结构性下降 避免——便宜会变得更便宜
技术颠覆 避免——除非公司是颠覆者
监管破坏盈利能力 避免——永久性损害

8.3 国际逆向机会

Dreman 指出,逆向策略在国内和国际上都有效。国家层面的过度反应创造了机会:当一个国家的市场因危机(亚洲金融危机、欧洲债务危机)崩盘时,该市场中基本健全的公司的股票通常变得严重低估。


9. 逆向市场时机

9.1 Dreman 对市场时机的看法

Dreman 不进行精确的市场时机选择,但根据广义市场估值调整投资组合激进程度:

市场估值和投资组合立场:

市场市盈率 < 12(历史上便宜):
  立场:激进看涨
  行动:充分投资于逆向股票
  现金:0-5%

市场市盈率 12-18(公允价值区间):
  立场:适度看涨
  行动:充分投资,正常逆向选择
  现金:5-10%

市场市盈率 18-25(昂贵):
  立场:谨慎
  行动:仅购买极端逆向便宜货
  现金:10-20%
  开始提高质量标准

市场市盈率 > 25(历史上昂贵):
  立场:防御
  行动:持有现有仓位;不加仓
  现金:20-30%
  准备 correction 的购物清单

9.2 逆向市场信号

Dreman 确定了市场层面的几个逆向信号:

极端悲观(买入信号):

极端乐观(谨慎信号):


10. 行为优势

10.1 利用可预测的非理性

Dreman 将逆向投资框架为系统性利用可预测的心理偏见。这些偏见不是随机的——它们是一致的、有方向性的、可测量的。这使它们可以被利用:

偏见 → 市场错误 → 逆向策略

近期偏见 → 将近期趋势永远外推
  → 购买近期趋势不好的股票(均值回归)

过度自信 → 相信预测比实际更准确
  → 押注极端共识预测的反面

损失厌恶 → 感受到的损失是等效收益的2倍
  → 购买其他人在恐慌中抛售的股票

从众行为 → 跟随人群购买受欢迎的股票
  → 购买最不受欢迎的股票

锚定 → 锚定在近期价格或趋势上
  → 根据标准化基本面评估股票,而非近期结果

可得性偏见 → 过度权重鲜明近期事件
  → 看穿标题,关注底层业务质量

10.2 情感挑战

Dreman 对逆向投资的情感困难是诚实的:

对这些感觉是逆向优势来源的智力理解并不能消除它们。它只是使它们可控。

10.3 社会惩罚

逆向投资者面临动量投资者不承担的社会压力。如果你购买一只受欢迎的股票然后下跌,人们表示同情("每个人都在那只股票上赔钱")。如果你购买一只不受欢迎的股票然后下跌,人们批评("你为什么要买那个垃圾?")。这种社会惩罚强化了从众行为,并创造了不受欢迎股票持续被低估的现象。


11. 构建和管理逆向投资组合

11.1 逐步流程

第1步:筛选 universe
  从 S&P 500 或等效大盘股指数中的所有股票开始
  按市盈率、市净率、市销率和股息率排序
  识别至少一个指标处于底部20-30%的股票

第2步:应用财务质量过滤器
  消除未通过财务实力测试的股票
  (债务、现金流、盈利能力、流动性)
  这消除了大多数价值陷阱

第3步:评估基本前景
  对于剩余候选股票,评估:
  - 该行业是否处于结构性下降?
  - 公司的竞争地位是否在永久性侵蚀?
  - 问题是暂时的(周期性、一次性、情绪)还是永久的?

第4步:排序和选择
  按整体逆向吸引力对存活候选股票排序
  (估值便宜程度、财务质量、
  和重新估值的感知触发因素的组合)
  选择前20-30只股票

第5步:仓位规模
  大致等权重(across 所有持仓)
  没有仓位超过成本的5%
  任何单一板块最多25%

第6步:监控和再平衡
  季度审查——检查基本恶化
  年度再平衡——卖出已重新评级的股票,
  替换为新便宜的候选股票
  预期年度换手率:20-40%

11.2 卖出纪律

Dreman 的卖出规则:

卖出当:

1. 重新评级完成
   股票的市盈率已升至市场平均或以上
   → 逆向论点已经实现;获利了结

2. 基本面恶化
   公司的财务质量已实质性恶化
   (债务增加,现金流下降,收入持续下降)
   → 股票不再只是不受欢迎——它是真正受损的

3. 更好的机会
   存在显著更有吸引力的逆向候选股票
   而你需要资本来为其提供资金

4. 持有期超过
   如果股票在3-5年内没有重新评级,重新评估
   逆向论点是否有效或者是价值陷阱

不要因为以下原因卖出:
   - 股票进一步下跌(可能是更好的买入)
   - 分析师下调了它(分析师是过度反应的来源)
   - 市场处于熊市阶段(逆向股票表现更好)
   - 你对持仓"无聊"(无聊不是投资论点)

11.3 税收考虑

逆向投资组合有自然的税收优势:因为许多持仓持有数年才重新评级,收益是长期资本利得(以较低税率征税)。20-40%的年度换手率低于大多数主动经理的80-100%。


12. 实施伪代码

12.1 逆向股票筛选器

函数 dreman_contrarian_screen(universe, market_data):
    // 步骤1:计算估值排名
    对于 universe 中的每只股票:
        stock.pe_percentile = percentile_rank(stock.PE, universe.all_PE)
        stock.pb_percentile = percentile_rank(stock.PB, universe.all_PB)
        stock.ps_percentile = percentile_rank(stock.PS, universe.all_PS)
        stock.yield_percentile = percentile_rank(stock.dividend_yield, universe.all_yields)
        // 对于收益率,高是逆向的(便宜),所以反转
        stock.yield_contrarian = 100 - stock.yield_percentile

    // 步骤2:识别逆向候选股票(至少1个指标低估值)
    candidates = []
    对于 universe 中的每只股票:
        contrarian_metrics = 0
        如果 stock.pe_percentile <= 30: contrarian_metrics += 1
        如果 stock.pb_percentile <= 30: contrarian_metrics += 1
        如果 stock.ps_percentile <= 30: contrarian_metrics += 1
        如果 stock.yield_contrarian <= 30: contrarian_metrics += 1

        如果 contrarian_metrics >= 1:
            stock.contrarian_count = contrarian_metrics
            candidates.APPEND(stock)

    // 步骤3:应用财务质量过滤器
    qualified = []
    对于 candidates 中的每只股票:
        // 财务实力
        如果 stock.current_ratio < 1.5: 继续
        如果 stock.debt_to_equity > 0.60: 继续
        如果 stock.interest_coverage < 5: 继续

        // 盈利能力(过去5年中至少3年盈利)
        profitable_years = COUNT(year FOR year IN stock.last_5_years IF year.net_income > 0)
        如果 profitable_years < 3: 继续

        // 现金流质量
        如果 stock.operating_cash_flow <= 0: 继续
        如果 stock.FCF_to_net_income < 0.5: 继续

        // 最小规模
        如果 stock.market_cap < 1_000_000_000: 继续

        qualified.APPEND(stock)

    // 步骤4:消除价值陷阱
    filtered = []
    对于 qualified 中的每只股票:
        // 结构性下降检查
        如果 stock.revenue_growth_5yr < -5%: 继续  // 持续收入下降
        如果 stock.industry_outlook == "SECULAR_DECLINE": 继续

        // 会计质量
        如果 stock.audit_qualifications > 0: 继续
        如果 stock.earnings_restatements_3yr > 0: 继续

        // 治理检查
        如果 stock.insider_selling_heavy AND stock.PE_low:
            继续  // 内部人在便宜股票时抛售 = 红旗

        filtered.APPEND(stock)

    // 步骤5:按逆向吸引力排序
    对于 filtered 中的每只股票:
        stock.contrarian_score = (
            (30 - stock.pe_percentile) * 0.35 +    // 市盈率权重最高
            (30 - stock.ps_percentile) * 0.25 +     // 市销率第二
            (30 - stock.pb_percentile) * 0.20 +     // 市净率第三
            (30 - stock.yield_contrarian) * 0.10 +   // 收益率第四
            stock.contrarian_count * 10               // 多指标 bonus
        )

        // 财务实力 bonus
        stock.contrarian_score += stock.current_ratio * 2
        stock.contrarian_score += MIN(stock.interest_coverage, 20)

    filtered.SORT_BY(contrarian_score, DESCENDING)
    RETURN filtered[:40]  // 手动审查的前40名候选股票

12.2 投资组合构建

函数 build_contrarian_portfolio(candidates, capital):
    portfolio = []
    sector_allocation = {}

    target_positions = 25
    position_size = capital / target_positions
    max_sector_pct = 0.25

    对于 candidates 中的每只股票:
        如果 len(portfolio) >= target_positions:
            BREAK

        // 板块限制检查
        sector = stock.sector
        current_sector_pct = sector_allocation.get(sector, 0) / capital
        如果 current_sector_pct + (position_size / capital) > max_sector_pct:
            CONTINUE  // 会超过板块限制

        // 添加持仓
        position = {
            stock: stock,
            shares: FLOOR(position_size / stock.price),
            cost_basis: stock.price,
            entry_PE: stock.PE,
            entry_PB: stock.PB,
            entry_date: TODAY,
            target_PE: market_average_PE,  // 市盈率正常化时卖出
            thesis: document_contrarian_thesis(stock),
            red_flags_to_watch: identify_risk_factors(stock)
        }

        portfolio.APPEND(position)
        sector_allocation[sector] = sector_allocation.get(sector, 0) + position_size

    // 剩余资本为现金或短期债券
    invested = SUM(p.shares * p.cost_basis FOR p IN portfolio)
    portfolio.cash = capital - invested

    RETURN portfolio

12.3 年度再平衡

函数 annual_rebalance(portfolio, market_data):
    sells = []
    holds = []

    对于 portfolio.stocks 中的每个持仓:
        stock = get_current_data(position.stock)

        // 检查重新评级是否完成
        如果 stock.PE >= market_data.median_PE:
            sells.APPEND({
                position: position,
                reason: "REVALUATION_COMPLETE",
                return: (stock.price - position.cost_basis) / position.cost_basis
            })
            CONTINUE

        // 检查基本恶化
        如果 stock.debt_to_equity > 1.0 AND position.entry_debt_equity < 0.6:
            sells.APPEND({position: position, reason: "DEBT_DETERIORATION"})
            CONTINUE

        如果 stock.revenue_growth_trailing_3yr < -10%:
            sells.APPEND({position: position, reason: "REVENUE_COLLAPSE"})
            CONTINUE

        如果 stock.operating_cash_flow < 0 AND position.entry_OCF > 0:
            sells.APPEND({position: position, reason: "CASH_FLOW_DETERIORATION"})
            CONTINUE

        // 检查过度持有期
        holding_years = (TODAY - position.entry_date).years
        如果 holding_years > 5 AND stock.PE < position.entry_PE:
            sells.APPEND({
                position: position,
                reason: "HOLDING_PERIOD_EXCEEDED_NO_PROGRESS"
            })
            CONTINUE

        holds.APPEND(position)

    // 执行卖出
    cash_raised = 0
    对于 sells 中的每个卖出:
        cash_raised += execute_sell(sell.position)
        LOG("SELL {sell.position.stock.name}: {sell.reason}, Return: {sell.return:.1%}")

    // 筛选新候选股票
    new_candidates = dreman_contrarian_screen(market_data.universe, market_data)

    // 移除投资组合中已有的任何股票
    new_candidates = [c FOR c IN new_candidates IF c NOT IN holds]

    // 使用可用现金买入新持仓
    available_cash = portfolio.cash + cash_raised
    positions_to_add = len(sells)  // 替换卖出的持仓

    对于 i IN range(positions_to_add):
        如果 i >= len(new_candidates): BREAK
        如果 available_cash < portfolio.min_position_size: BREAK

        position_size = available_cash / (positions_to_add - i)
        new_position = create_position(new_candidates[i], position_size)
        holds.APPEND(new_position)
        available_cash -= position_size

        LOG("BUY {new_candidates[i].name}: PE={new_candidates[i].PE}, "
            "PB={new_candidates[i].PB}")

    portfolio.stocks = holds
    portfolio.cash = available_cash
    RETURN portfolio

12.4 盈利意外监控器

函数 monitor_earnings_surprises(portfolio):
    // 跟踪 Dreman 记录的非对称意外模式

    对于 portfolio.stocks 中的每个持仓:
        如果 position.stock.reporting_earnings_this_week:
            consensus_EPS = get_consensus_estimate(position.stock)
            actual_EPS = get_actual_earnings(position.stock)

            surprise_pct = (actual_EPS - consensus_EPS) / ABS(consensus_EPS)

            如果 surprise_pct > 0.05:
                // 正面意外 >5% — 逆向论点正在发挥作用
                LOG("POSITIVE SURPRISE: {position.stock.name} "
                    "beat by {surprise_pct:.1%}")
                // 考虑持有度过动量
                position.surprise_catalyst = TRUE

            否则如果 surprise_pct < -0.10:
                // 重大负面意外 — 重新评估论点
                LOG("NEGATIVE SURPRISE: {position.stock.name} "
                    "missed by {surprise_pct:.1%}")
                // 关键性重新评估:这是暂时的还是永久的?
                position.needs_review = TRUE

            否则:
                // 符合预期或小意外 — 继续持有
                LOG("IN-LINE: {position.stock.name}")

13. 重要语录

"你可以学习的最重要的投资教训是,投资者 consistently 对事件——无论是正面还是负面——过度反应,而且这种过度反应创造了股票市场中最可靠的利润机会。"

"买入失宠的股票,卖出受欢迎的股票。这是获得高于平均长期回报的最可靠策略。"

"分析师的预测和天气预报一样容易出错。区别是没有人根据天气预报买入股票。"

"股票市场最大的讽刺是,投资者最害怕的股票是他们应该买入的,而他们最兴奋的股票是他们应该避免的。"

"已经下跌80%的股票可以再跌80%。但低估值加上基本质量的组合创造了一个底部,纯投机型股票没有这个底部。"

"低市盈率股票跑赢高市盈率股票,不是因为便宜股票天生更好,而是因为投资者心理学系统性地错误定价了两类股票。"

"市场最大的错误不是来自愚蠢,而是来自对新的解读应用一致的认知偏见。"

"在逆向投资中多元化是必不可少的——不是因为策略有风险,而是因为个别逆向持仓是不确定的。策略在统计上有效,而不是逐个股票有效。"

"买入其他人正在抛售的东西的情感困难是逆向溢价存在的原因。如果这很容易,每个人都会这样做,溢价就会消失。"

"盈利意外是便宜股票变成公允价值股票的机制。意外迫使投资者修正他们过于悲观的假设。"

"要成为一个成功的逆向投资者,你不需要预测未来。你只需要认识到市场对未来的预测是系统性地有偏的。"

"逆向投资者拥有的最大优势是时间。在短期内,市场的偏见可能持续。在长期内,它们总是会被纠正。"


《逆向投资策略》为有记录以来最稳健的投资方法之一提供了实证、心理和实践基础。Dreman 的贡献不仅仅是识别便宜股票跑赢——其他人在他之前也注意到了这一点——而是通过行为心理学解释为什么,通过具体的选择标准解释如何做,并通过数十年的严格回测解释有多少。对于愿意承受购买被其他人拒绝的东西的社会和情感不适的投资者,Dreman 的框架提供了一条有据可查的、获得高于平均水平回报的路径。