日内微观结构合成因子 micro_combo

由yangduoduo05创建,最终由yangduoduo05 被浏览 1 用户

日内微观结构合成因子 micro_combo 说明

数据表:hf_bar1m_c_intraday_microstructure(2015-01-05 起,逐交易日) 代码:同目录 builder.py;表结构与 IC 全表见同目录 hf_bar1m_c_intraday_microstructure.md 方向:micro_combo 值越小,未来收益越高

1. 一句话概括

把每只股票每天 240 根 1 分钟 K 线压缩成 18 个「日内微观结构量」,再看这些量在过去约 20 个交易日里的平均水平(_m20)和稳定程度(_s20),经 IC 筛选留下 25 个,市值中性化后按方向对齐等权相加,得到 micro_combo。再剔除十个风格因子和行业,得到纯净版 micro_combo_pure。

它想抓的东西可以归成三类:

  1. 投机与注意力溢价:日内走势越「乱」(峰度忽大忽小、波动成簇、量集中在开盘、日内趋势性强、上涨时量价配合好),越像散户追涨、彩票型交易主导,股价越容易被高估,后续跑输
  2. 流动性补偿:分钟级价格冲击越大(Amihud 非流动性越高),持有者要求的补偿越多,后续跑赢
  3. 下行风险补偿:下行方差占比越高,越可能是被抛压错杀,后续反弹

2. 来源

自研因子,不是某篇研报的复现。选题方法是在复现研报仓库已建的 15 张分钟表之外找空白:价量相关性(CPV)、分布均匀度(UTD/UID)、日内隔夜切割、聪明钱、APM、显著性、潮汐等方向都已覆盖,因此本表取了五个还没做过的方向:

方向 关注点 日频量
A. 已实现高阶矩与跳跃分解 日内收益分布的尾部、偏向和跳跃,而不只是方差 已实现峰度、下行方差占比、跳跃占比、波动离散度
B. 流动性与价格冲击 单位成交推动价格的能力 Amihud 非流动性、量价弹性、收盘 VWAP 偏离
C. 日内时序结构 分钟价格是反转还是延续,波动是否成簇 方差比、收益自相关、绝对收益自相关
D. 成交量日内分布形状 成交在一天里怎么分布,而不是总量多少 成交量 HHI、时间重心、开盘半小时量占比
E. 路径形态 价格从开盘到收盘走了什么路径 路径效率、日内最大回撤、量加权涨跌非对称、开盘/尾盘半小时收益

各个日频量的构造借用了金融计量学里成熟的工具,下面这些文献是思路参考,不是复现对象,数值不可与之对照:

  • 已实现矩:Amaya, Christoffersen, Jacobs, Vasquez (2015), Does realized skewness predict the cross-section of equity returns?, JFE
  • 已实现半方差与好坏波动:Barndorff-Nielsen, Kinnebrock, Shephard (2010), Measuring downside risk: realised semivariance;Bollerslev, Li, Zhao (2020), Good volatility, bad volatility, and the cross section of stock returns, JFQA
  • 双幂次变差与跳跃:Barndorff-Nielsen, Shephard (2004), Power and bipower variation with stochastic volatility and jumps, JFEC
  • 非流动性:Amihud (2002), Illiquidity and stock returns, JFM
  • 方差比:Lo, MacKinlay (1988), Stock market prices do not follow random walks, RFS
  • 注意力驱动交易:Barber, Odean (2008), All that glitters, RFS

3. 计算流程总览

cn_stock_bar1m_c(09:31~15:00,每股每日 240 根)
   │  ① 日内压缩:18 个日频微观结构量 X_daily
   ▼
质量过滤:240 根齐全、日内方差 > 1e-12、全天有成交;±inf → null
   │  ② 时序聚合:过去 24 个交易日内取均值 m20 / 标准差 s20(≥20 个有效日才出值)
   ▼
