量化研究 · 依瓦团队 · 21 次阅读

多因子选股模型构建:因子库选择与组合优化

多因子选股模型构建:因子库选择与组合优化

多因子模型的价值不是简单叠加更多指标,而是把不同来源、不同周期和不同风险特征的信号组织成一个可解释、可约束的决策框架。因子越多并不必然越好;高度相关的指标会重复表达同一信息,大量试验还会放大数据挖掘偏差。

从少而清楚的候选因子开始

候选库可以覆盖价值、质量、成长、动量、波动率、流动性和分析师预期等类别。每个因子都应有明确经济含义和数据可得性说明。先检查覆盖率、更新频率、极端值和历史稳定性,再进行收益检验。只保留历史表现最好的因子容易过拟合,更合理的筛选标准是经济逻辑、样本外稳定性、与已有因子的互补性以及实际交易成本。

统一预处理口径

不同因子的量纲和分布差异很大,不能直接相加。通常需要按交易日去极值、标准化,并根据研究目的控制行业与市值暴露。财务因子按公告日生效,低频数据在两次披露之间可以延用,但要记录数据年龄。缺失处理要区分“没有披露”“不适用”和“数据异常”,并测试删除、行业中位数填充及设置缺失指示变量对结果的影响。

先看单因子,再看组合后的增量

单因子检验包括IC、ICIR、分组收益、换手率和衰减曲线。进入组合后,更重要的是边际贡献:加入一个新因子后,组合的样本外稳定性是否提高,最大回撤和拥挤暴露是否下降。如果新因子与已有因子相关性很高,却只在同一阶段贡献收益,它可能只是重复信号。可以用相关矩阵、聚类或正交化辅助去重,但统计处理不能替代经济解释。

权重方法决定模型性格

等权简单、透明且不易过拟合,适合基准模型;按历史IC加权能够反映近期有效性,但容易追逐噪声;回归和机器学习方法可处理非线性关系,却更依赖样本量、正则化和严格的样本外验证。无论采用哪种方法,都应设置权重上限、变化速度和最小持有期,避免因短期估计波动导致频繁翻转。

组合优化必须显式约束风险

把综合得分转换为持仓时,要约束行业、风格、个股权重、换手率、流动性和可交易状态。优化目标不能只有预期收益,还应考虑跟踪误差、交易成本和集中度。约束过少会产生难以执行的极端持仓,约束过多则可能把信号完全压平。建议从透明规则组合开始,逐步增加约束,并记录每一项约束对收益与风险的影响。

验证重点是稳定而非峰值

模型应在滚动窗口中重新估计,并保留完全未参与调参的测试区间。比较不同市场阶段、不同股票池和不同成本假设,同时开展参数扰动。一个可靠模型通常不是每年第一,而是在多数阶段保持方向一致、风险可解释、回撤可承受。上线后还要监控因子相关结构、权重漂移和实际成交偏差,避免研究模型与生产模型悄然分叉。

一套可复核的研究流程

无论研究哪类因子,第一步都不是看收益曲线,而是固定研究口径。样本范围要写清是否包含北交所、ST、上市未满一定交易日的股票;价格要说明采用前复权、后复权还是不复权;财务数据必须按公告日对齐,不能把后来披露的数据提前放进历史截面。停牌、涨跌停、退市和交易状态也要进入可交易性判断。只有这些规则在研究开始前被固定,后续结果才具备可重复性。

第二步是把数据质量检查放在因子计算之前。研究者应检查主键是否重复、交易日是否连续、价格与成交量是否存在异常值、行业分类是否发生历史变更、财务字段是否存在单位变化。缺失值不能简单全部填零:有些缺失代表公司不适用该指标,有些缺失来自披露延迟,还有些是数据源问题。三种情况的经济含义不同,处理方式也应不同。

第三步是建立时间切片严格的验证框架。可采用滚动训练、样本外验证和多市场阶段检验,避免只在完整历史上反复调整参数。每次实验都应保存数据版本、因子公式、过滤条件、调仓规则、成本假设和代码版本。研究结论不应只报告年化收益,还应同时报告最大回撤、换手率、覆盖率、分组单调性、IC分布、不同年份表现以及对行业和市值暴露的敏感度。

第四步是让结果接受反证。可以改变股票池、延迟一个交易日执行、提高交易成本、缩短或延长样本区间、排除极端行情,再观察结论是否仍然成立。如果一个结论只在单一参数、单一时间段或少数股票上成立,它更可能是偶然拟合,而不是稳定规律。对不显著或失效的结果也应完整记录,因为失败实验能够防止团队重复踩坑。

从研究结论到实际使用

研究结果进入组合之前,应先以小规模、低频率和可回滚方式观察。线上计算需要监控数据到达时间、因子覆盖率、截面分布漂移和组合暴露;出现异常时应能追溯到具体数据批次和公式版本。策略容量、成交约束、资金规模和风险预算会改变理论信号的实际价值,因此不能把研究收益直接等同于可实现收益。

本文用于说明量化研究方法,不构成个股推荐、收益承诺或投资建议。因子表现会随市场结构、参与者行为和交易制度变化而变化。真正可靠的做法,是保留证据链、持续复核假设,并由使用者结合自身目标、风险承受能力和合规要求独立判断。

多因子模型的数学表达

设经过统一预处理的 K 个因子为 z_k(i,t),线性综合得分为:

Score(i,t) = Σ[k=1..K] w_k(t)·z_k(i,t),   Σ|w_k(t)| = 1

等权模型令 w_k=1/K;IC加权可使用滚动窗口估计,并加入收缩避免短期跳变:

w_k(t) = ICmean_k(t) / Σ|ICmean_j(t)|
w'_k(t) = λ·w_k(t) + (1-λ)·w'_k(t-1),   0≤λ≤1

持仓优化可写成在预期得分、风险与换手之间取平衡:

max_w  wᵀScore - η·wᵀΣw - κ·|w-w_prev|
subject to: Σw=1, 0≤w_i≤w_max, industry/style exposure within limits

数据与实操

先建立价值、质量、成长、动量、波动率五类候选库,每类选择一到三个经济含义清楚的指标。按月截面生成因子矩阵,保存缺失率、均值、标准差和相关矩阵。第一轮以等权作为基线,第二轮才使用过去12个月IC加权,并且所有权重只能由调仓日前的数据计算。组合层设置单股上限、行业偏离上限和换手预算,分别回测无成本、基础成本和压力成本。最后比较“单因子—等权多因子—IC加权—受约束组合”四组结果,只有新增复杂度在样本外仍带来稳定增量时才保留。

IWA依瓦AI量化 —— 金融垂直人工智能平台,覆盖数据、大模型、智能Agent、交易终端全栈能力。

免费注册 更多资讯