跳至主内容
研究与方法

因子有效性的真实数据——我们跑了 200 只 A 股的因子 IC 之后学到什么

Lurus 量化团队发布 2026-08-14更新 2026-08-14数据取数日 2026-07-13

本文数字取自 2026-07-13 的面板,为该日快照、不随数据滚动回改;最新数据见因子效力面板,完整口径与已知偏差见方法与口径

"你们说的因子有效,是真算出来的,还是挑了段好看的区间截图?"——这条质疑我们在后台不止一次收到过,而且问得很对。市面上大部分"因子选股有效"的文章,截的都是那个因子表现最好的一段窗口,连投资域怎么圈定、口径是什么都不写清楚。这篇反着来:把因子效力面板背后的方法论和真实数字一次性摊开,不好看、甚至方向搞反的因子也留在表里,没有被挑掉。

数据口径先说清楚:下面所有数字来自 2025-02-01 到 2026-06-11 这段区间,一共 39 个截面(两周采一次样,不是每天),统计的是每个因子对未来 20 个交易日收益的预测力,最新一期投资域是 200 只股票。可能有人会问,现在早过了 6-11,为什么最新一期还停在那天——因为算一期 IC 前必须先等够 20 个交易日的未来收益走完、数据才算闭合,这是方法本身自带的滞后,不是断更。

一、为什么做这个面板

我们不是研究机构,做这个面板的初衷很朴素:自己每天在用因子给股票打分,总得先说服自己这些分数不是瞎编的。与其把这套验证藏在内部,不如直接摆到产品里当一个公开面板——数据摆出来,对错都由使用者自己判断,这也是我们更愿意做"工具"而不是替你下结论的原因之一。

二、17 个因子,5 大类,还空着一类

平台目前注册了 17 个因子,分五大类:动量 4 个(1 个月、3 个月、6 个月,以及跳过最近 1 个月的"12 个月减 1 个月"经典动量)、波动率 2 个(20 日已实现波动率、ATR)、流动性 2 个(20 日日均成交额、Amihud 非流动性)、价值 4 个(PE、PB、PS,均为 TTM 口径,以及股息率)、质量 5 个(ROE、ROIC、毛利率、净利率、资产负债率)。说句不太好看的实话:代码里其实还预留了第六类——情绪类因子,现在一个都没注册进去,这块数据我们还没接上,不装作已经有。

三、怎么算出来的

对每个截面日期,我们先构建一个"截至当日可投资"的股票池:过滤掉当时还没上市的股票(用首根 K 线日期做锚点),再按"收盘价 × 股本"这个规模代理排序,取前 200 只。两周一个点不是偷懒——因子效力看的是未来的表现,一个点位的"未来"要等够交易日才算数,天天算并不会让结论更准,只会让面板天天在重复同一批还没成熟的数据。每个因子在这个池子里,对未来 20 个交易日的收益分别计算 RankIC(Spearman 秩相关)和 IC(Pearson 相关)。这套价格与基准获取逻辑,跟决策日志结算、策略跟踪复用的是同一份代码,不是每个功能各写一套各测各的。

几个术语说人话:某一期 RankIC 是正的,意思是"因子值排名高的股票,后来涨得也确实靠前";所有期 RankIC 的均值就是"RankIC 均值",均值除以期间波动就是 IR——IR 越高,说明这个因子不是靠某一期运气好撑起来的。命中率不是看某一期 RankIC 的正负,而是"方向和该因子标注的高优/低优是否一致"的期数占比,已经按方向调整过,不是原始符号比例。

四、四个诚实的坑

第一,候选池的历史缺席偏差。 候选池按当前(不是历史时点)的规模代理圈出来,历史上曾经很大、后来掉出候选池的股票,会在所有历史截面里都缺席——包括它们当年真正该被算进去的日期。上市锚点过滤解决的是"未上市却被算进去",但"今天的赢家反过来决定历史统计范围"这个方向还没解决,需要覆盖面更广的历史候选池。

