投资核心资产——完整实施规范

基于张忆东,《投资核心资产》(2020)


目录

  1. 概述
  2. 定义核心资产
  3. 宏观框架
  4. 估值框架
  5. 入场规则
  6. 出场/风险管理
  7. 组合构建
  8. 行业特定分析
  9. 行为/纪律规则
  10. 常见错误
  11. 完整投资生命周期示例
  12. 实施伪代码
  13. 关键语录/原则

1. 概述

张忆东的核心论点是,全球资本市场正在经历一个长期的结构性转变:回报越来越集中在他所谓的"核心资产"——一小部分高质量公司中。这不是暂时的风格轮动,而是由三个不可逆力量驱动的永久重新排序:

  1. 经济成熟。 随着GDP增长放缓,"水涨船高"的时代已经结束。只有具有真正竞争优势的公司才能持续复合价值。平庸公司的尾部停滞或下降。

  2. 资本制度化。 散户主导的投机让位于机构持股。共同基金、保险资本、养老金和外国投资者都倾向于质量、流动性和透明度——核心资产的定义属性。

  3. 估值全球化。 随着沪港通、MSCI纳入和富时Russell整合,A股核心资产与全球同行进行估值比较。中国消费领袖与雀巢、路威酩轩和宝洁处于同一估值宇宙。错误定价收窄;质量溢价。

对投资者的实际含义:放弃追逐小盘动量和主题投机的旧策略。相反,构建由一流公司组成的集中组合,以合理估值买入,穿越完整市场周期持有。具有持久15-25% ROE的企业在5-10年内的复合效果压倒任何短期交易优势。

张认为,2020年左右的A股市场处于与美国1980年代初、日本1970年代末和韩国2000年代初可比的拐点——每一个都看到了优质蓝筹股相对于大盘的戏剧性和永久性重估。


2. 定义核心资产

2.1 什么符合核心资产

核心资产是同时满足以下所有标准的公司:

维度 要求
护城河 持久的结构性优势(品牌、规模、网络、专利)
行业领导力 主要细分市场第1或第2名市场份额
现金流质量 过去3-5年正且不断增长的自由现金流
股本回报率 ROE持续高于15%,最好高于20%
品牌/定价权 在不失去成交量的情况下提价的能力
管理质量 经验丰富、利益一致、长期任职的管理层
治理 报告透明、 minority股东保护

2.2 定量筛选标准

主要过滤器(全部必须通过):

ROE(过去3年平均)          >= 15%
毛利率(过去3年平均)        >= 30%(行业调整后)
收入CAGR(过去5年)        >= 10%
自由现金流                   过去5年至少4年为正
市场份额                   主要细分市场前2名
债务/权益                   < 1.0(非金融)
股息派发或回购历史           持续的资本回报计划

次要过滤器(评分模型,非硬性截止):

+3分:ROE > 20%
+2分:收入CAGR > 15%
+2分:净利润率过去3年扩大
+2分:FCF/净收入 > 80%(高盈利质量)
+1分:过去12个月内部人士买入
+1分:北向(外国)所有权增加
+1分:10+家券商分析师覆盖
-2分:单一客户收入集中 > 50%
-2分:关联交易 > 收入的10%
-3分:3年内审计不合格或重述

最低合格分数:次要过滤器后5分。

2.3 核心资产的板块分布

张识别了核心资产聚集的四个主要板块:

  1. 消费必需品(30-35%权重): 白酒( liquor)、乳制品、调味品、家居用品。这些业务有最强品牌护城河、最高定价权和最可预测现金流。贵州茅台是原型。

  2. 医疗(20-25%权重): 创新制药、CRO/CDMO平台、医疗器械、领先医院/诊所。由人口老龄化和医疗支出增长驱动,增速为GDP增速2-3倍。

  3. 科技(20-25%权重): 平台互联网公司、半导体领袖、云基础设施、消费电子供应链冠军。由于更高的颠覆周期,需要更细致的分析。

  4. 金融(15-20%权重): 领先保险公司、一流股份制银行、财富管理平台。中国最好的金融公司在账面价值深度折扣交易,尽管ROE优越。

2.4 为什么核心资产在完整周期中表现优异

表现优异不仅仅关于估值重估。它来自三个复合机制:


3. 宏观框架

3.1 中国经济转型

张将中国经济演变分为三个阶段:

阶段 时期 增长驱动 市场特征
I 2001-2010 投资和出口 周期股、大宗商品领先
II 2011-2020 转型期 小盘投机持续
III 2020+ 消费和创新 核心资产主导

