波动捕手0296
由bqihuyyu创建,最终由bqihuyyu 被浏览 3 用户
季度营收增长 × 销售净利率 因子检验报告 因子表 growth_margin_neutral(8,176,921 行)· 因子区间 2019-01-02 至 2026-10-27 · RankIC 区间 2019-01-02 至 2026-09-18(需要 20 日后收益)· 月度回测 93 个信号日、92 期 RankIC 均值(中性化后) 0.0240 NW t = 3.86,朴素 t = 14.4 ICIR 0.333 IC 标准差 0.0721 IC>0 胜率 64.2% 1,202 / 1,873 个交易日 多空年化(扣费) 6.67% 夏普 0.67,不扣费 8.35% 多空最大回撤(扣费) -17.69% 不扣费 -14.38% G10 多头年化(扣费) 14.79% 等权基准 14.52% 样本 8,176,921 行 1,894 个交易日 · 5,645 只股票 总评:存疑RankIC 均值 0.0240(Newey-West t = 3.86)统计上显著,但低于 0.03 的「可用」线;多空扣费后月度 t 值 1.86,未过 2;2021、2022、2023 三年多空为负;G10 回落到 G9 之下,多头扣费后年化 14.79%,与等权基准 14.52% 基本持平。 一、因子加工说明 股票池(全 A):9,033,281 条股票·日起步,依次剔除: 剔除 ST:304,466 条(股票·日) 剔除停牌:15,144 条(股票·日) 剔除上市不足 250 个交易日:536,489 条(股票·日) 剔除行业或市值缺失:261 条(股票·日) 最终 8,176,921 行,日均 4317 只。北交所 920 开头新代码在基础因子表里缺 176,086 行,上市天数改按「上市日 × 245/365」折算,没有丢行。 两个原始指标:单季度营收同比(operating_revenue_mrq_yoy)与单季度销售净利率(net_profit_rate_mrq),小数口径,inf 当缺失。 行业中位数填充:按申万一级行业,营收增长填 173,952 条,净利率填 133,804 条。 缩尾 + 标准化:每日截面 1% / 99% 缩尾(增长 165,248 条、净利率 165,248 条被触及),再做 z-score。 等权合成:两个 z-score 取平均,再做一次 z-score,得到中性化前因子。 中性化:对「申万一级行业哑变量 + ln(总市值)」做截面回归取残差,再 z-score,得到检验用的因子。 加工诊断:与 ln(总市值) 的日均相关系数由 0.214 降到 5.4e-14(单日最大绝对值 3.0e-11);每日均值绝对值最大 3.4e-17,标准差在 1.000000000000 到 1.000000000000 之间;(date, instrument) 重复 0 条;剩余缺失 0 条。 与你给出的条件的差别:你要的是「营收增长 > 5% 且净利率 > 10%」。本次把这两个指标做成连续的等权合成因子来检验,没有直接做 0/1 筛选;「同时达标」的股票平均占当日股票池 20.6%,该二值筛选本身没有单独检验。加工在 D0 免费规格上按年分 8 段执行(一次取全区间会内存不足),各算子都是逐日截面计算,分段与一次取全区间应当等价,但没有拿全区间结果对照过。 耗时:加工 126 秒,落库 17 秒(回读 8,176,921 行,主键无重复),检验取数与统计合计 219 秒。 为什么要中性化(大白话) 营收增长和净利率这类指标,天然会因为「哪个行业」「公司多大」而不同:有的行业利润率常年就高,小公司的增长率波动也更大。不处理的话,因子排名靠前的股票往往只是「某几个行业、某个市值段」,因子表面上在选股,实际在押行业和大小盘。中性化就是在每天的截面上先扣掉行业和市值能解释的部分,只留下「同行业、同大小的公司里,谁比别人更好」。 本次的对照:中性化前,因子与 ln(市值) 的日均相关系数为 0.214,中性化后约为 0。RankIC 均值由 0.0154 升到 0.0240,日 IC 标准差由 0.1174 降到 0.0721,ICIR 由 0.132 升到 0.333,NW t 值由 1.51 升到 3.86。 需要注意:「中性化后 IC − 中性化前 IC」这个差值本身的 NW t 值只有 1.58,没有过 2,所以只能说中性化后的因子更稳、显著性更好,不能说它的预测力被证明更强。猜测:原始因子 IC 波动大,主要来自行业和市值风格轮动;本次没有单独拆解验证。 二、图表 红涨绿跌:IC 为正、收益为正标红,为负标绿。所有图可悬停查看数值。 ① 日 RankIC 时间序列 日 RankIC(中性化后) 60 日均线 -0.20 -0.10 0.00 0.10 0.20 0.30 2019 2020 2021 2022 2023 2024 2025 2026 柱:每日 RankIC(因子对未来 20 个交易日收益的秩相关);橙线:60 日均线;横线为 0 轴。1,873 个交易日,单日最小 -0.160(2024-07-10),最大 0.264(2024-12-23)。 ② 累计 RankIC 中性化后 中性化前 0 10 20 30 40 50 2019 2020 2021 2022 2023 2024 2025 2026 中性化后 中性化前 逐日 RankIC 累加。线越稳定向上,说明因子长期方向一致;斜率变缓的区段就是因子失灵的阶段。相邻日的 20 日收益窗口大幅重叠,累加会放大趋势的观感,不能当作独立样本。 ③ 十组下期平均收益 0.0% 0.5% 1.0% 1.5% 2.0% G1 0.79% G2 0.96% G3 1.13% G4 1.32% G5 1.47% G6 1.54% G7 1.70% G8 1.73% G9 1.79% G10 1.51% G1 因子最小 → G10 因子最大,按月末信号日的 c_ntile 分 10 组,持有一个月的平均收益。G1 0.79%,G9 1.79%,G10 1.51%,G10−G1 为 0.71%/月。 ④ 日 RankIC 直方图 中性化后 中性化前 0 50 100 150 200 250 -0.29 -0.23 -0.17 -0.11 -0.05 0.01 0.07 0.13 0.19 0.25 每格 0.02。中性化后的分布整体向右偏移且更窄;偏度 0.08,IC 绝对值 ≥0.3 的天数为 0。 ⑤ 十组累计净值(G1 绿 → G10 红) 颜色: G1 → G10 G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 全市场等权基准 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 2019 2020 2021 2022 2023 2024 2025 2026 G10 等权基准 G1 月度调仓,未扣费,起点 1.0。线尾直接标注 G1、G10 和全市场等权基准,悬停时按净值从高到低排序。 ⑥ 多空累计净值(多 G10 空 G1) 多空·不扣费 多空·扣费(单边 0.15%) 多空·扣费·未中性化 全市场等权基准 0.5 1.0 1.5 2.0 2.5 3.0 3.5 2019 2020 2021 2022 2023 2024 2025 2026 等权基准 不扣费 扣费 未中性化 单边成本 0.15%,首期建仓成本已计入。灰色虚线为全市场等权基准(仅作参照,多空组合是对冲后的收益,二者不在同一风险水平上)。 ⑦ 分年度 RankIC 中性化后 中性化前 -0.040 -0.020 0.000 0.020 0.040 0.060 0.080 2019 2020 2021 2022 2023 2024 2025 2026 各年日 RankIC 均值,蓝:中性化后;灰:中性化前。2026 年只有到 9 月中旬的数据。 ⑧ 分年度收益 多空·扣费 G10 多头 等权基准 -20% -10% 0% 10% 20% 30% 40% 50% 2019 2020 2021 2022 2023 2024 2025 2026 月度回测的各期收益按期末所在年份归入年度,多空与 G10 为扣费口径,基准为全市场等权。2026 年不是完整年度。 三、指标表 RankIC 口径 RankIC 均值 标准差 IR 朴素 t NW t(滞后20) p 值 IC>0 胜率 课程口径 中性化后(每日,20 日收益) +0.0240 0.0721 0.333 14.42 3.86 0.0001 64.2% 未达「可用」线 0.03 中性化前(每日,20 日收益) +0.0154 0.1174 0.132 5.69 1.51 0.1305 51.3% 未达「可用」线 0.03 中性化后(仅月末信号日,NW 滞后3) +0.0221 0.0688 0.322 3.09 2.89 0.0038 66.3% 未达「可用」线 0.03 中性化后(回测持有期收益,NW 滞后3) +0.0272 0.0713 0.382 3.66 3.62 0.0003 68.5% 未达「可用」线 0.03 朴素 t 约是 NW t 的 3.7 倍,这就是 20 日收益窗口重叠造成的虚高,判断显著性以 NW t 为准。课程口径:|IC|≥0.03「可用」,≥0.05「强」,>0.1「可疑(警惕未来函数)」。日 IC 的单日波动很大(|IC|>0.1 的天数占 18.7%),口径只用于均值。 十组收益与单调性 分组 月度平均收益 t 值 G1 +0.79% 0.88 G2 +0.96% 1.22 G3 +1.13% 1.46 G4 +1.32% 1.75 G5 +1.47% 1.95 G6 +1.54% 2.01 G7 +1.70% 2.21 G8 +1.73% 2.25 G9 +1.79% 2.28 G10 +1.51% 1.83 G10−G1 +0.71% 2.30 组序相关(Spearman)0.879,9 个相邻组对中 8 个上行。整体呈台阶状,但最高组 G10 低于 G9,头部没有继续上升。单调性判断:台阶状 = 规律,乱跳 = 巧合。各组 t 值只检验「该组平均收益是否为 0」,市场整体上涨会抬高所有组,因此 G10−G1 比单组 t 值更有意义。 分年度收益 年份 多空·不扣费 多空·扣费 G10 G1 全市场等权基准 年均 RankIC 2019 +12.9% +11.0% +39.1% +21.6% +30.9% +0.0554 2020 +24.4% +22.4% +21.5% -3.0% +18.6% +0.0397 2021 +0.9% -0.7% +21.0% +17.9% +26.9% +0.0082 2022 -6.2% -7.7% -14.5% -9.6% -10.0% +0.0045 2023 -0.1% -1.6% +5.7% +5.7% +9.8% +0.0067 2024 +8.9% +7.4% +5.9% -6.0% +4.5% +0.0294 2025 +10.6% +9.0% +48.3% +32.9% +38.7% +0.0268 2026 +15.7% +14.3% +5.1% -8.8% +0.2% +0.0201 G10、G1 为不扣费的多头收益。2026 年只含已走完的月度期,不是完整年度。 多空与多头组合(月度调仓) 组合 累计收益 年化 年化波动 夏普 最大回撤 月胜率 单边换手(每期) 多空 · 不扣费 +84.9% +8.35% 10.3% 0.83 -14.4% 56.5% 空头腿 21.5% / 多头腿 21.4% 多空 · 扣费 +64.0% +6.67% 10.4% 0.67 -17.7% 53.3% 成本拖累 0.129%/期 多空 · 扣费 · 未中性化因子 +16.7% +2.03% 14.4% 0.21 -39.4% 50.0% G10 多头 · 扣费 +187.9% +14.79% 27.3% 0.63 -29.8% 54.3% 21.4% G10 多头 · 不扣费 +205.3% +15.67% 27.4% 0.66 -28.5% 55.4% G1 · 不扣费 +51.4% +5.56% 29.8% 0.32 -37.8% 53.3% 21.5% 全市场等权基准 +182.8% +14.52% 26.0% 0.65 -23.5% 55.4% 成本假设:单边 0.15%,按每期调仓的权重变动绝对值计费(首期从现金建仓,单边换手 50%,其余期按「上期持仓漂移后」到新目标权重计算)。月度 92 期,年化按 12 期折算。多空腿的权重各自等权、各占 1 份,没有加杠杆,也没有计融券费用。 四、自检 项目 结果 判定 说明 财报更新日是否紧跟公告日 因子取值发生变化的日子对照利润表 PIT 公告日。营收增长:121,110 次变化,当日 97,674 次,距公告日中位数 0 天、95 分位 2 天,超过 7 天的 25 笔,其中 6 笔的变化日早于其后 10 天内的公告日。净利率:131,046 次变化,中位数 0 天、95 分位 2 天,找不到公告日的 2,436 笔,异常共 2,547 笔,其中 21 笔早于其后 10 天内的公告日。滞后分布(营收增长):0天 97,674 / 1天 5 / 2-3天 21,640 / 4-7天 1,766 / 8-30天 12 / >30天 13。 主体通过,有未解释尾部 异常共 2,572 笔,占变化次数的 1.02%;其中变化日早于公告日的 27 笔是潜在未来函数。净利率里找不到公告日的 2,436 笔中,银行、非银占 0%,所以不是「银行券商不在这张表里」造成的,原因没查清。 利润表首次披露滞后(PIT 表) 每个报告期取首次公告日:170,498 个报告期,中位数 52 天,5 分位 24 天,95 分位 179 天;公告日早于报告期末 4 笔;滞后超过 130 天 10,342 笔(6.1%),最大 1,213 天;142,541 个报告期有多条记录。 有未解释尾部 超过 130 天的笔数逐年下降(2019 年 2,779 笔,2025 年 178 笔)。原因没有查,猜测为补报或数据回填;未验证。 因子额外滞后后的 IC 因子额外滞后 5 个交易日:均值 0.0213,NW t 3.44;滞后 20 个交易日:均值 0.0168,NW t 2.78(不滞后:0.0240,3.86)。 通过 多滞后后 IC 缓慢衰减但仍显著,信号不依赖「公告当天抢跑」。 随机因子对照 5 个按(代码+日期)哈希生成的随机因子:rnd1 均值 +0.0002、NW t +0.62;rnd2 均值 -0.0001、NW t -0.32;rnd3 均值 -0.0007、NW t -1.81;rnd4 均值 -0.0006、NW t -1.72;rnd5 均值 -0.0003、NW t -0.82。 通过 随机因子 IC 均值都在 ±0.001 内,NW t 绝对值最大 1.81(<2),检验流程没有制造出假信号。 与过去收益的关系 因子与过去 20 日收益的逐日秩相关均值 +0.0430(NW t 5.9),与过去 60 日收益 +0.0852(NW t 11.1)。 有关联,未拆解 营收和利润好的公司往往近期涨幅更大,这是预期之内的关联,但意味着一部分 IC 可能是动量带来的。猜测:因子 IC 里有一部分来自动量;本次没有对过去收益做进一步中性化,未验证。 退市标的是否在样本内 因子样本里有 235 只已退市(最后一根行情早于 2026-10-20)标的,162,466 行。月度回测里,各期月末股票池中期内终止交易的 96 只次,按最后一个有效开盘价退出并计入各组收益。 通过 没有做幸存者剔除。退出价取最后有效开盘价,未计入退市整理期可能的进一步跌幅,空头腿在这一点上偏乐观。 无效开盘价 8,176,921 行中次日开盘价为空 7,930 行;20 日后开盘价为空 118,050 行,其中 103,948 行在最后 21 个交易日(2026-09-21 至 2026-10-27,还没到期,不进 IC),其余 14,102 行。月度回测中买入价缺失 237 只次、卖出价缺失 684 只次(占 0.17%),这些股票不进当期分组收益。 通过,原因未核实 猜测:空开盘价多为停牌日;本次没有逐条核对。 SQL 与 numpy / scipy 核对 3 个抽样日 RankIC:SQL 与 scipy 最大绝对差 4.3e-16;20 日收益最大差 0.0;c_ntile 与标准 NTILE 分组在 93 个信号日完全一致(一致率最小值 100%)。 通过 分组与 IC 直接用 SQL 算出,无需回退 numpy。 五、结论(大白话) IC 是否显著为正:是,但偏弱。中性化后日 RankIC 均值 0.0240,Newey-West t 值 3.86,月末抽样的 t 值 2.89,都显著大于 0;但均值没到 0.03 的「可用」线。分年度看很不均匀:2019、2020 年均值 0.055、0.040,达到「可用」;2021–2023 年只有 0.004 到 0.008,接近 0;2024–2026 年回到 0.020 到 0.029。
分组是否单调:大体是台阶状。组序相关 0.88,9 个相邻组对中 8 个上行,G10−G1 平均每月 0.71%(t = 2.30)。但最高的 G10(1.51%)低于 G9(1.79%),最好的股票不在因子值最大的一组里。
多空是否稳定:不够稳定。扣费后多空年化 6.67%,夏普 0.67,月度收益 t 值 1.86(未过 2),最大回撤 -17.7%;2021、2022、2023 三年扣费后为负。只做多 G10,扣费后年化 14.79%,等权基准 14.52%,没有看出明显的超额收益。中性化前的因子更差:多空扣费后年化 2.03%,NW t 只有 1.51。
要不要继续研究:值得继续,但不能单独当策略用。它在剔除行业和市值影响后确有一点稳定的截面信息,并且通过了额外滞后和随机因子对照;弱点是强度不够、2021–2023 年失灵、多头没有跑赢基准。更合适的方向是把它当作多因子组合里的一个辅助维度,或者检验你原本想要的「增长>5% 且净利率>10%」二值筛选和 EP/ROE 版本是否更强。
六、风险与备注 样本区间:因子 2019-01-02 至 2026-10-27;RankIC 需要 20 日后收益,只到 2026-09-18,最后 21 个交易日没有进入;月度回测的月末信号日只取完整结束的月份,共 93 个,92 期。样本只有 7 年多,2021–2023 年和 2024 年之后表现差异大,不能保证稳定。 过拟合提示:没有做参数搜索,只比较了中性化前后两个版本;但因子定义本身是我替换的(见第一节),所有检验用同一段样本,没有样本外验证。 空头不可实现:A 股融券标的少、成本高,且不能无限制卖空,多空净值只能衡量因子的区分度,不是可执行的收益。 交易细节未建模:涨跌停无法成交、停牌、冲击成本与容量、印花税买卖不对称、融券费用都没有计入;成本只用统一的单边 0.15%。 公告日自检的覆盖范围:只对照了一般企业利润表,银行、保险、券商不在该表内,这类股票在因子变化事件里约占 2.6%,没有单独检查。 加工分段:因子加工按年分 8 段执行,没有与一次取全区间的结果对照(后者在 D0 规格上内存不足)。 落库:因子写入数据表 growth_margin_neutral,回读 8,176,921 行、主键无重复。你指定的 aaaa 表我没有写入权限,写入被拒,原表未改动;本报告的文件路径按你的要求为 ./aaaa.html。 数据来源:所有数字来自 step1.json、step2.json、step3a.json、step3b.json、step4_extra.json,生成时没有手填。 报告生成日期 2026-10-28 · 数据最新交易日 2026-10-27 · 红涨绿跌 · 本报告为研究记录,不构成投资建议。