36 个候选 + 9 个其他候选 = 52 个候选 ──③ IC 筛选──▶ 25 个入选因子
   │  ④ 截面处理:MAD 5 倍去极值 → z-score → 对 log 总市值回归取残差
   ▼
   │  ⑤ 合成:每个因子再截面 z-score,4 个正向因子取负,25 个等权相加
   ▼
micro_combo ──⑥ 对 10 个风格因子 + 申万一级行业哑变量回归取残差──▶ micro_combo_pure

4. 第一步:日内压缩成 18 个日频量

4.1 记号与数据口径

  • 只取连续竞价分钟:CAST(date AS TIME) >= '09:31:00',剔除开盘集合竞价 bar,保留 15:00 收盘集合竞价 bar,每天恰好 240 根,记序号 $i = 1, \dots, 240$
  • $C_i$、$v_i$、$a_i$:第 $i$ 根的收盘价、成交量(股)、成交额(元)
  • 分钟简单收益 $r_i = C_i / C_{i-1} - 1$,对数收益 $\ell_i = \ln(C_i / C_{i-1})$,$i = 2, \dots, 240$,共 $n = 239$ 个。只在日内取差分,不含隔夜跳空
  • 已实现方差 $RV = \sum_i r_i^2$
  • 一个交易日要同时满足三个条件才进入后续计算:240 根齐全、$RV > 10^{-12}$(排除一字板)、全天成交量 {seo}gt; 0$。不满足的日子不占滚动窗口名额

4.2 A 组:已实现高阶矩与跳跃

日频量 公式 含义
rkurt_daily 已实现峰度 $\dfrac{n \sum r_i^4}{(\sum r_i^2)^2}$ 正态约为 3。值大说明一天里少数几分钟贡献了大部分波动,尾部厚
rs_down_ratio_daily 下行方差占比 $\dfrac{\sum_{r_i<0} r_i^2}{RV}$ 0.5 表示涨跌对称;大于 0.5 说明波动主要来自下跌分钟
jump_ratio_daily 跳跃方差占比(不入表) $\dfrac{\max!\left(RV - BV,\ 0\right)}{RV}$,$BV = \dfrac{\pi}{2}\cdot\dfrac{n}{n-1}\sum_i \lvert r_i\rvert\lvert r_{i-1}\rvert$ 双幂次变差 $BV$ 对跳跃稳健,只估计连续波动;$RV-BV$ 就是跳跃贡献的方差
vol_of_vol_daily 日内波动离散度 $\dfrac{\operatorname{std}(\lvert r_i\rvert)}{\operatorname{mean}(\lvert r_i\rvert)}$ 绝对收益的变异系数,值大说明波动在日内分布不均

符号跳跃 $(RS^+ - RS^-)/RV$ 恒等于 $1 - 2\cdot$rs_down_ratio,与下行方差占比严格仿射,候选阶段已剔除。

4.3 B 组:流动性与价格冲击

日频量 公式 含义
amihud_daily 分钟非流动性 $\ln!\left(\operatorname{mean}_i \dfrac{\lvert r_i\rvert}{a_i}\right)$ 每成交 1 元推动的价格变动,取对数压缩量纲。值大越不流动
elasticity_daily 量价弹性 $\ln v_i = \alpha + \beta \lvert r_i\rvert + \varepsilon_i$ 的 $\beta$ 价格每多波动一单位要多放多少量。值大说明价格「推不动」,要靠大量成交才能波动
vwap_dev_daily 收盘 VWAP 偏离 $\dfrac{C_{240}}{\sum a_i / \sum v_i} - 1$ 收盘价相对全天成交均价的位置。正值说明尾盘价格被推高到均价之上

4.4 C 组:日内时序结构

日频量 公式 含义
var_ratio_daily 方差比 $\dfrac{RV_{5\min}}{5\cdot RV_{1\min}}$,$RV_{5\min}$ 用 48 个 5 分钟块末收盘价的收益算 随机游走下为 1;{seo}lt;1$ 说明分钟级均值回复(买卖价差弹跳),{seo}gt;1$ 说明分钟级趋势延续
ret_ac1_daily 收益一阶自相关 $\operatorname{corr}(r_i, r_{i-1})$ 负值为分钟反转,正值为分钟追涨杀跌。对 MA(1) 噪声近似有 $VR \approx 1 + 2\rho_1$
absret_ac1_daily 波动聚集度 $\operatorname{corr}(\lvert r_i\rvert, \lvert r_{i-1}\rvert)$ 大波动后面是否还跟着大波动,即日内的 GARCH 效应