在第三阶段,GDP增长稳定在4-6%。总增长放缓,但组成戏剧性转变:消费从约55%上升到65-70%,服务业超过制造业,研发支出加速。与这一结构性转变一致的公司捕获了增量经济价值的不成比例份额。

3.2 利率环境

较低的长期利率通过两个渠道支持核心资产:

张强调,中国10年期国债收益率从4%+下降到2.5-3.5%范围是长期结构性转变,而非周期性。这结构性支持高质量公司更高股权估值。

3.3 人民币国际化和外资流入

中国资本账户开放是核心资产重估的最重要单一结构性驱动:

外国投资者带来全球估值标准。他们将中国消费必需品与雀巢和联合利华比较,中国制药与罗氏和阿斯利康比较。这种比较经常揭示中国核心资产尽管增长更快,但仍被低估相对于全球同行,触发持续购买。

3.4 全球比较:其他市场的教训

张借鉴直接历史市场转型:

美国(1980年代-2000年代): 1970年代的"漂亮50"概念是早熟但方向正确的。1982年底部之后,美国市场越来越被少数 mega-cap 质量股票主导。到2010年代,FAANG集中达到极端水平。教训:一旦质量溢价 hold,它持续数十年。

日本(1970年代-1980年代): 随着日本GDP增长从两位数放缓至中个位数,市场从周期股/出口股转向国内消费和科技领袖。丰田、索尼和消费 franchise 显著跑赢 broad Nikkei。张注意到类比不完美,因为日本泡沫扭曲了这一过程。

韩国(2000年代-2010年代): 亚洲金融危机后,三星电子、现代和少数财阀领袖主导韩国市场回报。KOSPI越来越成为三星的代理。外国对三星的所有权达到55%+,驱动持续重估。

共同模式:经济放缓 -> 机构资本流入 -> 质量集中 -> 核心资产溢价。中国正在穿越完全相同的路径。


4. 估值框架

4.1 核心资产的DCF方法

对于具有稳定和可预测现金流的核心资产,张主张两阶段DCF模型:

第一阶段(第1-10年):显式预测期
  - 收入增长:使用第1-3年共识估计,然后逐渐减少到
    第10年长期可持续增长
  - 利润率:保持稳定或如果有结构性驱动则允许轻微扩张
  - 资本支出:到第5-7年正常化到维护水平
  - WACC:对大多数核心资产使用8-10%(公用事业较低,科技较高)

第二阶段(终值):
  - 长期增长率:3-4%(名义GDP代理)
  - 长期FCF利润率:基于成熟状态同行的保守估计
  - 戈登增长模型:TV = FCF_Year10 * (1 + g) / (WACC - g)

内在价值 = 第一阶段FCF现值之和 + 终值现值

关键纪律:终值不应超过总内在价值的60-65%。如果超过,要么显式预测期假设可能过于保守,要么长期增长率过于激进。重新校准。

4.2 PEG分析的增长率调整

对于DCF敏感性太高的更快增长核心资产,张使用PEG调整的PE框架:

公允价值PE = 盈利增长率(%) * PEG比率

按行业的PEG比率基准:
  消费必需品:  PEG 1.5 - 2.0(稳定性溢价)
  医疗:        PEG 1.2 - 1.8(结构性增长溢价)
  科技:        PEG 0.8 - 1.5(颠覆风险折扣)
  金融:        PEG 0.6 - 1.0(杠杆风险折扣)

示例:以每年20%速度增长盈利的消费必需品核心资产值得30-40倍PE(20% * 1.5-2.0 PEG)。以相同速度增长的科技核心资产仅值得16-30倍PE(20% * 0.8-1.5 PEG)。

4.3 为什么核心资产应该获得估值溢价

张阐述了"确定性溢价"——投资者应该为可预测结果支付更多:

4.4 何时核心资产变得过高——警告信号

核心资产并非对过高估值免疫。张识别具体警告阈值:

过高估值警告触发:
  1. PE超过历史5年平均PE的2倍
  2. PE超过未来盈利增长率的3倍(PEG > 3.0)
  3. 股息收益率对于有既定派息历史的股票低于0.5%
  4. 分析师共识有0个卖出评级(普遍乐观)
  5. 散户所有权激增(动量追逐者迟到)
  6. 相对全球同行组在PE基础上溢价超过50%
  7. 非超增长公司价格/FCF超过50倍

当3个或更多这些触发器同时激活时,历史上下行20%+在12个月内发生的概率超过70%。

4.5 按行业历史估值范围

中国核心资产(A Shares上市)参考范围:

