
多因子选股策略是一种用多个"因子"给大量股票打分排序、筛选出一篮子股票持有的量化策略。它的基本框架包括五个环节:确定因子(如估值、成长、动量、质量等)、获取并处理因子数据、对因子打分并合成综合得分、按综合得分排序选股构建组合、以及定期调仓与风险控制。多因子策略的核心思想是"不押单一股票、不赌单一逻辑",而是用一组经过验证的因子系统化地选股,通过分散和组合来降低风险。本文讲清楚多因子选股的完整框架和每个环节的要点。
理解多因子选股,先抓住它区别于其他策略的两个核心思想。
第一,它选的是"一篮子"股票,而不是单只。 前面讲的趋势、均值回归,往往针对单个标的。多因子不一样——它面对的是一大批股票(比如全市场几千只),从中系统化地筛选出一组来持有。分散持仓,不押单一标的,天然降低了单只股票暴雷的风险。
第二,它用"多个因子"综合判断,而不是单一逻辑。 什么是因子?简单说,就是"可能和股票未来表现相关的特征",比如估值高低、成长快慢、近期强弱等。多因子策略不只看一个特征,而是综合多个因子给股票打分——用多个角度交叉验证,比单一角度更稳健。
这两个思想,构成了多因子选股"系统化、分散化"的底色。下面看它的完整框架。
多因子策略的起点,是确定用哪些因子来选股。常见的因子大类包括:
关键在于:因子必须是"有逻辑、经过检验"的,而不是随便找的。一个好因子,应该有合理的解释(为什么它和未来表现相关),并且在历史数据上验证过它的有效性。这是多因子策略的地基。
选好因子,就要获取对应的数据并处理干净。这一步的工作量往往被低估。
多因子涉及大量数据——你要为全市场成百上千只股票,获取每个因子的数据。这些数据需要:
因子数据的质量,直接决定选股的效果。 这一步做不扎实,后面全白搭。
数据处理好后,给每只股票的每个因子打分,再合成一个综合得分。
单因子打分:按某个因子,对所有股票排序打分。比如按估值因子,越便宜的分越高。
多因子合成:把每只股票在各个因子上的得分,按一定权重加权,合成一个综合得分。
# 示意:多因子合成综合得分(简化)
# 假设已有标准化后的各因子得分列
weights = {"value": 0.3, "growth": 0.3, "momentum": 0.2, "quality": 0.2}
df["total_score"] = (
df["value_score"] * weights["value"]
+ df["growth_score"] * weights["growth"]
+ df["momentum_score"] * weights["momentum"]
+ df["quality_score"] * weights["quality"]
)权重怎么定是个学问——可以等权、可以按重要性分配,也有更复杂的方法。但要警惕:别为了历史回测好看去反复调权重,那样容易过拟合。
有了综合得分,就按分数排序,选出得分最高的一批股票构建投资组合。
比如:把所有股票按综合得分从高到低排序,选出排名前 N 只(或前 10%)等权买入,构成你的持仓组合。
# 按综合得分排序,选前 N 只
df_sorted = df.sort_values("total_score", ascending=False)
selected = df_sorted.head(50) # 选前 50 只
print("选出的股票:", selected["symbol"].tolist())这里体现了多因子的"分散"思想——不是重仓一两只,而是分散持有一篮子得分高的股票,用组合来平滑单只股票的风险。
多因子策略不是一次选完就不管了,需要定期调仓和风险控制。
定期调仓:因子数据会随时间变化(比如财报更新、价格变动),股票的排名也会变。所以要按固定周期(比如每月、每季)重新打分、重新选股、调整持仓,把跌出榜单的换成新上榜的。
风险控制:多因子策略也要控制风险,比如控制单只股票或单个行业的持仓上限(避免过度集中)、控制整体仓位等。分散本身就是一种风控,但还不够,需要主动的风险管理。
我把多因子选股的完整框架整理成一张表:
步骤 | 做什么 | 关键要点 |
|---|---|---|
确定因子 | 选择有逻辑的因子 | 因子要有解释、经检验 |
数据处理 | 获取、清洗、标准化 | 数据质量决定效果 |
打分合成 | 单因子打分、加权合成 | 警惕权重过拟合 |
排序选股 | 按得分选一篮子股票 | 分散持仓 |
调仓风控 | 定期调整、控制风险 | 分散+主动风控 |
客观看待多因子策略:
优势:
挑战:
尤其要强调因子会失效这一点——市场是动态的,没有一劳永逸的因子组合,多因子策略需要持续的研究和迭代。
多因子策略有一个特点:数据量大、计算量大。你要为成百上千只股票、多个因子、多个时间截面做数据处理和计算,还要定期回测和调仓。这对算力和运行环境有一定要求。
当你的因子库变大、回测规模变大,或者要让选股和调仓流程定期自动运行时,本地电脑可能就吃力了。这时可以把多因子的数据处理、回测和运行放到腾讯云云服务器 CVM 上,选择合适配置的实例来支撑大规模数据计算和定期自动调仓,既跑得快又不占用本地资源。
多因子选股策略的精髓是"用多个经过验证的因子,系统化地筛选一篮子股票",靠分散和组合来降低风险。它的框架清晰——确定因子、处理数据、打分合成、排序选股、调仓风控,环环相扣。它系统化、可分散,但也面临因子失效、数据工程量大的挑战,需要持续研究迭代。理解这套框架,你就掌握了量化选股的基本方法论。
多因子策略数据量大、计算密集。腾讯云近期上线了量化交易专题活动,可以了解云服务器如何为多因子选股的大规模数据处理、回测与定期调仓提供算力支撑。
风险提示:本文仅为量化交易科普与技术分享,不构成任何投资建议。文中代码仅为教学示例。金融市场存在风险,任何交易策略都可能产生亏损,请结合自身情况谨慎决策。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。