4.5 D 组:成交量日内分布形状

日频量 公式 含义
vol_hhi_daily 成交量集中度 $240 \cdot \sum_i \left(\dfrac{v_i}{\sum v}\right)^2$ 赫芬达尔指数乘以 bar 数。完全均匀时为 1,值越大成交越挤在少数几分钟
vol_gravity_daily 成交量时间重心 $\dfrac{1}{240}\cdot\dfrac{\sum_i i, v_i}{\sum v}$ 成交量加权的平均时刻。0.5 为均匀,偏小说明成交偏早盘
open30_vol_daily 开盘半小时量占比 $\dfrac{\sum_{i \le 30} v_i}{\sum v}$ 09:31~10:00 的成交占比,均匀时应为 0.125(A 股 U 型分布下通常更高)

4.6 E 组:路径形态

日频量 公式 含义
path_eff_daily 路径效率 $\dfrac{\lvert \ln(C_{240}/C_1)\rvert}{\sum_i \lvert \ell_i\rvert}$ 位移除以路程,落在 $[0,1]$。接近 1 是单边趋势,接近 0 是来回震荡。分母用对数收益,由三角不等式保证不越界
max_dd_daily 日内最大回撤 $\min_i \left(\dfrac{C_i}{\max_{j \le i} C_j} - 1\right)$ 非正数,越小日内回撤越深
ret_asym_daily 量加权涨跌非对称 $\dfrac{\sum_{r_i>0} v_i r_i}{\sum_{r_i>0} v_i + 1} + \dfrac{\sum_{r_i<0} v_i r_i}{\sum_{r_i<0} v_i + 1}$ 上涨分钟的量加权平均涨幅加上下跌分钟的量加权平均跌幅(后者为负)。正值说明放量上涨的力度大于放量下跌,买方更激进。分母 $+1$ 只为防零除
open30_ret_daily 开盘半小时收益(不入表) $C_{30}/C_1 - 1$ 早盘消化隔夜信息的幅度
last30_ret_daily 尾盘半小时收益(不入表) $C_{240}/C_{210} - 1$ 尾盘资金推动的幅度

三个「不入表」的日频量会在某个值上堆积(开盘/尾盘收益落在 tick 网格上精确为 0 的很多,跳跃占比被 $\max(\cdot,0)$ 截断成 0 的很多),单日重复率超过入库门禁的 20%,所以只作为中间量参与聚合,它们的 20 日聚合值是连续的,照常入表。

5. 第二步:20 日时序聚合

对每个日频量 $X_t$ 取两种聚合:

$ X^{m20}_t = \operatorname{mean}{X_s : s \in W_t},\qquad X^{s20}_t = \operatorname{std}{X_s : s \in W_t}$

窗口 $W_t$ 是截至 $t$ 的最近 24 个交易日里的有效日,有效日少于 20 个时置空。这样做的原因:分钟表停牌日没有行,如果直接「取最近 20 行」,窗口跨多远取决于这次加工批次里恰好有多少行,同一天在单日增量和历史回填里会算出不同值(实测 micro_combo 中位差 0.108)。代码先把每只股票补齐到完整交易日网格再按固定跨度滚动,两种批次长度的结果差异降到 $2\times10^{-11}$。

两种聚合的经济含义不同:

  • _m20 是「性格」:这只股票平时的日内行为是什么样的,比如习惯性地尾盘拉升、习惯性地开盘放量
  • _s20 是「情绪稳定性」:日内行为是不是忽好忽坏。入选的 25 个里有 16 个是 _s20,说明在 A 股,日内特征的时变程度比特征本身更有预测力。一只股票若有时风平浪静、有时剧烈跳动,往往是被事件和情绪驱动,而不是被稳定的基本面定价