行业 便宜(买入区) 公允价值 昂贵(谨慎) 泡沫
消费必需品 PE < 20倍 PE 20-35倍 PE 35-50倍 PE > 50倍
医疗 PE < 25倍 PE 25-40倍 PE 40-60倍 PE > 60倍
科技 PE < 20倍 PE 20-35倍 PE 35-50倍 PE > 50倍
金融(银行) PB < 0.6倍 PB 0.6-1.0倍 PB 1.0-1.5倍 PB > 1.5倍
金融(保险) PEV < 0.6倍 PEV 0.6-1.0倍 PEV 1.0-1.3倍 PEV > 1.3倍

这些范围随利率和增长预期随时间移动。用作锚点,而非 rigid 规则。


5. 入场规则

5.1 在长期上升趋势内的估值下跌时买入

主要入场策略是在长期盈利轨迹完整时,在临时估值压缩期间买入核心资产:

入场条件集A — 估值下跌买入:
  1. 股票处于"便宜"或"公允价值"区低端(第4.5节)
  2. 过去12个月价格从峰值下跌 >= 20%
  3. 未来盈利预测未被下调 > 10%
  4. 下跌由宏观/市场因素驱动,而非公司特定恶化
  5. 在下跌期间机构所有权保持稳定或增加

如果全部五个条件满足,以目标配置50% init 位。如果股票在无基本变化的情况下进一步下跌10-15%,或当第一个季度盈利报告确认论点时,添加剩余50%。

5.2 市场恐慌期间逆向买入

张强调最佳核心资产入场点与市场范围恐慌事件同时发生——贸易战、疫情恐慌、信贷危机、监管冲击:

入场条件集B — 恐慌买入:
  1. 宽基市场(沪深300)在< 3个月内下跌 >= 15%
  2. VIX等价物(中国波弗/iVX)处于12个月高点
  3. 融资融券余额从峰值下跌 >= 20%
  4. 北向(外国)流量连续5+天净卖出
  5. 媒体情绪压倒性负面;"熊市"头条主导
  6. 目标核心资产PE处于其5年范围的底部20百分位

当4个或更多这些条件满足时,积极部署资本。这些窗口罕见(每1-3年一次)且短暂(通常2-6周)。投资者必须在恐慌到来之前 pre-identify 目标股票和估值。

5.3 盈利增长加速作为催化剂

对于以公允估值持有的核心资产,张识别盈利加速作为增加仓位规模的信号:

入场条件集C — 盈利加速:
  1. 季度盈利增长率超过上一季度的增长率
  2. 收入增长也在加速(不仅仅是利润率扩张)
  3. 管理层提高未来指导或分析师预测上调 >= 5%
  4. 运营现金流确认盈利质量(OCF/NI > 0.8)

此信号用于将现有持仓从50-70%增加到100%目标权重,而非从零开始 init 新仓位。

5.4 技术确认

张主要是基本面投资者,但承认时机的技术确认价值:

技术确认清单:
  - 价格高于200日移动均线(或从下方重新夺回)
  - 上涨日相对于下跌日成交量扩大
  - 相对沪深300指数的相对强度稳定或转向上升
  - 股票已突破数周/数月的整合范围
  - RSI上无 bearish 分歧(新价格高但RSI更低)

当基本面条件处于边缘时,技术信号作为决胜局。它们永远不应覆盖负面基本面评估。


6. 出场/风险管理

6.1 估值天花板触发

减少持仓(卖出30-50%):
  - PE达到"昂贵"区且盈利增长正在减速
  - PEG比率超过消费/医疗2.5倍,科技/金融2.0倍
  - 股票在< 6个月内上涨 > 50%而无相应盈利增长

全出:
  - PE达到"泡沫"区(第4.5节)
  - 3+个过高估值警告同时触发(第4.4节)
  - 公司宣布在峰值估值时进行大规模稀释性股权发行
  - 基本面论点已改变(见第6.2节)

6.2 基本面恶化信号

无论估值如何,这些是不可谈判的出场触发:

立即出场触发(在5个交易日内卖出全部持仓):
  1. 利润率压缩:毛利率连续3个季度下降且无可信的恢复计划
  2. 市场份额损失:公司将第1或第2名市场份额输给拥有更优产品/商业模式竞争对手
  3. 管理层危机:CEO/创始人以争议方式离职,会计欺诈指控或重大治理丑闻
  4. 监管破坏:新法规结构性损害商业模式(非临时执法行动)
  5. 资产负债表风险:债务/权益超过2.0倍(非金融)或覆盖比率低于2倍EBITDA/利息

观察列表触发(在1-3个月内开始减少持仓):
  1. 收入增长连续2个季度低于行业平均
  2. 多位高级职位关键人才离职
  3. 研发支出占收入百分比连续2+年下降
  4. 客户集中度增加(前客户 > 收入的30%)
  5. 资本支出显著超过折旧连续3+年而无相应收入增长(帝国建设)

