自由现金流率因子检验报告
由bq6ph0sy创建,最终由bq6ph0sy 被浏览 8 用户
因子:股权自由现金流(TTM)÷ 总市值 · 落库表 yinzilieshou3706 · 区间 2019-01-02 ~ 2026-10-27 · 月度调仓,信号日收盘后生成,T+1 开盘成交
总评:无效
RankIC 均值 0.0078(未达可用线(<0.03)),Newey-West t=2.23;十组组序相关 0.08(乱跳(巧合));多空月度调仓扣费后年化 -0.70%、不扣费 +0.78%。
判定规则(写在代码里,不是事后凭感觉):|IC|<0.03、组序相关<0.8、多空扣费后年化≤0 三条同时不满足 →「无效」; 三条全满足且 NW t≥2 →「有效」;其余 →「存疑」;|IC|>0.1 一律「存疑」(警惕未来函数)。
二、因子加工说明
- 股票池:全表 9,033,281 个股票·日,依次剔除 ST 304,466、停牌 15,144、 上市不足 250 个交易日 536,641、市值或行业缺失 261,剩 8,176,769 行(1894 个交易日,日均 4317 只)。 交易日数
trading_days缺失(北交所老代码等)的 176,086 行按「上市自然日×245/365」折算,没有丢行。 - 行业中位数填充:自由现金流率缺失的 131,621 行,用当日同申万一级行业的中位数填补(填充发生在股票池内)。
- 缩尾:每日截面按 1%/99% 分位缩尾,共触及 165,246 个值。
- 标准化:每日截面 z-score。
- 中性化:对「申万一级行业哑变量 + 对数总市值」做回归取残差(c_neutralize_resid,不重复缩尾)。 与对数市值的日均相关系数:中性化前 +0.0725,后 -6.9e-15(日内最大绝对值 1.6e-11)。
- 再 z-score:每日均值绝对值最大 2.6e-17,标准差在 1.000000 ~ 1.000000; 重复的 (date, instrument) 0 条;NaN 0 个,inf 0 个。
任务模板里的「EP、ROE 各自处理后等权合成」对单一因子不适用,这里只处理了自由现金流率这一个因子,没有合成这一步。 自由现金流取「股权自由现金流 TTM(fcfe_ttm)」,企业自由现金流(fcff)口径没有测试。
为什么要中性化(大白话)
一个因子的好成绩,有时只是顺手买了「小盘股」或「某个行业」,并不是因子自己的选股本事。 中性化就是先把行业和市值这两股共同力量扣掉,只留下「同行业、同市值水平的股票之间,谁的自由现金流率更高」这一份信息,再看它能不能预测收益。
本次的对比:中性化前(只缩尾+z-score)RankIC 均值 0.0028,NW t = 0.57; 中性化后 RankIC 均值 0.0078,NW t = 2.23。 中性化之后 IC 变大、t 值变高,但两者的绝对水平都很低。 猜测:中性化后信号变清晰,可能是行业之间的现金流率差异在抵消组内的选股效果;这一点我没有拆开行业项和市值项单独验证。 另外,中性化前因子与对数市值的日均相关只有 +0.073,说明它本来就不太像「纯小盘」因子。
三、图表
图 1 · 日度 RankIC 时间序列(中性化后)
逐日因子对未来 20 个交易日收益(T+1 开盘买入、持有到 T+21 开盘)的秩相关;竖线红正绿负,蓝线为 60 日均线,横线为 0 轴。共 1873 个交易日。
图 2 · 累计 RankIC
日度 RankIC 逐日累加。蓝线为中性化后,灰虚线为中性化前;斜率向上说明方向稳定为正,走平说明那段时间没有预测力。
图 3 · 十组下期平均收益
每月末按中性化因子分 10 组(G1 最小 → G10 最大),柱高为各组月度持有期的平均收益,虚线为全市场等权基准的月均 1.40%。共 92 个月。
图 4 · 十组累计净值
G1 绿 → G10 红渐变;线尾只标注 G1、G10 和全市场等权基准;鼠标悬停时按当日净值从高到低排序。
图 5 · 多空累计净值(多 G10 空 G1)
月度调仓。橙线不扣费,蓝线扣费(单边 0.15%),灰虚线为全市场等权基准(只做多的市场平均,仅作参照,不是多空的对手盘)。
图 6 · 日度 RankIC 直方图
均值 0.0078,标准差 0.0400;柱子红色在 0 右侧、绿色在 0 左侧。
图 7 · 分年度 RankIC
每个日历年的日度 RankIC 均值;蓝色虚线为课程口径的「可用」线 0.03。悬停可看该年 Newey-West t 和胜率。
四、指标表
课程口径:|IC|≥0.03「可用」、≥0.05「强」、>0.1「可疑(警惕未来函数)」;红色为正、绿色为负。涨跌配色:红涨绿跌。
| 指标 | 数值 | 课程口径 | 说明 |
|---|---|---|---|
| RankIC 均值(中性化后) | +0.0078 | 未达可用线(<0.03) | |IC|≥0.03 可用,≥0.05 强,>0.1 可疑 |
| RankIC 均值(中性化前) | +0.0028 | 未达可用线(<0.03) | NW t = 0.57 |
| RankIC 标准差 | 0.0400 | — | 日度 |
| ICIR(均值/标准差) | 0.195 | — | 日度口径,未年化 |
| 朴素 t 值 | 8.42 | 不可用 | 把 20 日重叠窗口当成独立样本,虚高 |
| Newey-West t 值(滞后 20) | 2.23 | ≥2 算显著 | 校正 20 日收益窗口的重叠 |
| IC>0 胜率 | 58.3% | — | 日度 |
| 月度不重叠 RankIC 均值 | +0.0073 | 未达可用线(<0.03) | 92 个月;NW t = 1.68,胜率 57.6% |
| 组序相关(G1~G10 与组号) | 0.079 | 乱跳(巧合) | 台阶状 = 规律;乱跳 = 巧合 |
| 十组中相邻组上升的台阶数 | 6 / 9 | — | 完全单调应为 9 / 9 |
| G10 − G1(月均) | +0.00076 | — | G10 1.37%,G1 1.30% |
| 多空年化(不扣费 / 扣费) | +0.78% / -0.70% | — | 成本 单边 0.15%(买入和卖出各收一次),按双腿成交额计;不含融券费用与冲击成本 |
| 多空夏普(不扣费 / 扣费) | +0.17 / -0.11 | — | 无风险利率按 0,月度收益年化 |
| 多空最大回撤(不扣费 / 扣费) | -14.38% / -19.94% | — | 月度净值口径 |
| 多头 / 空头单边月换手 | 21.3% / 19.8% | — | 平均每月成本 0.123%(双腿合计) |
| 扣费后月度胜率 | 52.2% | — | 最差月 -5.11%,最好月 +3.61% |
| G10 相对基准年化超额 | +0.11% | — | 月度跑赢基准的比例 46.7% |
分年度收益(按信号日所在年份复利)
| 年份 | 月数 | G10 | G1 | 全市场等权基准 | G10 超额 | 多空(不扣费) | 多空(扣费) |
|---|---|---|---|---|---|---|---|
| 2019 | 12 | +17.22% | +6.88% | +18.86% | -1.64% | +9.20% | +7.47% |
| 2020 | 12 | +16.05% | +15.76% | +21.17% | -5.12% | -0.08% | -1.48% |
| 2021 | 12 | +26.80% | +35.80% | +25.83% | +0.96% | -7.19% | -8.56% |
| 2022 | 12 | +12.19% | +8.37% | +6.18% | +6.01% | +3.01% | +1.52% |
| 2023 | 12 | -12.69% | -15.92% | -18.01% | +5.32% | +3.03% | +1.57% |
| 2024 | 12 | +23.77% | +23.31% | +28.63% | -4.86% | -1.14% | -2.56% |
| 2025 | 12 | +41.61% | +48.45% | +49.18% | -7.57% | -5.02% | -6.31% |
| 2026 | 8 | -3.23% | -8.27% | -6.03% | +2.80% | +5.16% | +3.91% |
分年度 RankIC
| 年份 | 交易日数 | RankIC(中性化后) | RankIC(中性化前) | NW t | 胜率 | 课程口径 |
|---|---|---|---|---|---|---|
| 2019 | 244 | +0.0213 | +0.0273 | 3.59 | 78.3% | 未达可用线(<0.03) |
| 2020 | 243 | -0.0010 | +0.0164 | -0.14 | 54.7% | 未达可用线(<0.03) |
| 2021 | 243 | +0.0048 | -0.0128 | 0.46 | 56.8% | 未达可用线(<0.03) |
| 2022 | 242 | +0.0031 | -0.0013 | 0.47 | 55.8% | 未达可用线(<0.03) |
| 2023 | 242 | +0.0085 | -0.0205 | 0.92 | 68.2% | 未达可用线(<0.03) |
| 2024 | 242 | +0.0175 | +0.0106 | 1.16 | 50.4% | 未达可用线(<0.03) |
| 2025 | 243 | -0.0015 | -0.0050 | -0.15 | 39.1% | 未达可用线(<0.03) |
| 2026 | 174 | +0.0103 | +0.0092 | 1.54 | 64.9% | 未达可用线(<0.03) |
五、结论
- **IC 是否显著为正?**方向是正的,统计上刚过线但很弱。中性化后均值 0.0078,校正重叠后 t = 2.23(超过 2 的常用门槛),均值远低于 0.03 的「可用」线。换成月度不重叠的 92 个样本,t 只有 1.68,不显著。朴素 t 高达 8.4,就是重叠窗口造成的虚高。分年度看,6/8 个年份均值为正,但除个别年份外都很小。
- **分组是否单调?**不单调。十组月均收益在 1.21% ~ 1.72% 之间起伏,组序相关仅 0.08,最高的是 G7 而不是 G10,属于「乱跳」。G10 年化超额只有 +0.11%。
- **多空是否稳定?**不稳定、也不赚钱。不扣费年化 +0.78%,扣掉单边 0.15% 的成本后年化 -0.70%,最大回撤 -19.9%。8 个年份里只有 4 年扣费后为正。每月单边换手约 21%,成本把本来就薄的毛收益吃掉了。
- **要不要继续研究?**不建议单独作为选股因子继续投入。如果还想继续,更合理的方向是把它当作多因子组合里的一个小权重成分,或换成企业自由现金流(fcff)等其他口径再测一次;现有结果不支持把它做成独立策略。
以上是对本次样本内结果的描述。关于「为什么这个因子在 A 股不灵」,我没有做过验证,不下结论。
六、风险与备注
- 样本区间 2019-01-02 ~ 2026-10-27,只有约 92 个月度调仓期,1894 个交易日,统计功效有限。
- 只测了一个因子、一个口径(fcfe_ttm / 总市值)和一组参数(10 分组、20 日持有),结论没有经过样本外检验;换口径或换分组数可能得到不同结果,存在过拟合风险。
- 空头不可实现:A 股股票账户不能直接融券做空 G1,多空净值只是衡量因子区分度的理论值;实际可做的是「多 G10 对冲」。
- 交易细节未建模:涨跌停无法成交、停牌、冲击成本、融券费用、容量、分红再投资都没有处理。入场日开盘价缺失的 237 笔直接跳过。
- 末期处理:数据截至 2026-10-27,最后一个月末信号日 2026-08-31 的持有期到 2026-10-08 结束,之后未完结的月份不计入。
- 表名说明:任务第二步正文写的是 value_roe_neutral,而「输入参数」里写的是 yinzilieshou3706;我按输入参数落库为 yinzilieshou3706。
- 股票池里 ROE 与 EP 合成这一步对单因子不适用,没有执行。
自检结果
| 自检项 | 状态 | 结果 |
|---|---|---|
| 财报更新日 vs 公告日 | 有尾部 | 因子值首次变化日与最近公告日:130,868 次变化,中位滞后 0 天,P90 2 天;当天或次日更新占 74.8%,2~5 天占 19.0%。有未解释的尾部:滞后超过 5 天 7,766 笔(其中超过 30 天 5,451 笔,几乎都在 40 天及以上);另有 374 笔因子在公告日之前就变了(其中提前超过 3 天 81 笔)。提前变化意味着可能存在未来信息,这部分我没有逐笔核查。猜测:长滞后可能是公司重述、补报或变更表里没有收录对应公告日,没有验证。 |
| 因子额外滞后后的 IC | 通过 | 滞后 0/1/5/20/60 个交易日的 RankIC 均值:0.0078 / 0.0078 / 0.0076 / 0.0064 / 0.0069(NW t:2.23 / 2.23 / 2.20 / 1.87 / 2.13)。晚用几天几乎不变,说明信号不靠「抢跑」;财务因子本来就慢变,这个结果符合预期。 |
| 随机因子对照 | 通过 | 20 个随机种子的 IC 均值绝对值最大 0.0015,|NW t|>2 的有 2 个(最大 2.57)。随机数理论上也会偶尔超过 2,所以本因子的 t=2.23 与随机数的上限处在同一量级,不能当作强证据。 |
| 与过去收益的关系 | 参考 | 因子与信号日之前收益的日度秩相关均值(NW t):过去1d +0.0008(0.93),过去5d -0.0028(-1.45),过去20d -0.0081(-2.27),过去60d -0.0134(-2.67),过去250d +0.0137(2.36)。相关都很小,没有看到与动量/反转强绑定的迹象。 |
| 退市标的是否在样本内 | 通过 | 2019 年以来退市 243 只,其中 236 只进入了因子样本(164,219 行,占 2.0%)。离场遇到停牌/退市时按最后可得开盘价平仓,共 780 次;这不等于能以该价成交。 |
| SQL 与 numpy 核对 | 通过 | 逐日 RankIC 抽查 40 个交易日,SQL 与 numpy 最大绝对差 0.0e+00;月末十分组标签 34,401 行一致率 100.0%。正式结果采用 SQL 口径。 |
总结:自检没有发现明显的未来函数迹象,但财报更新日有一小部分异常尾部(上表第一行)没有被解释,请不要忽略。
数据来源:BigQuant 平台;全部数字由检验脚本的结果文件(step1_diag.json / step2_save.json / step3_results.json)读取生成。 生成日期 2026-10-28;本报告只描述历史样本内结果,不构成投资建议。