6. 第三步:因子筛选(52 → 25)

候选:18 个日频量各取 _m20、_s20 共 36 个,另加 9 个日频量(已实现偏度、符号跳跃、Roll 价差、价格冲击斜率、成交量熵、最高/最低价时点、收盘位置、涨跌分钟量比)的聚合,共 52 个。

IC 口径:月末截面(不重叠)、次日开盘到 21 个交易日后开盘的收益、Spearman、年化 ICIR = 月度 ICIR × $\sqrt{12}$。训练段 2016-01 ~ 2019-12 用于挑选,测试段 2020-01 ~ 2026-08 只报告。规则事先定好、一次应用:

  1. 训练段 |年化 ICIR| ≥ 1.5
  2. 训练段与测试段 IC 同向
  3. 两两截面相关 |ρ| > 0.8 时只留训练段 |ICIR| 大的

规则 1、2 剔除 23 个,规则 3 剔除 4 个(rkurt_m20、var_ratio_m20、max_dd_m20、vol_entropy_s20)。

7. 第四步:截面处理与合成

市值中性化(25 个入选因子各自独立做,每个交易日一个截面):

  1. MAD 去极值:中位数 ± $5 \times 1.4826 \times \mathrm{MAD}$ 截断
  2. z-score 标准化
  3. 对标准化后的 $\ln(\text{总市值})$ 做 OLS,取残差 $\tilde f_k$。有效样本少于 20 只时当日置空

合成:

$ \texttt{micro_combo} = \sum_{k=1}^{25} s_k \cdot \frac{\tilde f_k - \operatorname{mean}(\tilde f_k)}{\operatorname{std}(\tilde f_k)}$

  • $s_k = -1$:训练段 IC 为正的 4 个(rs_down_ratio_m20、amihud_m20、jump_ratio_m20、elasticity_s20)
  • $s_k = +1$:其余 21 个
  • 符号在筛选时一次性定下,不随加工区间重估,没有前视
  • 等权而非 IC 加权,避免把训练段的噪声写进权重
  • 25 个因子必须全部非空才出值。pl.sum_horizontal 会跳过空值,否则全空的股票会被加成 0,正好落在分布中间

纯净版:micro_combo 再去极值标准化,对十个风格因子(Beta、Size、NonLinearSize、BTOP、EY、Growth、Leverage、ResVol、Liquidity、Momentum,均为 cn_stock_prefactors 构造的代理)与申万一级行业哑变量回归,残差即 micro_combo_pure。它衡量的是扣除常见风格和行业之后剩下的日内微观结构信息。

8. 25 个入选因子的经济学含义

下表「方向」指因子值与未来收益的关系:「−」表示值越小越好,「+」表示值越大越好。「增量 ICIR」是再剔除 20 日反转、20 日换手、20 日波动三个传统因子后剩下的年化 ICIR,用来判断这个因子是不是传统价量因子换了个马甲。数值来自同目录主文档的 IC 绩效表。

8.1 A 组:已实现高阶矩与跳跃(5 个)