6.3 核心资产组合中的仓位配置

仓位配置规则:
  单只股票最大:           按成本计投资组合的8%
                              按市值计投资组合的12%(让盈利奔跑)
  入场时单只股票最大:     按成本计投资组合的5%
  最小持仓大小:          投资组合的2%(低于此不值得监控)
  核心资产持仓数量:       10-20只股票

根据信念和估值调整仓位:

信念 估值区 持仓大小(占组合%)
便宜 6-8%
公允价值 4-6%
昂贵 0-2%(削减或退出)
便宜 4-5%
公允价值 2-4%
昂贵 0%(退出)

6.4 板块集中限制

板块限制:
  最大单一板块:          组合总权益的35%
  最少行业数量:          4个主要板块中的3个
  如果一个板块超过35%:   在30个交易日内 rebalance

7. 组合构建

7.1 核心-卫星方法

张主张70/30组合结构:

核心配置(总组合的70%):
  - 10-15个核心资产持仓
  - 最低持有期3-5年
  - 仅在估值极端或基本面变化时 rebalance
  - 目标:通过盈利复合 + 适度重估实现12-18%年化回报

卫星配置(总组合的30%):
  - 5-10个战术持仓
  - 新兴核心资产(正在增长为核心资产状态的公司)
  - 周期性质量股(周期上行期间周期性行业中的核心资产)
  - 事件驱动情况(重组、分拆、监管催化剂)
  - 较短持有期:6-18个月
  - 目标:以更高风险承受实现20-30%年化回报

7.2 核心资产内的多元化

目标板块配置:
  消费必需品:    25-35%
  医疗:          20-25%
  科技:          15-25%
  金融:          10-20%
  其他(工业/
   材料领袖):    0-10%

在每个板块内,持有2-4个持仓以减少单只股票风险,同时保持足够集中以有意义的持仓。

7.3 Rebalancing频率和触发

计划的再平衡:
  - 每个盈利季节后每季度审查组合
  - 计算每个持仓的更新公允价值
  - 如果实际权重偏离目标 > 3%,调整持仓大小

事件驱动再平衡:
  - 市场 correction > 15%:审查所有持仓以寻找机会性增持
  - 单只股票 > 组合的12%:在2-4周内削减至8%
  - 板块超过35%:在30个交易日内减少至30%
  - 基本面论点破坏:在5个交易日内退出(第6.2节)
  - 识别新核心资产:从最低信念现有持仓中资助

7.4 长期持有哲学

张强调核心资产的最低有效持有期为3-5年。这不是随意的;这是所需的最低时间:

理想持有期为"只要论点 hold"。张引用2005-2020年的茅台持有者作为 definitive 示例:100倍回报几乎完全由盈利复合驱动,估值倍数在 whole 期间大致平坦。捕获这一回报的投资者除了持有外什么都没做。


8. 行业特定分析

8.1 消费(茅台型护城河)

要看什么:

关键指标:

毛利率:            > 60%(高端品牌),> 40%(大众高端)
净利率:          > 25%
ROE:              > 25%
收入增长:          > 10%可持续
预收款项/
 合同负债:         增长(需求超过供给)
库存周转:          稳定或改善

原型: 贵州茅台(白酒)、海天味业(调味品)、伊利集团(乳制品)、中国国旅(免税零售)。

估值锚点: 消费核心资产如果盈利增长保持15-20%,可以在完整周期内维持25-35倍PE。低于20倍PE在暂时挫折时是强劲买入信号。

8.2 医疗(创新 + 人口老龄化)

要看什么:

关键指标:

研发占收入百分比:    > 10%(创新制药),> 5%(器械/服务)
过去5年推出产品收入占比: > 30%
管道价值:          使用后期管道风险调整NPV
毛利率:            > 70%(创新制药),> 50%(器械)
客户多元化:        单一医院/支付方 < 收入的10%

原型: 恒瑞医药(创新制药)、药明康德(CRO/CDMO平台)、迈瑞医疗(医疗器械)、爱尔眼科(专科连锁)。

估值锚点: 医疗核心资产因医疗支出结构性增长而获得30-50倍PE溢价。使用管道调整PE:從市值中减去估计管道NPV,然后计算现有产品盈利的PE。管道调整PE应< 30倍。

8.3 科技(平台公司、硬件领袖)

要看什么:

关键指标:

