第三章:因子逻辑与实证:为什么这些因子能赚钱?
说实话,很多刚入行的朋友问我:“因子选股到底靠不靠谱?”
我的回答很直接:靠谱,但前提是你得搞懂它为什么能赚钱。光看回测曲线漂亮就冲进去,那是给自己挖坑。我自己就吃过这个亏——2015年那会儿,我拿着一个动量因子策略跑得飞起,结果2016年风格切换,直接回撤了30%。嗯,从那以后,我养成了一个习惯:先问三个为什么——这个因子背后的经济学逻辑是什么?行为金融学解释是什么?它在什么环境下会失效?
3.1 因子收益的两种来源
因子能赚钱,说白了就两个来源:
- 风险补偿:承担了某种系统性风险,市场给你的回报。比如价值股在经济衰退期跌得更惨,所以长期来看需要更高的收益来补偿。
- 行为偏差:投资者不理性,导致某些股票被错误定价。你利用这个错误赚钱,等价格回归合理。
我个人习惯把这两者比作“钓鱼”和“捡漏”。风险补偿是钓鱼——你知道鱼在哪儿,但得等;行为偏差是捡漏——别人把钱包掉地上了,你捡起来。两者都能赚钱,但逻辑完全不同。
核心观点:一个因子的超额收益,要么来自它暴露了某种未被分散的风险,要么来自它利用了市场的系统性错误。两者往往同时存在。
3.2 价值因子:便宜就是硬道理?
价值因子(低PE、低PB、高股息率)是量化界的“老大哥”。我刚开始做策略时,第一个跑的就是价值因子。为什么它能赚钱?
3.2.1 经济学解释:风险补偿
价值股通常是那些陷入困境的公司——盈利下滑、行业不景气、市场不看好。这类公司对经济下行更敏感,一旦经济恶化,它们可能直接破产。所以,投资者要求更高的预期回报来补偿这种“困境风险”。
你看,这就像借钱给一个信用记录不太好的人——利息肯定要高一些。价值因子的超额收益,本质上就是这种“风险溢价”。
3.2.2 行为金融学解释:过度反应与锚定效应
但光有风险补偿还不够。行为金融学给出了另一个视角:投资者会过度反应。
举个例子:某公司连续两个季度业绩不及预期,市场直接给它打骨折。投资者锚定在过去的“好日子”里,觉得这家公司完了。但实际上,它可能只是暂时遇到困难。等业绩反转,股价就涨回来了。
我在2018年做过一个回测:用PB最低的10%股票构建组合,持有期12个月。结果发现,这些股票在买入后的第6到第12个月表现最好。为什么?因为市场需要时间消化负面情绪,慢慢发现“哦,原来没那么糟”。
避坑指南:我曾经踩过一个坑——只看PE不看行业。结果买了一大堆银行股,因为银行PE天然低。但银行股的低PE反映的是杠杆风险,不是真正的价值。后来我改用“行业中性化”处理,才把这个问题解决。
3.3 动量因子:追涨杀跌的科学依据
动量因子(过去3-12个月涨幅高的股票继续涨)可能是最反直觉的因子。你想想看,有效市场假说认为价格已经反映所有信息,那为什么涨的还会继续涨?
3.3.1 行为金融学解释:反应不足与羊群效应
核心原因有两个:
- 反应不足:好消息出来时,投资者需要时间消化。一开始只有少数人意识到这是个大利好,股价慢慢涨。等更多人反应过来,股价继续涨。这个过程可能持续几个月。
- 羊群效应:看到别人赚钱,自己也跟进去。这种跟风行为会推动价格继续偏离基本面,形成“自我实现的预言”。
我记得2019年做A股动量策略时,发现一个有趣的现象:短期动量(1个月)在A股是负的——涨多了会跌。但中期动量(6个月)是正的。这说明A股散户多,短期追涨杀跌太猛,导致反转;但机构主导的中期趋势反而更稳定。
3.3.2 经济学解释:信息扩散速度
从经济学角度看,信息不是瞬间传播到所有投资者的。大机构先知道,小机构后知道,散户最后知道。这种信息扩散的“时滞”造成了价格趋势。你想想看,如果所有人都同时知道一个好消息,股价会瞬间跳涨,哪来的动量?
注意:动量因子在极端行情下会死得很惨。2020年3月新冠疫情爆发,全球股市暴跌,动量策略直接腰斩。因为所有股票都在跌,前期涨得多的跌得更狠。所以,动量因子一定要搭配止损和风险控制。
3.4 质量因子:好公司就该贵一点?
质量因子(高ROE、低负债、盈利稳定)听起来很“价值投资”,但它的逻辑其实更微妙。
3.4.1 经济学解释:盈利持续性溢价
高质量公司通常有“护城河”——品牌、技术、规模优势。这些公司能持续产生超额利润,但市场往往低估了这种持续性。为什么?因为好公司的股价通常不便宜,投资者觉得“已经贵了,不会再涨”。但实际上,好公司的盈利增长能持续很多年,时间会消化高估值。
我做过一个统计:A股中ROE连续5年超过15%的公司,未来3年的平均年化收益比全市场高5-8%。这个溢价,就是市场对“盈利持续性”的定价不足。
3.4.2 行为金融学解释:过度外推
投资者有个坏毛病:看到一家公司最近盈利好,就觉得它永远好;看到一家公司最近亏损,就觉得它完蛋了。这种“过度外推”导致好公司的股价被低估(因为投资者觉得“好日子快到头了”),差公司的股价被高估(因为投资者觉得“坏日子快结束了”)。
质量因子就是利用这个偏差——买入那些被低估的好公司,等市场重新认识它的价值。
3.5 低波动因子:慢就是快
低波动因子(过去波动率低的股票表现更好)可能是最反常识的。高风险不是应该高回报吗?
3.5.1 行为金融学解释:彩票偏好
投资者天生喜欢“彩票”——那些波动大、可能暴涨的股票。你想想看,一只股票一年涨10倍的概率是1%,但很多人愿意为这个“梦想”买单。结果就是,高波动股票被过度追捧,价格虚高;低波动股票被冷落,价格低估。
我2017年做过一个实验:把A股按过去1年波动率分成5组,最低波动组未来1年收益最高,最高波动组收益最低。这个结果在美股、欧股、日股都成立。说白了,市场对“彩票”的偏好是全球性的。
3.5.2 经济学解释:杠杆约束
机构投资者(比如养老金、保险)有严格的杠杆限制。他们想获得更高收益,只能去买高波动股票——因为不能加杠杆。这种行为推高了高波动股票的价格,压低了它们的预期收益。而低波动股票因为没人买,反而提供了更高的风险调整后收益。
总结一下:
| 因子 | 经济学解释 | 行为金融学解释 |
|---|---|---|
| 价值 | 困境风险补偿 | 过度反应、锚定效应 |
| 动量 | 信息扩散时滞 | 反应不足、羊群效应 |
| 质量 | 盈利持续性溢价 | 过度外推 |
| 低波动 | 杠杆约束 | 彩票偏好 |
3.6 因子逻辑的框架图
下面这张图是我自己总结的因子逻辑框架。每次做新因子研究,我都会先画一遍这个图,确保逻辑闭环。
3.7 实证检验:别光说不练
理论说得再好,也得拿数据说话。我一般用以下步骤验证一个因子:
- 单变量分组测试:把股票按因子值分成10组,看最高组和最低组的收益差是否显著。
- 多变量回归:控制市值、行业、波动率等常见因子后,看这个因子是否还有独立解释力。
- 子样本测试:在不同时间段(牛熊市)、不同市场(A股、港股、美股)测试,看结果是否稳定。
下面是我做的一个简单测试代码(Python风格):
# 单变量分组测试示例
import pandas as pd
import numpy as np
def factor_group_test(data, factor_col, return_col, n_groups=10):
"""
因子分组测试
data: DataFrame,包含因子值和未来收益
"""
# 按因子值排序分组
data['group'] = pd.qcut(data[factor_col], n_groups, labels=False)
# 计算每组平均收益
group_returns = data.groupby('group')[return_col].mean()
# 计算多空收益差(最高组 - 最低组)
long_short = group_returns.iloc[-1] - group_returns.iloc[0]
return group_returns, long_short
# 使用示例
# returns, spread = factor_group_test(df, 'pe_ratio', 'future_1m_return')
# print(f"多空收益差: {spread:.2%}")
个人经验:我建议你在做因子测试时,至少用3个不同的回测周期(比如2005-2010、2010-2015、2015-2020)。如果一个因子只在某个特定周期有效,那它很可能是个“数据挖掘”的产物,不是真正的因子。
3.8 本章小结
因子能赚钱,不是玄学。每个因子背后都有扎实的经济学或行为金融学逻辑。我个人认为,理解这些逻辑比跑回测更重要——因为只有理解了,你才知道什么时候该用、什么时候该躲。
记住一句话:没有永远有效的因子,只有永远变化的逻辑。下一章我们会讲如何把这些因子组合起来,构建真正的Smart Beta策略。
公众号:蓝海资料掘金营,微信deep3321