因子 方向 IC / ICIR 增量 ICIR
rkurt_s20 − −0.062 / −3.65 −1.64
rs_down_ratio_m20 + +0.094 / +2.90 +2.22
rs_down_ratio_s20 − −0.073 / −2.45 −1.77
jump_ratio_m20 + +0.064 / +1.44 +0.42
vol_of_vol_s20 − −0.063 / −3.31 −0.90
  • rkurt_s20 峰度不稳定性:峰度时高时低,说明这只股票有时安静、有时被几分钟的剧烈波动主导,是典型的事件驱动、消息驱动的交易形态。这类股票更容易吸引短线投机资金,形成「彩票」式溢价,未来收益偏低。它也可以理解为信息不确定性:投资者对它的定价分歧大,按 Miller (1977) 的意见分歧理论,卖空受限下乐观者主导定价,价格偏高
  • rs_down_ratio_m20 下行方差占比(本表增量最强的单因子之一):波动主要来自下跌分钟的股票未来收益高,主要来自上涨分钟的未来收益低。与 Bollerslev 等人「好波动/坏波动」的发现一致:上行波动(正向跳跃、急拉)吸引追涨的彩票偏好资金,被高估;下行波动多是流动性冲击或恐慌抛售,提供流动性的一方要求补偿,价格事后回补。剔除 20 日反转后增量仍有 +2.22,说明它不只是「跌多了反弹」,抓的是波动的方向结构
  • rs_down_ratio_s20:涨跌结构本身的不稳定,含义同 rkurt_s20,属于情绪驱动的度量
  • jump_ratio_m20 跳跃占比:跳跃占比高的股票未来收益略高。但增量只剩 +0.42,原始 IC 主要被波动率解释:$1 - BV/RV$ 偏大往往出现在连续波动低、价格只偶尔「跳一下」的冷门股上,本质接近低波动异象。不建议单独使用
  • vol_of_vol_s20 波动离散度的不稳定:日内波动分布形态每天都在变,是事件冲击频繁的信号,方向与 rkurt_s20 相同;增量 −0.90,与波动率重叠较多

8.2 B 组:流动性与价格冲击(4 个)

因子 方向 IC / ICIR 增量 ICIR
amihud_m20 + +0.079 / +1.85 +1.12
elasticity_s20 + +0.031 / +1.15 +0.28
vwap_dev_m20 − −0.040 / −1.17 −0.71
vwap_dev_s20 − −0.086 / −1.79 −0.80
  • amihud_m20 分钟非流动性:经典的非流动性溢价(Amihud 2002)。每元成交推动价格越多,交易成本和冲击成本越高,投资者要求更高的预期收益作为补偿。注意它已对市值中性化,捕捉的是同等市值下的流动性差异,不是小市值效应的重复
  • elasticity_s20 量价弹性的不稳定:增量仅 +0.28,基本被换手率解释,不建议单独使用
  • vwap_dev_m20 收盘相对 VWAP 的平均偏离:长期收在均价之上,意味着尾盘经常有资金把价格推高。A 股尾盘拉升常见于短线资金做收盘价、或散户在尾盘追涨,价格偏离均衡,次日起倾向回落。所以收盘习惯性高于均价的股票未来收益低
  • vwap_dev_s20:尾盘相对均价的偏离忽大忽小,说明尾盘时常有剧烈的资金博弈,同样是投机信号

8.3 C 组:日内时序结构(5 个)

因子 方向 IC / ICIR 增量 ICIR
var_ratio_s20 − −0.059 / −2.26 −1.37
ret_ac1_m20 − −0.073 / −1.57 −0.96
ret_ac1_s20 − −0.049 / −2.38 −1.37
absret_ac1_m20 − −0.085 / −2.05 −1.35
absret_ac1_s20 − −0.061 / −3.03 −2.22
  • ret_ac1_m20 分钟收益自相关:流动性好、做市充分的股票,分钟收益呈轻微负自相关(买卖价差弹跳,Roll 1984)。自相关偏正说明价格在分钟级「惯性上涨/下跌」,订单流有持续性,常见于羊群式追涨杀跌。这种由交易行为而非信息驱动的价格延续,事后会回吐,所以自相关越高未来收益越低
  • var_ratio_s20、ret_ac1_s20:日内是反转还是延续的形态不稳定,说明主导交易的力量在变(有时是做市式的均值回复,有时是趋势资金),同属情绪不稳定的信号。方差比与自相关近似满足 $VR \approx 1+2\rho_1$,所以它们的 _m20 版本相关 0.93,筛选时只留了一个
  • absret_ac1_m20 波动聚集度:大波动之后紧跟大波动,说明信息或资金是成批涌入的。在 A 股这更多是短线资金接力和注意力集中造成的,而不是基本面信息逐步释放,价格在这种状态下容易被推过头
  • absret_ac1_s20 波动聚集度的不稳定(增量 −2.22,本表最强之一):有时成簇、有时平稳,说明这只股票会间歇性地进入「被炒作」状态。它与传统波动率因子的相关性低,提供了独立信息

