第三章 成长因子深度解析
成长因子,说白了就是找那些「正在变好」的公司。营收在涨、利润在涨、ROE也在往上走——这种公司,市场通常愿意给更高的估值。
但我得先泼盆冷水。成长因子看着简单,做起来坑特别多。我早年做量化的时候,就吃过不少亏。今天咱们把成长指标拆开揉碎了讲,顺便聊聊那些容易踩的陷阱。
3.1 营收增长:最基础的成长信号
营收增长,是衡量公司扩张速度最直接的指标。没有营收增长,利润增长往往不可持续。
我个人习惯用同比营收增长率,也就是(本期营收 - 去年同期营收)/ 去年同期营收。为什么不用环比?因为很多行业有季节性,环比数据波动太大,容易误判。
- 单季营收同比增速 > 20%:强成长
- 单季营收同比增速 10%-20%:稳健成长
- 单季营收同比增速 < 10%:弱成长或衰退
但光看一个季度不够。我在项目中遇到过这样的情况:某公司一季度营收暴增80%,结果是因为去年基数太低。这种「低基数效应」很容易骗人。
所以我会看连续3-5个季度的营收增速。如果每个季度都在加速,那才是真成长。如果只是偶尔蹦一下,大概率是运气。
3.2 利润增长:成长的质量检验
营收增长是「面子」,利润增长才是「里子」。公司可以靠烧钱换营收,但利润跟不上,迟早出问题。
我常用的利润指标有两个:
| 指标 | 计算公式 | 我的用法 |
|---|---|---|
| 净利润同比增速 | (本期净利润 - 去年同期净利润) / 去年同期净利润 | 看趋势,连续3期加速最好 |
| 扣非净利润增速 | 剔除一次性收益后的净利润增速 | 更真实,我优先用这个 |
3.3 ROE趋势:成长的内生动力
ROE(净资产收益率)是巴菲特最看重的指标之一。它衡量的是公司用股东的钱赚了多少钱。
但ROE的绝对值意义不大。一家公司ROE常年15%,另一家从5%涨到12%,后者的投资价值可能更高。为什么?因为ROE在改善,说明公司的盈利能力在变强。
我关注的是ROE的连续改善趋势:
- 连续3年ROE逐年上升:强信号
- ROE从低于10%突破到15%以上:拐点信号
- ROE稳定在20%以上且不下降:优质成长
嗯,这里要注意。ROE可以通过加杠杆(借钱)来提升。如果一家公司ROE很高,但负债率也在飙升,那这个成长是有水分的。我一般会结合资产负债率一起看。
3.4 成长陷阱识别:别被假成长骗了
这部分是我最想讲的。做成长因子策略,最大的风险不是选错股票,而是掉进「成长陷阱」。
陷阱一:一次性收益伪装成长
我曾经踩过这个坑。某公司利润暴增,我以为是成长爆发,结果是因为卖了一套房产。这种一次性收益,下个季度就没了。怎么识别?看扣非净利润。如果扣非增速远低于净利润增速,大概率有猫腻。
陷阱二:并购带来的虚假成长
公司靠收购其他公司来合并报表,营收和利润都能瞬间膨胀。但收购来的成长,往往不可持续。我习惯看内生增长率,也就是剔除并购影响后的增速。这个数据很多数据库都有,或者可以用「营收增速 - 并购贡献增速」来估算。
陷阱三:高成长但现金流枯竭
营收涨了,利润也涨了,但经营性现金流是负的。这说明什么?说明公司赚的是「纸面利润」,钱没真正收回来。可能是应收账款太多,或者存货积压。这种成长,迟早要还债。
陷阱四:行业周期顶部的成长
有些行业是周期性的,比如钢铁、化工。在周期顶部,所有公司都看起来在高速成长。但一旦周期反转,成长瞬间变衰退。怎么识别?看行业整体产能利用率和产品价格走势。如果全行业都在扩产,价格开始松动,那就要小心了。
3.5 成长因子的核心逻辑图
下面这张图,是我自己梳理的成长因子分析框架。每次做策略前,我都会过一遍。
3.6 实战中的代码片段
最后,分享一段我常用的Python代码。用来筛选成长因子股票,逻辑很简单:营收增速 > 20%,利润增速 > 20%,ROE连续3年上升。
import pandas as pd
import numpy as np
def growth_factor_filter(df):
"""
成长因子筛选
df: 包含营收增速、利润增速、ROE的DataFrame
"""
# 条件1:营收同比增速 > 20%
cond1 = df['revenue_growth'] > 0.20
# 条件2:扣非净利润增速 > 20%
cond2 = df['profit_growth'] > 0.20
# 条件3:ROE连续3年上升
cond3 = (df['roe_t1'] > df['roe_t2']) & \
(df['roe_t2'] > df['roe_t3'])
# 条件4:现金流质量 > 0.8
cond4 = df['cashflow_ratio'] > 0.8
# 综合筛选
selected = df[cond1 & cond2 & cond3 & cond4]
return selected
# 使用示例
# result = growth_factor_filter(my_data)
# print(f"筛选出 {len(result)} 只股票")
这段代码看着简单,但背后是我踩过无数坑之后总结出来的。你想想看,如果只用一个条件,很容易选到假成长。四个条件一起上,虽然会漏掉一些,但胜率会高很多。
好了,成长因子就讲到这里。记住一句话:成长是好事,但别被假成长骗了。下一章咱们聊聊怎么把价值因子和成长因子结合起来,做真正的协同策略。
公众号:蓝海资料掘金营,微信deep3321