收入增长:          > 20%(成长阶段),> 10%(成熟平台)
用户指标:          DAU/MAU比率 > 50%,用户增长为正
毛利率:            > 50%(软件/平台),> 25%(硬件)
FCF利润率:        > 15%(平台),> 8%(硬件)
研发占收入百分比:   > 10%
客户留存/
 净美元留存:       > 100%(企业SaaS)

原型: 腾讯、阿里巴巴(平台)、宁德时代(电池技术领袖)、立讯精密(硬件供应链)、韦尔半导体(半导体)。

估值锚点: 科技核心资产需要更动态的估值。高增长阶段使用EV/收入(目标30%+增长者5-10倍),随着增长成熟过渡到PE。应用20-30%折扣与美国可比公司倍数以应对监管和地缘政治风险。

8.4 金融(保险、领先银行)

要看什么:

关键指标:

银行:
  ROE:                   > 12%
  NPL比率:              < 1.5%,呈下降趋势
  拨备覆盖率:           > 200%
  CET1比率:             > 10%
  费用收入占总收入百分比: > 25%且增长

保险:
  内涵价值增长:           > 15%每年
  新业务价值
   利润率:              > 30%
  综合比率(财险):       < 100%
  投资回报:              周期平均 > 5%
  代理生产力:            改善趋势

原型: 招商银行(零售银行)、中国平安(综合金融平台)、中国太平洋保险(人寿保险)。

估值锚点: 银行以P/B估值(核心资产目标0.8-1.2倍,其中账面价值可信)。保险公司以P/EV(股价与内涵价值)估值,核心资产交易在0.7-1.2倍EV。两者都应相对于板块平均获得溢价,但很少交易高于1.5倍P/B或P/EV。


9. 行为/纪律规则

张对核心资产投资的心理挑战给予重大关注:

规则1:克服"太贵"偏见

核心资产几乎总是看起来在 trailing PE上过贵。等茅台交易在15倍PE的投资者永远不会拥有它。训练自己评估远期盈利能力,而非 trailing 倍数。处于35倍 trailing 盈利但以25%增长的股票是28倍远期——对于核心资产来说 reasonable。

规则2:抵制轮动诱惑

当小盘或主题投机在一个季度内上涨50%,而你的核心资产回报5%时,轮动的诱惑是强烈的。不要。在5年视野内,核心资产压倒性地跑赢。小盘反弹不可预测、不可重复,且往往与积累一样快速地回吐收益。

规则3:拥抱无聊

核心资产投资有意无聊。你买入质量,持有穿越波动,让复合发挥作用。如果你发现自己交易频繁,每小时检查价格,或对你的组合感到兴奋,你做错了。

规则4:不要在恶化中平均下来

在基本面论点完整时买入 dips 是正确的。如果核心资产下跌是因为其竞争地位真正削弱,平均下来只是增加了对恶化情况的风险敞口。要区分"因市场恐惧而便宜"和"因业务正在崩溃而便宜"。

规则5:保持投资日志

记录每笔买入和卖出决策:

规则6:忽略短期噪音

季度盈利 miss、分析师下调、宏观头条和短期价格波动对于3-5年投资者是噪音。仅对改变结构性论点(竞争地位、行业动态、管理质量或监管框架)的信息做出反应。

规则7:根据信念而非舒适度调整仓位

许多投资者因为感觉更安全而持有30-50个小仓位。这是 diversification fiction,而非多元化。核心资产投资需要集中持仓(每只2-8%在10-20只股票中)足够大以使其对你 total wealth 的复合有重要性。


10. 常见错误

错误1:混淆"著名"与"核心资产"

并非每个大盘蓝筹股都是核心资产。具有低ROE、下降市场份额和糟糕资本配置的国有企业 large 且 liquid 但不是核心资产。严格应用筛选标准;名称认知不能替代基本面质量。

错误2:在泡沫估值时买入核心资产

发现核心资产投资的最坏时机是多头运行结束时,每个评论员都在赞扬质量股票。在70倍PE买入茅台或在PEG > 3.0时买入消费股票是投机伪装成价值投资。入场估值对 forward 回报仍然非常重要。

错误3:将核心资产作为交易工具

买入核心资产但根据10-20%波动进行交易的投资者破坏了复合优势。交易成本、资本利得税和持续时机再入场的不可能性意味着频繁交易核心资产 underperform buy-and-hold 3-5%每年。

错误4:忽视全球背景

中国核心资产并非孤立存在。当美国国债急剧抛售时,全球风险偏好收缩,外国投资者卖出A股。当美联储积极收紧时,中国核心资产估值面临逆风,而不考虑当地基本面。监控影响估值 equation 需求侧的全球宏观条件。

错误5:将板块集中伪装为多元化