8.4 D 组:成交量日内分布形状(4 个)

因子 方向 IC / ICIR 增量 ICIR
open30_vol_m20 − −0.067 / −2.13 −0.38
open30_vol_s20 − −0.059 / −3.27 −0.75
vol_gravity_s20 − −0.052 / −3.07 −1.18
vol_hhi_s20 − −0.031 / −1.28 −0.37

(D 组入选 4 个,vol_entropy_s20 因与 vol_hhi_s20 相关 0.91 被剪掉。)

  • open30_vol_m20 开盘量占比:成交集中在开盘半小时,说明交易主要由隔夜消息和集合竞价情绪驱动。散户偏好在开盘根据隔夜新闻下单(Barber-Odean 的注意力驱动买入),机构则更倾向在全天分散执行。开盘量占比高的股票散户参与度高,容易被高估。但增量只有 −0.38,与换手率高度重叠,不建议单独使用
  • open30_vol_s20、vol_gravity_s20 成交时间分布的不稳定:有的日子量集中在早盘、有的日子集中在尾盘,说明成交是被零散事件触发的,而不是被稳定的配置型资金按节奏执行。稳定的成交节奏通常对应机构持股和低关注度,未来收益更好
  • vol_hhi_s20 成交量集中度的不稳定:含义同上,增量 −0.37,不建议单独使用

8.5 E 组:路径形态(7 个)

因子 方向 IC / ICIR 增量 ICIR
ret_asym_m20 − −0.089 / −3.43 −2.12
ret_asym_s20 − −0.081 / −3.59 −1.27
path_eff_m20 − −0.054 / −1.44 −0.29
path_eff_s20 − −0.053 / −1.75 −0.15
max_dd_s20 − −0.074 / −1.65 −0.57
open30_ret_s20 − −0.083 / −1.87 −0.78
last30_ret_s20 − −0.086 / −2.25 −1.34
  • ret_asym_m20 量加权涨跌非对称(增量 −2.12):放量上涨的力度持续大于放量下跌,说明买方愿意付出更高的冲击成本去追价。这种激进买盘在 A 股多来自情绪化的散户和短线游资,推高的价格缺少基本面支撑,未来回落。和 20 日反转的区别在于:反转看的是涨了多少,它看的是怎么涨的,即上涨是否靠放量追价完成。增量 ICIR 证明这部分信息反转因子给不出
  • ret_asym_s20:买卖力量对比的不稳定,情绪化交易信号
  • path_eff_m20、path_eff_s20 路径效率:日内单边走势多的股票未来收益低。但增量接近 0:路径效率高基本等价于日收益绝对值大,被反转和波动率解释掉了,不建议单独使用
  • max_dd_s20 日内回撤深度的不稳定:有时日内闪崩、有时平稳,增量 −0.57,与波动率重叠较多
  • open30_ret_s20、last30_ret_s20 开盘/尾盘半小时收益的波动:开盘半小时是隔夜信息集中消化的时段,尾盘半小时是资金做收盘价和调仓的时段。这两个时段的收益波动大,说明股票经常被消息冲击或尾盘资金操纵,都属于高投机性特征。尾盘版本增量 −1.34,强于开盘版本

8.6 统一的经济学解释

25 个因子里 21 个是负向,且多数是 _s20。把它们放在一起看,micro_combo 值高的股票有这样的画像:

  • 日内波动分布厚尾且忽厚忽薄,波动成簇出现
  • 分钟价格有惯性,上涨时放量追价,收盘常被推到均价之上
  • 成交集中在开盘,成交时间分布每天都在变
  • 开盘、尾盘两个敏感时段的收益波动大

这是注意力驱动、散户与短线资金主导的交易形态。A 股成交中个人投资者占比高,这类资金偏好高波动、有故事的股票,愿意为「彩票」支付溢价,同时卖空约束让悲观观点很难进入价格,于是这类股票被系统性高估,在随后一个月回吐。反过来,日内行为平稳、成交节奏稳定、下行波动占比高(被错杀而非被炒作)、流动性略差(需要补偿)的股票,未来收益更好。

