惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
量子位
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
Jina AI
Jina AI
L
LangChain Blog
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学

博客园 - Leone-

GitHub 61.7k+⭐智能体,当你的私人股票分析师:Daily_stock_analysis 不用懂编程!3种方法搭建WorkBuddy工作台,打工人必备效率神器 上班没空盯盘?61.7K星免费开源AI每天自动推送分析 :Daily_stock_analysis Workbuddy猜出宇树科技上市的价格 我翻了上百个连板票,启动前都干过一件反人性的事:回调5天 我把WorkBuddy变成了A股研究员:每天自动盯50只股票 用 Workbuddy 做一个自己的“每日工作台” 用WorkBuddy「个人工作台」,从0搭一套自己的工作管理系统 把行情软件旁边的 WorkBuddy,养成了一个盘后A股投研台 WorkBuddy保姆级使用指南 我用WorkBuddy盯A股异动,盘中不用一直看屏幕 个人量化从0到1:我跑了2年的系统,告诉你什么才是靠谱的 为什么有的人总能抓住市场热点? 五种形态一个答案,找到适合你性格的那一招重复一万遍 我花了三个月,复盘81只十倍股的K线,终于找到了它们的共同点 把一种模式练一万遍:主力流入+缩量回调+二次突破 我用WorkBuddy搭了一套“A股复盘助手”,每天10分钟看懂当天行情 我用WorkBuddy盯100只股票,每天只看发生变化的 我用WorkBuddy做A股“情绪周期雷达”,提前发现市场正在退潮 “大盘环境判定+主流板块识别+个股买点触发”:三位一体决策框架 猫抓配合N_m3u8DL-RE实现m3u8下载 量化交易入门与工具选择:一份面向个人投资者的专业指南 炒股保命纪律:高位不做正T,低位不做反T!这不是建议,是铁律! A股回测用Rust重写|akquant全栈实战 阿里刚开源了一个代码审查工具,两年揪出数百万个Bug 向内聚焦自身,减少精神内耗,全程专注自我成长与最终结果 华为韬定律8家核心公司梳理,先进封装+晶圆代工+底层硬核全解析 暴涨10%+,江波龙这玩笑开大了 我用 AI Agent 写了个"美股看门狗",每天早上替我分析 A 股方向 为什么电脑用久了会变得越来越卡顿,其背后的计算机原理是什么?
多因子选股量化策略怎么构建
Leone- · 2026-06-06 · via 博客园 - Leone-

好,我来系统拆解多因子选股的完整框架。先看整体构建流程,再深入因子细节。整个流程五步走,下面逐一拆解。


第一步:选因子 — 常用 Alpha 因子全景

业界主流将因子归为五大类:估值类、财务成长类、财务质量类、价量类、分析师预期类。以下是 A 股实战中最常用的因子:

2025年A股市场中,小市值因子年内超额收益达21%,成为最有效因子。技术面因子中,RSI超卖预警、KDJ极端超卖和成交量异动指标表现优异;基本面因子则以单季度净利润增长率、ROE同比等短期盈利指标最为突出。


第二步:数据预处理(关键,很多人跳过)

中性化是指剔除因子中包含的行业影响或市值影响。例如银行股的PE普遍很低,科技股普遍很高,如果不做行业中性化,选出的低PE股票可能全是银行股。中性化后,我们选出的是"在同行业中PE较低"的股票,从而分散风险、提取纯粹的因子 Alpha。

三个必做步骤:

import pandas as pd
import numpy as np
from scipy import stats

def preprocess_factor(factor_series):
    # 1. 去极值(MAD法,比3σ更稳健)
    median = factor_series.median()
    mad = (factor_series - median).abs().median()
    factor_series = factor_series.clip(median - 3*1.4826*mad,
                                        median + 3*1.4826*mad)
    
    # 2. 标准化(Z-score)
    factor_series = (factor_series - factor_series.mean()) / factor_series.std()
    
    # 3. 行业+市值中性化(回归取残差)
    # X = [行业哑变量矩阵 | log(市值)]
    # factor_neutralized = factor - X @ (X'X)^-1 X' factor
    return factor_series

第三步:IC 检验 — 筛选真正有效的因子

IC值衡量一个因子的预测能力,数值在 -1 到 1 之间,绝对值越大说明因子对股票未来走势的预测越准,重点关注它的均值和稳定性。实践中的筛选标准:

指标

含义

有效门槛

IC 均值

因子整体预测力

|IC| ≥ 0.03

ICIR

IC均值 / IC标准差(稳定性)

|ICIR| ≥ 0.5

IC 胜率

IC > 0 的比例

≥ 55%

分层单调性

高因子值组收益显著高于低组

需肉眼验证

推荐优先看 Rank IC(斯皮尔曼相关系数)。金融数据常有极值,Normal IC 容易受个别极端股票干扰,而实际交易中通常根据排名买入前 N 只股票,Rank IC 更贴合这种逻辑。


第四步:综合打分合成

常见的因子加权方式包括等权、IC加权、ICIR加权和半衰期加权。IC加权相当于因子动量,给予过去表现更好的因子更高的权重;ICIR加权综合考虑因子的预测能力和波动率,能优化组合绩效并控制风险。

def composite_score(factor_dict, ic_weights=None):
    """
    factor_dict: {'ROE': series, 'EP': series, 'reversal': series, ...}
    ic_weights: 各因子的IC均值,为None时等权
    """
    scores = pd.DataFrame(factor_dict)
    
    if ic_weights is None:
        # 等权合成
        return scores.mean(axis=1)
    else:
        # IC加权合成
        w = pd.Series(ic_weights)
        w = w / w.abs().sum()  # 归一化
        return (scores * w).sum(axis=1)

# 选出综合评分前20%的股票建仓
top_stocks = composite_score(factors).nlargest(int(len(factors)*0.2))

第五步:回测关键指标

多因子策略的最大优势在于,在不同的市场和行情下,因子库中总有一些因子能够发挥作用。但回测时必须关注三个指标:

  • 年化超额收益 vs 基准(目标 ≥ 8%)
  • 信息比率 IR = 年化超额收益 / 超额收益标准差(目标 ≥ 0.8)
  • 换手率:月调仓时换手 ≤ 30%,否则交易成本会大幅侵蚀收益

两个常见陷阱要避免:过拟合(样本外表现远差于样本内)、因子拥挤(该因子被太多人用后衰减)。可用滚动窗口计算因子 IC,如出现明显衰减趋势,应及时剔除该因子。