第二,sina 补数的复权因子固定是 1.0。 一部分早期 K 线是从新浪补的,复权因子写死了 1.0,也就是没做除权除息调整,这会让跨越分红送股的动量类因子在个别股票上有轻微失真。

第三,退市股票的幸存者偏差。 退市股票一旦在统计窗口内拿不到未来收益,就直接从 IC 样本里剔除——现在看到的所有 IC 数字,都对"活下来的股票"存在一点幸存者偏差,方向是让结果比实际情况略微好看。

第四,也是这次新摊开的一个:PIT 基本面深度,把价值类因子的期数砍到了 3。 价值类因子要用当时能拿到的财务快照算估值,而我们现在积累的历史深度还不够长,能对齐上因子计算窗口的完整快照只覆盖了 3 个截面,其余因子是 37 或 39 个。这直接导致下面表里 PE(TTM) 的 IR 是 -0.746——全表数字最"夸张"的一行,乍看像是一个极强的反向信号。但看起来最惊人的数字恰恰最不可信:一个只考过 3 次试的学生,考出一次年级最高分和一次年级最低分都不奇怪,不能就此断言他的真实水平。PB(-0.150) 和 PS(TTM)(-0.111) 是同样的 3 期、同样的问题,只是数字没那么吓人,容易被顺着表格划过去。

五、数据表(15 个因子,按 IR 降序)

坑都摆在明面上了,再看这张表。因子效力基于历史 IC,不代表未来预测力。RankIC 均值精确到万分位、IR 精确到千分位、命中率精确到十分之一个百分点,期数为整数——跟后台聚合结果的精度一致,没有额外四舍五入。

因子方向RankIC 均值IR命中率期数
净利率(quality_net_margin)高优0.07700.47567.6%37
ROE(quality_roe)高优0.04570.37462.2%37
动量 1M(momentum_1m)高优0.04960.26448.7%39
平均日成交额 20D(adv_20d)高优0.03660.15161.5%39
毛利率(quality_gross_margin)高优0.01920.15159.5%37
动量 12M-1M(momentum_12m_1m)高优0.03100.14353.8%39
资产负债率(quality_debt_to_asset)低优0.01670.08743.2%37
已实现波动率 20D(volatility_realized_20d)低优0.01090.03641.0%39
动量 6M(momentum_6m)高优0.00070.00361.5%39
ATR 14 归一化(atr_14)低优-0.0005-0.00241.0%39
动量 3M(momentum_3m)高优-0.0185-0.08064.1%39
PS TTM(value_ps_ttm)低优-0.0191-0.11133.3%3
PB(value_pb)低优-0.0316-0.15066.7%3
Amihud 非流动性 20D(amihud_illiq_20d)低优-0.0551-0.42566.7%39
PE TTM(value_pe_ttm)低优-0.3672-0.74666.7%3

两条必须紧跟着说的话:

第一,表里 PE(TTM)、PB、PS(TTM) 这三个价值类因子只有 3 期样本,其余 12 个因子是 37 期或 39 期,是常态。3 期不足以支撑任何"这个因子有效/无效"的结论,它们留在表里是如实呈现,不是统计显著的证据——前面第四个坑已经拿 PE 举过例了。

第二,17 个已注册因子,这里只看到 15 行。股息率(value_dividend_yield) 和 ROIC(quality_roic) 这两个因子,目前一条 factor_ic 记录都没有,不是效力差,是压根没跑出数据。我们没有拿"0"去凑成 17 行,而是让它们从表里彻底缺席——编出来的 0 会被读成"测过、结果没用",比不显示更容易误导。

六、三个发现

IR 最高的是净利率(quality_net_margin),0.475,命中率 67.6%,37 期。 这个数字要泼盆冷水:0.475 是这 15 个因子里最高的一档,但也只是最高的一档——离整数 0.5 都还差一点。命中率 67.6%,还不到七成,意味着有相当一部分期数里方向其实是反的——这不是一个能让人闭着眼睛跟的数字,是一个"比瞎猜靠谱一些、但远谈不上确定"的数字。截面统计上的相对领先,不等于任何一只具体股票的确定性,更不是收益承诺。