拥有8只消费必需品股票不是多元化。如果消费板块因需求冲击、经济衰退或监管行动(如反垄断执法)而下降,所有8个持仓将一起下跌。在板块间多元化,而不仅仅是在单一板块内的公司间多元化。

错误6:锚定购买价格

你的成本基础与 forward 决策无关。如果核心资产上涨100%,现在处于"泡沫"估值区,正确行动是削减,而不管你是否有 gain 或 loss。同样,如果股票在你的购买价格下方30%,但仍在"公允价值"区,没有理由仅仅因为显示亏损而卖出。

错误7:忽视卫星配置

30%卫星配置存在是有原因的:它提供战术灵活性、捕获新兴机会,并满足人类对行动的天然渴望。将100%分配给核心资产的投资者在投机市场阶段经常破坏纪律,因为他们没有发泄战术本能的 outlet。


11. 完整投资生命周期示例

阶段1:识别(第0月)

一家公司,"Leader Pharma"(虚构),出现在核心资产筛选器中:

筛选结果:
  ROE(3年平均):       22%     通过(>= 15%)
  毛利率(3年平均):     78%     通过(>= 30%)
  收入CAGR(5年):       24%     通过(>= 10%)
  FCF为正:              5/5年  通过
  市场份额:             CRO第一  通过
  债务/权益:            0.3倍   通过(< 1.0倍)
  股息历史:              3年    通过
  次要分数:              +8      通过(>= 5)
    (+3 ROE > 20%,+2 CAGR > 15%,+2 利润率扩张,+1 外国买入)

阶段2:深度研究(第0-1月)

进行基本面分析:

估值评估:

当前价格:               人民币120
Trailing PE:           55倍
远期PE(共识):         42倍
盈利增长(未来2年):     30% CAGR
PEG比率:               1.4倍(42/30)
板块PEG基准:           1.2-1.8倍
估值区:               公允价值(范围中部)

决策:股票通过所有基本面标准但尚未足够便宜以满仓。添加到观察列表,目标入场PE为35倍或以下(这意味着从当前水平约17%回调)。

阶段3:入场(第4月)

由美国国债收益率上升驱动的宽基市场 correction 导致沪深300在6周内下跌12%。Leader Pharma跌至人民币100(PE降至38倍远期)。盈利预测未变。

入场条件集A检查:

  1. 估值:38倍远期PE,公允价值低端    通过
  2. 价格下跌:-17%从峰值               部分(接近20%)
  3. 盈利预测:无向下修订              通过
  4. 下跌驱动:宏观,非公司特定         通过
  5. 机构所有权:稳定                  通过

决策:以目标权重50% init(组合的3%,人民币100)。Leader Pharma继续下跌至人民币90(PE 34倍远期)随着 correction 加深。基本面完整。添加剩余50%(额外组合的3%)。总持仓:组合6%,平均成本人民币95。

阶段4:持有期(第4-40月)

在接下来3年,Leader Pharma盈利以28% CAGR增长(略低于30%估计但在可接受范围内)。股票从平均成本人民币95上涨至人民币220。

每季度盈利季节的审查流程:

在第24月,股票短暂超过人民币250(PE达到50倍远期)。这进入"昂贵"区。削减30%持仓(卖出组合的1.8%),持仓减少至组合的4.2%。

阶段5:重新评估/退出(第40月)

在第40月,新地缘政治发展限制跨境制药数据共享。Leader Pharma前5名客户(40%收入)表示将减少对中国外包。分析师预测被削减15%。

基本面恶化检查:

  监管破坏商业模式?     部分——显著损害
  收入集中风险已实现?   是——前5名客户减少订单
  管理层回应可信?     不清楚——转向国内但国内市场和利润率更低

决策:这构成结构性论点变更,而非暂时挫折。在2周内退出剩余持仓。以平均人民币195卖出。

结果摘要

初始投资:    组合6.0%,人民币95
部分削减:    组合1.8%以人民币250卖出  (+163%)
最终退出:    组合4.2%以人民币195卖出  (+105%)
混合回报:    +120%,40个月,约30%年化
持有期:      3.3年(在3-5年目标范围内)

这笔投资成功是因为纪律性入场(在 correction 期间买入)、耐心持有穿越波动、在昂贵估值时部分获利了结,以及当结构性论点变化时果断退出。


12. 实施伪代码

12.1 核心资产筛选器

