因子有效性的真实数据——我们跑了 200 只 A 股的因子 IC 之后学到什么
本文数字取自 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.0770 | 0.475 | 67.6% | 37 |
| ROE(quality_roe) | 高优 | 0.0457 | 0.374 | 62.2% | 37 |
| 动量 1M(momentum_1m) | 高优 | 0.0496 | 0.264 | 48.7% | 39 |
| 平均日成交额 20D(adv_20d) | 高优 | 0.0366 | 0.151 | 61.5% | 39 |
| 毛利率(quality_gross_margin) | 高优 | 0.0192 | 0.151 | 59.5% | 37 |
| 动量 12M-1M(momentum_12m_1m) | 高优 | 0.0310 | 0.143 | 53.8% | 39 |
| 资产负债率(quality_debt_to_asset) | 低优 | 0.0167 | 0.087 | 43.2% | 37 |
| 已实现波动率 20D(volatility_realized_20d) | 低优 | 0.0109 | 0.036 | 41.0% | 39 |
| 动量 6M(momentum_6m) | 高优 | 0.0007 | 0.003 | 61.5% | 39 |
| ATR 14 归一化(atr_14) | 低优 | -0.0005 | -0.002 | 41.0% | 39 |
| 动量 3M(momentum_3m) | 高优 | -0.0185 | -0.080 | 64.1% | 39 |
| PS TTM(value_ps_ttm) | 低优 | -0.0191 | -0.111 | 33.3% | 3 |
| PB(value_pb) | 低优 | -0.0316 | -0.150 | 66.7% | 3 |
| Amihud 非流动性 20D(amihud_illiq_20d) | 低优 | -0.0551 | -0.425 | 66.7% | 39 |
| PE TTM(value_pe_ttm) | 低优 | -0.3672 | -0.746 | 66.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.