不如预期的是动量 12M-1M(momentum_12m_1m),IR 只有 0.143。 这是经典的"跳过最近一个月"动量因子,量化圈子里名气不小,我们原本预期它排得靠前一些。它的期数和大多数其他因子一样是 39 期,不存在小样本借口,就是实打实排在全表中段——是投资域本身不吃这个因子,还是别的原因,这里不下结论,先如实报数。

方向反转的意外来自动量 3M(momentum_3m),IR -0.080。 它标注的方向是"高优",但 RankIC 均值是 -0.0185,IR 是 -0.080,方向和标注对不上。有意思的是命中率反而有 64.1%,超过六成的期数方向是站对的——把均值和 IR 拉负的,是剩下不到四成、但幅度明显更大的那些期。也就是说不是"这个因子一直在反着来",而是多数时候小赢、少数时候大输,少数的大输把总账拉成了负的。顺带一句,方向和标注对不上的不止这一个:资产负债率(quality_debt_to_asset,IR 0.087,命中率 43.2%) 和已实现波动率 20D(volatility_realized_20d,IR 0.036,命中率 41.0%) 也一样,只是 IR 本来就在 0 附近晃,没那么戏剧性,容易被划过去。

七、这篇文章想干什么

不是让你去买 IR 最高那个因子分数最高的那几只股票——面板本身没有把因子分数和"买入清单"划等号,平台的 AI 分析助手描述个股时也不会给目标价、仓位建议或买卖结论。这篇想做的是"授人以渔":方法论、口径、局限一次性讲清楚,下次再看到"XX 因子闭眼买入年化 30%"<!-- copy-guard:allow 引用并反驳的典型话术,本文立场是拆解它而非主张它 -->这种说法,你自己就知道该拆开问哪几个问题。顺带预告:因子这条线看的是"哪类股票整体上占优",我们另一块"决策日志"看的是相反角度——你自己有没有习惯性追涨杀跌,下一篇细讲。

八、去哪儿验证这些数字

不用信我们摊出来的这张表,自己去翻。/factors 现在是不需要登录的公开页,上面这张表的实时版本(同一份口径、每周随数据更新)可以直接核对;口径与已知偏差的完整说明另有一页 /methodology。登录用户在"量化监控"页的因子效力面板能看到同一份数据。

更新说明

  • 2026-08-14:本文正文与数据表保持 2026-07-13 取数当天的原样,不回改历史数字。需要补注的口径变化有一处:第二节说"情绪类因子现在一个都没注册进去",这在取数当天成立,但 2026-07-18 平台已注册了 4 个量价代理的情绪类因子,注册因子总数因此从 17 变为 21。本文表内 15 行是 2026-07-13 的截面结果,不含这 4 个因子;实时数字请以 /factors 面板为准。

风险提示与免责声明

本文所有分析、因子得分、回测结果均基于历史数据,不能代表未来收益。本平台提供的分析仅供参考,不构成投资建议,不提供任何针对具体证券的买卖 / 持有 / 目标价 / 仓位建议。所有策略仅供教育研究与回测验证,真实交易需独立判断并通过持牌券商执行。股票投资有风险,入市需谨慎,过往业绩不代表未来收益。AI 分析可能存在误差,请独立判断并自行承担投资风险。请根据自身风险承受能力理性投资,量力而行。

投资风险提示 | Investment Risk Warning

  • 本平台提供的分析和建议仅供参考,不构成投资建议
    Analysis and suggestions provided are for reference only and do NOT constitute investment advice.
  • 股票投资有风险,入市需谨慎。过往业绩不代表未来收益。
    Stock investment carries risks. Past performance does not guarantee future results.
  • 历史回测结果仅供策略评估参考,不代表实际交易表现
    Backtest results are for strategy evaluation only and do not represent actual trading performance.
  • AI分析可能存在误差,请独立判断并自行承担投资风险。
    AI analysis may contain errors. Please make independent judgments and bear investment risks yourself.
  • 请根据自身风险承受能力理性投资,量力而行。
    Please invest rationally according to your own risk tolerance and financial capability.