def screen_core_assets(universe):
    """
    筛选潜在核心资产的股票 universe。
    返回带有分数的排名候选列表。
    """
    candidates = []

    for stock in universe:
        # --- 主过滤器(全部必须通过)---
        roe_3yr = average(stock.roe, years=3)
        if roe_3yr < 0.15:
            continue

        gross_margin_3yr = average(stock.gross_margin, years=3)
        sector_threshold = get_margin_threshold(stock.sector)  # 例如 0.30
        if gross_margin_3yr < sector_threshold:
            continue

        revenue_cagr_5yr = cagr(stock.revenue, years=5)
        if revenue_cagr_5yr < 0.10:
            continue

        fcf_positive_years = sum(1 for y in range(5) if stock.fcf[y] > 0)
        if fcf_positive_years < 4:
            continue

        if stock.market_share_rank > 2:
            continue

        if stock.sector != "Financials" and stock.debt_to_equity > 1.0:
            continue

        # --- 次要评分 ---
        score = 0
        if roe_3yr > 0.20:
            score += 3
        if revenue_cagr_5yr > 0.15:
            score += 2
        if is_margin_expanding(stock, years=3):
            score += 2
        if stock.fcf_to_net_income > 0.80:
            score += 2
        if stock.insider_buying_12m:
            score += 1
        if stock.northbound_ownership_increasing:
            score += 1
        if stock.analyst_coverage >= 10:
            score += 1
        if stock.top_client_revenue_pct > 0.50:
            score -= 2
        if stock.related_party_pct > 0.10:
            score -= 2
        if stock.audit_issues_3yr:
            score -= 3

        if score < 5:
            continue

        candidates.append({
            "ticker": stock.ticker,
            "name": stock.name,
            "sector": stock.sector,
            "roe": roe_3yr,
            "growth": revenue_cagr_5yr,
            "score": score,
            "current_pe": stock.trailing_pe,
            "forward_pe": stock.forward_pe
        })

    # 按分数降序排序,然后按ROE降序
    candidates.sort(key=lambda x: (-x["score"], -x["roe"]))
    return candidates

12.2 估值监控器

def evaluate_valuation(stock, sector_ranges):
    """
    确定估值区并生成交易信号。
    返回:区域(str)、信号(str)、详情(dict)
    """
    ranges = sector_ranges[stock.sector]
    metric = stock.forward_pe  # 或金融的PB/PEV

    # 确定区域
    if metric < ranges["cheap_upper"]:
        zone = "CHEAP"
    elif metric < ranges["fair_upper"]:
        zone = "FAIR_VALUE"
    elif metric < ranges["expensive_upper"]:
        zone = "EXPENSIVE"
    else:
        zone = "BUBBLE"

    # 检查过高估值警告触发
    warnings = 0
    pe_5yr_avg = average(stock.pe_history, years=5)
    if stock.trailing_pe > 2 * pe_5yr_avg:
        warnings += 1
    if stock.peg_ratio > 3.0:
        warnings += 1
    if stock.dividend_yield < 0.005 and stock.has_dividend_history:
        warnings += 1
    if stock.sell_ratings == 0 and stock.total_ratings > 10:
        warnings += 1
    if stock.retail_ownership_change_12m > 0.05:
        warnings += 1
    if stock.pe_vs_global_peer_premium > 0.50:
        warnings += 1
    if stock.price_to_fcf > 50 and stock.revenue_growth < 0.30:
        warnings += 1

    # 生成信号
    if zone == "CHEAP":
        signal = "BUY"
    elif zone == "FAIR_VALUE" and warnings == 0:
        signal = "HOLD"
    elif zone == "EXPENSIVE" and warnings >= 2:
        signal = "TRIM"
    elif zone == "BUBBLE" or warnings >= 3:
        signal = "SELL"
    else:
        signal = "HOLD"

    return zone, signal, {
        "metric_value": metric,
        "zone": zone,
        "warnings_triggered": warnings,
        "pe_vs_5yr_avg": metric / pe_5yr_avg if pe_5yr_avg else None,
        "peg": stock.peg_ratio
    }

12.3 组合构建引擎