合成因子的全样本 rankIC −0.110 强于任何单因子(最强单因子 −0.094),说明五个方向的信息有互补。剔除 20 日反转、换手、波动之后仍有 −0.051 / −2.63,大约一半的预测力是传统日频价量因子给不出的,这部分才是分钟数据真正的价值。

9. IC 表现摘要

口径同第 6 节,数值直接由入库因子计算。

因子 训练 IC / ICIR(2016-19) 测试 IC / ICIR(2020-26.08) 全样本 IC / ICIR 增量 IC / ICIR
micro_combo −0.112 / −3.35 −0.111 / −2.50 −0.110 / −2.73 −0.051 / −2.63
micro_combo_pure −0.038 / −3.83 −0.028 / −2.41 −0.034 / −2.92 −0.034 / −2.95
  • micro_combo 的 IC 在训练段和测试段几乎一样(−0.112 对 −0.111),ICIR 从 −3.35 降到 −2.50,有衰减但没有塌掉;77% 的月份 IC 方向正确
  • micro_combo_pure 的 IC 只有原版的三分之一,说明原版有相当一部分来自风格与行业暴露。但纯净版 ICIR 反而更高,因为风格收益的波动也一起被剔掉了

10. 单因子回测(bigtrader)

设置:复用仓库 hfwarehouse/utils/strategy_backtest.py 的 do_access,即 AlphaMiner.single_factor_backtest() 背后的同一套策略,回测于 2026-10-14 运行。

项目 设置
区间 2015-03-02 ~ 2026-10-13,共 2824 个交易日
信号 -micro_combo(或 -micro_combo_pure),取负号是因为策略选分数最高的股票
信号再处理 每日截面 0.1% / 99.9% 分位去极值 → z-score → 对 32 个行业哑变量 + log 总市值回归取残差
股票池 剔除 ST、未复权价 ≤ 1.2 元、上市不足 365 天、北交所、科创板
选股与调仓 每 5 个交易日调仓,选分数最高的 200 只等权
成交 信号日次日开盘价成交(bigtrader 日频 next-bar fill)
费用 买 0.03%、卖 0.08%,单笔最低 5 元;未计滑点
资金 / 基准 2000 万 / 中证 1000(000852.SH)

整体绩效:

因子 年化收益 基准年化 年化超额 夏普 信息比率 最大回撤 超额最大回撤 月度超额胜率 年化单边换手 年化费用
micro_combo 15.74% −0.35% 16.14% 0.73 1.11 −45.5% −26.3% 63.6% 12.3 倍 1.39%
micro_combo_pure 9.41% −0.35% 9.80% 0.46 0.94 −62.6% −22.3% 62.9% 17.5 倍 1.98%

分年度(「超额」为相对中证 1000 的几何超额):

年份 micro_combo 收益 超额 最大回撤 micro_combo_pure 收益 超额 中证 1000
2015(3 月起) 80.11% 24.17% −45.5% 63.01% 12.38% 45.05%
2016 8.46% 35.58% −20.5% −11.88% 10.16% −20.01%
2017 −9.22% 9.84% −16.8% −14.22% 3.79% −17.35%
2018 −24.43% 19.70% −34.1% −30.24% 10.50% −36.87%
2019 36.46% 8.59% −18.9% 30.69% 4.00% 25.67%
2020 23.20% 3.19% −14.8% 30.88% 9.63% 19.39%
2021 37.28% 13.91% −10.4% 28.90% 6.95% 20.52%
2022 5.86% 34.99% −17.4% −7.10% 18.47% −21.58%
2023 15.01% 22.72% −10.4% 10.53% 17.93% −6.28%
2024 7.71% 6.43% −29.9% 10.47% 9.17% 1.20%
2025 33.79% 4.95% −12.0% 38.01% 8.26% 27.49%
2026(至 10-13) 1.42% 9.68% −17.8% −3.69% 4.16% −7.53%

