温和放量上涨因子(EHFL)检验报告
由bqwd9tcg创建,最终由bqwd9tcg 被浏览 1 用户
温和放量上涨因子(EHFL)检验报告 盘感:上涨过程中温和放量持续上涨的概率大 | 全 A | 2019-01-02 ~ 2026-10-28 | 月度调仓,T+1 开盘买入,持有约 20 个交易日 | 因子表:EHFL 一、概览 日度 RankIC 均值(中性化后) 0.0017 偏弱(未达 0.03 可用线) 校正后 t 值(Newey-West) 0.61 不校正为 1.74,虚高 2.9 倍 十组序相关 -0.08 乱跳=巧合 多空年化(扣费) -7.96% 不扣费 -1.77% 全市场等权年化 14.58% 最大回撤 -23.57% 样本 5646 只 × 1895 天 8181978 行,2019-01-02 ~ 2026-10-28 总评:无效。主版本 A 的 RankIC 均值 0.0017,校正重叠后 t 值 0.61(要 ≥2 才算显著);月度多空扣费后年化 -7.96%,同期全市场等权 14.58%。另两个版本——版本B:存疑(IC -0.0193,t -3.96);版本C:存疑(IC 0.0113,t 3.99)。 第一步 因子加工:全区间按年分 8 块在引擎内计算,297 秒。第二步 落库:写入表 EHFL,8181978 行,回读 8181978 行(一致),34 秒。第三步 检验:81 秒(含读取行情)。 二、加工说明 股票池:全 A 剔除 ST、停牌、上市不足 250 个交易日(北交所缺基础表的代码用上市日期折算)。 三个版本各自先在行业内用中位数填补缺失值。 缩尾:把最极端的 1% 和 99% 分位以外的值压回分位线。 标准化:每天减均值除标准差(z-score)。 对「申万一级行业哑变量 + 对数总市值」取残差,再标准化一次。 为什么要中性化(大白话):小盘股和某些行业天然更容易放量、涨跌也更大,如果不处理,因子看上去灵,其实只是把小盘股或某个行业挑了出来。中性化就是在每个行业内、同样市值水平上比较,只看「温和放量」本身有没有用。
主版本 A 中性化前后 IC 从 -0.0013 变为 0.0017,变化 0.0030;变化很小,说明 A 的结论不靠市值或行业撑着。 版本 B 从 -0.0374 变为 -0.0193,版本 C 从 0.0035 变为 0.0113。
中性化前 IC 前 t(NW) 中性化后 IC 后 t(NW) 中性化前与对数市值相关 版本 A -0.0013 -0.27 0.0017 0.61 0.059 版本 B -0.0374 -4.16 -0.0193 -3.96 0.025 版本 C 0.0035 0.51 0.0113 3.99 0.076 各步剔除与诊断 步骤 股票日条数 全部股票日(2019 起,bar1d) 9,044,434 剔除 ST 304,860 剔除停牌 15,152 剔除上市不足 250 个交易日 536,974 剔除行业或市值缺失 5,470 进入股票池 8,181,978 版本 行业中位数填充条数 最终空值 中性化前与对数市值相关(均值/日最大) 中性化后相关(均值/日最大) 每日标准差范围 每日均值绝对值最大 版本 A 588 0 0.059 / 0.552 -6.6e-16 / 3.3e-11 1.000000 ~ 1.000000 5.0e-17 版本 B 13,819 0 0.025 / 0.591 -2.6e-14 / 9.8e-11 1.000000 ~ 1.000000 3.7e-17 版本 C 2,064 0 0.076 / 0.386 -1.2e-14 / 4.0e-11 1.000000 ~ 1.000000 4.6e-17 无重复 (date, instrument):重复行数 0。样本中每日最少股票数 3349。
三、图表 图1 每日 RankIC 与 60 日均线 RankIC:每天把股票按因子排序,与一个月后涨幅排序的相关程度,越接近 +1 越灵。黑线是 0 轴。
-0.150 -0.100 -0.050 0.000 0.050 0.100 0.150 2020 2021 2022 2023 2024 2025 2026 60日均线 图2 累计 RankIC 每日 RankIC 一路加起来。上行代表一直有效,横着走代表没有信号;灰虚线是中性化之前。
-2.0 0.0 2.0 4.0 6.0 8.0 10.0 2020 2021 2022 2023 2024 2025 2026 中性化后 中性化前 图3 十组下期平均收益 每天按因子大小分 10 组(G1 最小 → G10 最大),看各组随后 20 个交易日的平均收益。台阶状向上才算有规律。
0.00% 0.50% 1.00% 1.50% G1 1.19% G2 1.48% G3 1.43% G4 1.41% G5 1.49% G6 1.53% G7 1.59% G8 1.45% G9 1.40% G10 1.07% 图4 十组累计净值 G1 绿 → G10 红渐变,黑虚线为全市场等权。鼠标悬停时按净值从高到低排列。
1.00 1.50 2.00 2.50 3.00 3.50 2020 2021 2022 2023 2024 2025 2026 等权基准 G1 G10 图5 多空累计净值 多 G10、空 G1,月度调仓;蓝为不扣费,橙为扣费(单边 0.15%),灰虚线为全市场等权基准。
0.50 1.00 1.50 2.00 2.50 3.00 2020 2021 2022 2023 2024 2025 2026 等权基准 不扣费 扣费 图6 每日 RankIC 直方图 横轴为 IC 数值,纵轴为天数。重心偏右才说明经常为正。
0 100 200 300 -0.29 -0.19 -0.09 0.01 0.11 0.21 图7 分年度 IC 每年 IC 的平均值;深色为中性化后,浅色为中性化前。
-0.020 -0.010 0.000 0.010 0.020 2019 2020 2021 2022 2023 2024 2025 2026 中性化后 中性化前 四、指标表 口径:|IC|≥0.03「可用」,≥0.05「强」,>0.1「可疑(警惕未来函数)」;单调性:台阶状=规律,乱跳=巧合。日度 IC 的 t 值已用 Newey-West(滞后 20)校正。
版本 日度 RankIC 均值 课程口径 标准差 IR 朴素 t NW 校正 t IC>0 占比 月度 IC 均值 G10−G1 月均 其 NW t 十组序相关 单调性 多空年化(不扣费) 多空年化(扣费) 夏普(扣费) 最大回撤(扣费) 多头单边换手(每月) 版本 A 0.0017 偏弱(未达 0.03 可用线) 0.0430 0.040 1.74 0.61 51.8% -0.0001 -0.13% -0.49 -0.08 乱跳=巧合 -1.77% -7.96% -1.09 -47.13% 91% 版本 B -0.0193 偏弱(未达 0.03 可用线) 0.0655 -0.294 -12.75 -3.96 40.2% -0.0208 -0.51% -1.00 -0.76 反向台阶(越大越跌) -7.51% -13.28% -0.71 -66.54% 89% 版本 C 0.0113 偏弱(未达 0.03 可用线) 0.0399 0.284 12.30 3.99 63.3% 0.0114 0.42% 2.45 0.38 乱跳=巧合 4.99% -1.38% -0.20 -14.56% 89% 主版本 A:十组下期平均收益 G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 1.19% 1.48% 1.43% 1.41% 1.49% 1.53% 1.59% 1.45% 1.40% 1.07% 基准对比 对比口径 年化 夏普 最大回撤 期数 全市场等权(同股票池) 14.58% 0.65 -23.57% 92 A 的 G10(扣费) 6.19% 0.35 -38.24% 92 A 的 G1(不扣费) 11.41% 0.53 -40.79% 92 主版本 A:分年度收益 年份 期数 G1 G10 多空(不扣费) 多空(扣费) 全市场等权 该年 IC(后) 该年 IC(前) 2019 10 18.11% 12.69% -4.92% -9.71% 20.26% -0.0018 0.0078 2020 12 19.85% 31.34% 9.49% 2.53% 32.89% 0.0063 0.0213 2021 12 34.77% 23.37% -8.89% -14.65% 18.65% 0.0012 0.0109 2022 12 -9.74% -7.87% 1.32% -5.08% -1.75% -0.0027 -0.0166 2023 12 -3.02% 4.15% 7.33% 0.51% 5.74% 0.0225 0.0009 2024 12 7.59% 4.10% -4.35% -10.41% 9.60% -0.0034 -0.0190 2025 12 29.23% 23.29% -4.74% -10.84% 28.56% -0.0102 -0.0111 2026 10 -1.23% -9.60% -7.23% -12.19% 2.49% 0.0022 -0.0063 五、结论 IC 是否显著为正:否。把盘感A翻译成因子后,它与一个月后涨幅的相关性平均只有 0.0017,校正重叠后 t 值 0.61,没到 2。朴素算法给出 1.74,是因为 20 日收益互相重叠,不校正会把把握夸大约 2.9 倍。
分组是否单调:乱跳=巧合。十组里下期收益最高的是 G7,最低的是 G10;十组序相关 -0.08,相邻两组上升的只有 4 次(共 9 次)。最「温和放量」的那一组(G10)下期平均收益 1.07%,是十组里最低的,中间几组反而更好(猜测:太过温和、走势已经充分演绎的股票,后续动力不足;没有验证)。
多空是否稳定:不稳定。不扣费的多空 8 年里只有 3 年为正,累计 -12.83%;扣掉每边 0.15% 的成本后年化 -7.96%,最大回撤 -47.13%。月度换手约 91%(单边),成本吃得很重。
另外两个翻译版本:版本 B(涨得稳×温和放量)的 IC 是 -0.0193(t -3.96),方向是反的:越符合这个描述,后面反而越差。版本 C(用换手率代替成交量)的 IC 是 0.0113(t 3.99),统计上显著为正,但数值只有 0.03「可用」线的 38%,不扣费多空年化 4.99%、扣费后 -1.38%,赚不到钱。三个版本我事先没有排优劣,主版本固定为 A,B、C 如实列出,不择优。
要不要继续研究:不建议原样继续。你的盘感按「收红天数占比 × 温和放量」这个翻译,在 2019 年以来的全 A 里没有稳定地选出一个月后更强的股票。如果想接着查,值得问的是换手率口径(版本 C)为什么有微弱信号,以及「温和放量」要不要和别的条件合用;单独拿它做策略不够。
六、风险与备注 样本区间 2019-01-02 ~ 2026-10-28(约 7.7 年,92 个月度调仓期);日度 IC 有 1875 个,但 20 日收益互相重叠,真正独立的观察只有几十个,所以 t 值用了 Newey-West 校正(滞后 20 天)。 过拟合提示:「温和」取 1.3 倍、宽度 0.3 是我定的,没有调参;一共测了 3 个翻译版本,A 为事先指定的主版本。就算 C 的 t 值显著,在 3 个版本里挑最好的一个,显著性也要打折。 空头不可实现:多空组合里的空头在 A 股个股层面无法直接做空(融券标的少、成本高),表里的多空收益只代表因子的区分度,不是可实现的收益。多头单独看 G10 的数字见指标表下方的对比表。 交易细节未建模:T+1 开盘价成交不考虑涨跌停打不进、冲击成本、停牌无法卖出(卖出日停牌按最后可得开盘价结算)、容量限制;成本只按单边 0.15% 计,印花税与佣金不分开算。 月度调仓、持有期按交易日 20 天处理:信号在月末,下一个信号日的次日开盘卖出,持有天数在 19 到 23 天之间浮动,与 IC 使用的固定 20 天略有不同。 市值口径为总市值,行业为申万 2021 一级。最新交易日 2026-10-29 的行业与市值表尚未更新,该日不在因子表里;最后一个调仓期的买入日为 2026-09-01,卖出日为 2026-10-08,之后的月份还没到月末,不参与检验。 自检里有两项需如实说明:额外滞后检验在因子本身无信号时不能证明「没有未来函数」;极端收益(>300% 有 293 笔)没有逐笔核查,属未解释尾部。 自检 自检项 结果 说明 财报更新日是否紧跟公告日 不适用 本因子只用成交量、涨跌幅、换手率;中性化用的总市值和行业也不是财报字段,不存在公告日滞后问题 因子额外滞后后的 IC 无信息量 滞后 0/1/5/10/20 天的 IC 均值为 0.0017, 0.0018, 0.0021, 0.0021, -0.0001,t 都在 ±0.8 以内。因子本身就没有显著信号,所以这项既没发现未来函数,也不能证明没有。 随机因子对照 通过 10 组随机数,IC 均值绝对值最大 0.0006,|t|>2 的有 0 组;检验流程没有凭空造出信号。 与过去收益的关系 有重叠,已拆开 因子与过去 5/20/60 日涨幅的 RankIC 均值为 0.151/0.145/0.012。过去 20 日涨幅本身对下期的 IC 为 -0.0644(t -6.09)。剔除过去 20 日涨幅能解释的部分后,A 的 IC 为 0.0093(t 3.68)。 退市标的是否在样本内 在样本内 2019 年以来退市 244 只,243 只在行情表里,237 只有因子值;卖出日已无行情的按最后可得开盘价结算(A 的 G1 90 次、G10 80 次)。有 1 只不在行情表,未逐一追查。 SQL 结果与独立重算 通过 用 numpy 独立重算版本 A 的原始因子,在 12 个抽样日与落库值的秩相关最低 0.99998。 IC 过高(疑似未来函数) 未发现 A 的日度 IC 均值 0.0017,远低于 0.1;日度 IC 落在 ±0.3 之外的天数 0。 未解释的尾部 有,未核查 20 日收益 >300% 的有 293 笔、<−90% 的有 4 笔(共 8,899,935 笔有效)。价格已复权,未逐笔核查原因;它们对排序相关(RankIC)影响很小,对分组平均收益有影响(猜测:多为小盘股的极端行情)。 被跳过的标的 已记录 买入日停牌或无行情而跳过 237 个股票期(228 只,见 ehfl_out/skipped_test.csv);加工阶段因行业或市值缺失剔除 5,470 个股票日(见 ehfl_out/skipped.csv,几乎都落在最新一个交易日,该日行业与市值表尚未更新)。131,784 个股票日的上市天数缺失,已用上市日期按 245/365 折算。 额外滞后下的 IC 额外滞后(交易日) 0 1 5 10 20 日度 RankIC 均值 0.0017 0.0018 0.0021 0.0021 -0.0001 NW 校正 t 0.61 0.66 0.82 0.76 -0.05