def construct_portfolio(candidates, capital, existing_positions=None):
    """
    从筛选候选构建核心-卫星组合。
    返回目标配置和持仓大小。
    """
    CORE_PCT = 0.70
    SATELLITE_PCT = 0.30
    MAX_SINGLE_STOCK = 0.08
    MAX_SECTOR = 0.35
    MIN_POSITION = 0.02

    core_capital = capital * CORE_PCT
    satellite_capital = capital * SATELLITE_PCT

    portfolio = {"core": [], "satellite": []}
    sector_weights = defaultdict(float)

    # --- 核心配置 ---
    # 按分数选择 top 候选;在板块间多元化
    for candidate in candidates:
        sector = candidate["sector"]
        zone, signal, details = evaluate_valuation(
            get_stock(candidate["ticker"]),
            SECTOR_VALUATION_RANGES
        )

        # 如果不在可买入区域则跳过
        if zone not in ("CHEAP", "FAIR_VALUE"):
            continue

        # 根据信念和估值确定持仓大小
        if candidate["score"] >= 8 and zone == "CHEAP":
            weight = 0.07  # 高信念,便宜
        elif candidate["score"] >= 8 and zone == "FAIR_VALUE":
            weight = 0.05  # 高信念,公允
        elif zone == "CHEAP":
            weight = 0.05  # 中信念,便宜
        else:
            weight = 0.03  # 中信念,公允

        # 强制板块限制
        if sector_weights[sector] + weight > MAX_SECTOR:
            weight = MAX_SECTOR - sector_weights[sector]
            if weight < MIN_POSITION:
                continue

        # 强制单只股票限制
        weight = min(weight, MAX_SINGLE_STOCK)

        portfolio["core"].append({
            "ticker": candidate["ticker"],
            "name": candidate["name"],
            "sector": sector,
            "weight": weight,
            "zone": zone,
            "score": candidate["score"],
            "entry_pe": candidate["forward_pe"]
        })
        sector_weights[sector] += weight

        # 当核心资本配置完成时停止
        total_core = sum(p["weight"] for p in portfolio["core"])
        if total_core >= CORE_PCT:
            break

    # --- 再平衡检查 ---
    if existing_positions:
        for pos in existing_positions:
            current_weight = pos["market_value"] / capital
            target = find_target(portfolio, pos["ticker"])

            if current_weight > MAX_SINGLE_STOCK + 0.04:  # >组合的12%
                pos["action"] = "TRIM to 8%"
            elif target and abs(current_weight - target["weight"]) > 0.03:
                pos["action"] = f"REBALANCE to {target['weight']*100:.0f}%"
            else:
                pos["action"] = "HOLD"

    return portfolio


def rebalance_check(portfolio, current_holdings, market_data):
    """
    每季度再平衡审查。
    返回建议行动列表。
    """
    actions = []

    for holding in current_holdings:
        stock = market_data[holding["ticker"]]
        zone, signal, details = evaluate_valuation(stock, SECTOR_VALUATION_RANGES)

        # 检查基本面恶化
        if check_deterioration_triggers(stock):
            actions.append({
                "ticker": holding["ticker"],
                "action": "EXIT",
                "reason": "检测到基本面恶化",
                "urgency": "IMMEDIATE"
            })
            continue

        # 检查估值信号
        if signal == "SELL":
            actions.append({
                "ticker": holding["ticker"],
                "action": "EXIT",
                "reason": f"估值处于{zone}区,{details['warnings_triggered']}个警告",
                "urgency": "WITHIN_5_DAYS"
            })
        elif signal == "TRIM":
            actions.append({
                "ticker": holding["ticker"],
                "action": "REDUCE_30PCT",
                "reason": f"估值升高,{details['warnings_triggered']}个警告",
                "urgency": "WITHIN_30_DAYS"
            })

    return actions

13. 关键语录/原则

"核心资产不是一种风格或主题——它们是成熟资本市场的必然目的地。历史上每个发达市场都经历了这种转型。中国不是例外;只是在这一过程中较晚。"

"投资中最大的风险不是波动——而是拥有任何价格的平庸业务。核心资产50%的 drawdown 是买入机会。弱公司50%的 drawdown 可能是永久性破坏。"

"当外国资本看中国,他们看到10-15家世界级业务交易价格低于较差全球同行。估值差距将缩小。唯一的问题是何时,而非是否。"

"不要将耐心与被动混淆。持有核心资产需要更多信念、更多研究、更多纪律,而非交易。持有者必须在抵制噪音行动诱惑的同时,持续重新论证论点。"

"在4000家上市公司中,也许100-200在任何给定时间符合核心资产。其中,也许30-50估值有吸引力。作为投资者,你的工作是拥有10-20个最好的,忽略其他一切。"

"确定性溢价是真实且合理的。为在接下来5年几乎肯定会以20%增长的业务支付30倍盈利,在数学上优于为可能增长30%或下跌20%的业务支付10倍。预期价值不等于预期体验。"

"从散户主导市场向机构市场的转型是单向门。一旦外国资本、共同基金和养老资产达到临界量,质量流动性的溢价变得自我强化。波动性下降,核心资产篮内相关性增加,核心与非核心之间的差距永久扩大。"

"每个熊市都是核心资产投资者的礼物。股票打折出售,但业务继续复合。如果你做了基本面工作,市场恐慌不是恐惧的时候——这是未来回报正在最大化的时刻。"


实施规范结束