分段:

因子 区间 年化超额 信息比率 超额最大回撤
micro_combo 2016-2019(IC 训练段) 17.82% 2.28 −5.7%
micro_combo 2020-2026(IC 测试段) 13.69% 0.80 −26.3%
micro_combo_pure 2016-2019 7.01% 1.57 −4.6%
micro_combo_pure 2020-2026 10.90% 0.86 −22.3%

怎么读:

  • 12 个年度里两个版本的超额全部为正。micro_combo 在 2016、2018、2022 这类熊市年份的超额最大(20%~36%),符合「回避投机股」的逻辑:下跌市里被炒作的股票跌得最狠
  • 超额回撤集中在投机性上涨行情里。micro_combo 最大超额回撤发生在 2025-07-22 ~ 2026-06-30(−26.3%),对应 2025-08(中证 1000 单月 +11.7%,组合超额 −6.9%)、2026-04(+10.0%,超额 −7.7%)、2026-06(超额 −15.1%)这几段小盘题材行情;随后 2026-07 中证 1000 单月 −19.7% 时组合 +9.0%,一个月收复。micro_combo_pure 的超额最大回撤在 2024-01-17 ~ 2024-02-07 的微盘股流动性危机,2024-11 才收复。这是因子的结构性特征:它系统性地低配高关注度、高投机性的股票,在资金追逐题材时会跑输
  • 测试段信息比率从 2.28 降到 0.80,超额收益本身没怎么降(17.8% → 13.7%),衰减主要来自超额波动变大。这和 IC 表里 ICIR 从 −3.35 到 −2.50 的方向一致
  • 绝对收益回撤大:组合是满仓多头,2015 年股灾的 −45.5% 主要是市场 beta,不是因子失效。要评价因子本身应看超额列
  • 纯净版收益更低、换手更高:剔除风格后 IC 只剩三分之一,多头组合超额从 16.1% 降到 9.8%;纯净残差的截面排序更不稳定,换手从 12.3 倍升到 17.5 倍。纯净版的价值在于和其他因子叠加时不重复下注,单独做多头不如原版

回测的局限:

  • 未计滑点与冲击成本。每 5 日换约四分之一的仓位,年化单边换手 12 倍,若每次单边多付 0.1% 冲击成本,年化收益约再降 1.2pp
  • 组合从全市场选股等权持有,市值分布与中证 1000 不同,超额里混有一部分规模与等权效应;回测脚本已在信号层面对 log 市值和行业做了中性化,但没有在组合层面约束市值与行业偏离
  • 回测脚本不提交平台:仓库的 AlphaMiner.single_factor_backtest() 会调用 bigalpha.factors.submit_factor_strategy_performance 把结果发布到平台,本次直接调用其内部的 do_access 跑同一套策略,只在本地出结果

11. 使用建议与注意事项

  • 优先用 micro_combo / micro_combo_pure,不要单独用增量归零的 6 个因子:path_eff_s20、path_eff_m20、elasticity_s20、vol_hhi_s20、open30_vol_m20、jump_ratio_m20。它们留在表里是为了合成和后续研究
  • 与传统因子叠加时用纯净版。原版和 20 日反转、换手、波动有约一半重叠,直接叠加会重复下注
  • 筛选偏差:25 个因子是按 IC 挑出来的,入选因子的 IC 天然偏乐观。「训练/测试同向」这条规则也用到了测试段的符号,测试段严格说不是完全干净的样本外,真正的样本外要从 2026-09 之后积累
  • 前向收益口径:全文 IC 都用次日开盘到 21 日后开盘。多数子因子是反转方向,换成收盘口径会被系统性放大但不可实现
  • 数据边界:分钟数据从 2015-01-05 起,micro_combo 需要 20 个有效日,实际约从 2015 年 2 月起有值;停牌日、一字板日、bar 不齐的日子不出值
  • 计算的可复现性:同一天在单日增量和历史回填里算出的值一致(差异 {seo}lt; 10^{-10}$),可以放心做日频增量

\

{link}