AI 原生量化投研平台AI-native quantitative research platform
正在加载…Loading…
页面仍在加载,可以继续等待,或重新加载。The page is still loading. You can keep waiting or reload.
部分页面资源未能加载,请重新加载。Some page resources could not load. Please reload.
设备当前处于离线状态,恢复连接后可以继续等待或重新加载。Your device is offline. Once connected, you can keep waiting or reload.
东吴证券研报《"订单簿的温度"系列研究(一):反转因子的精细结构》复现
11 个字段
研报用「W 式切割」把传统反转因子拆成强反转与弱动量两部分,再相减得到理想反转因子 M。切割依据是逐日的平均单笔成交金额 D:大单交易活跃的交易日反转性更强,不活跃的交易日反而呈弱动量,两者相减使反转信号得到加强。
本表输出切割后的两个分量 ideal_reversal_high(M_high)、ideal_reversal_low(M_low)与相减得到的 ideal_reversal(M)。研报以 N=20 为基准,并在图 9 验证了 N=40 与 N=60 同样有效,因此对 N∈{20,40,60} 各输出一组因子,字段以 _20 / _40 / _60 后缀区分。三组共用同一次日频表扫描。
hf_prefactors_dw_ideal_reversaldate + instrument| 字段 | 类型 | 可空 | 含义 |
|---|---|---|---|
date | PlDatetime | 否 | 交易日期 |
instrument | PlString | 否 | 股票代码 |
ideal_reversal_high_20 | PlFloat64 | 是 | 高单笔成交金额组反转因子 M_high(N=20),过去 20 个交易日中平均单笔成交金额较高的 10 个交易日的累计收益,强反转 |
ideal_reversal_low_20 | PlFloat64 | 是 | 低单笔成交金额组动量因子 M_low(N=20),过去 20 个交易日中平均单笔成交金额较低的 10 个交易日的累计收益,弱动量 |
ideal_reversal_20 | PlFloat64 | 是 | 理想反转因子 M(N=20),等于 M_high 减 M_low,值越小反转预期越强 |
ideal_reversal_high_40 | PlFloat64 | 是 | 高单笔成交金额组反转因子 M_high(N=40),过去 40 个交易日中平均单笔成交金额较高的 20 个交易日的累计收益,强反转 |
ideal_reversal_low_40 | PlFloat64 | 是 | 低单笔成交金额组动量因子 M_low(N=40),过去 40 个交易日中平均单笔成交金额较低的 20 个交易日的累计收益,弱动量 |
ideal_reversal_40 | PlFloat64 | 是 | 理想反转因子 M(N=40),等于 M_high 减 M_low,值越小反转预期越强 |
ideal_reversal_high_60 | PlFloat64 | 是 | 高单笔成交金额组反转因子 M_high(N=60),过去 60 个交易日中平均单笔成交金额较高的 30 个交易日的累计收益,强反转 |
ideal_reversal_low_60 | PlFloat64 | 是 | 低单笔成交金额组动量因子 M_low(N=60),过去 60 个交易日中平均单笔成交金额较低的 30 个交易日的累计收益,弱动量 |
ideal_reversal_60 | PlFloat64 | 是 | 理想反转因子 M(N=60),等于 M_high 减 M_low,值越小反转预期越强 |
| 依赖表 | 频率 | 用到的字段 | 用途 |
|---|---|---|---|
cn_stock_prefactors | 日频 | date、instrument、amount、deal_number、change_ratio | date + instrument 作为输出骨架与窗口分组键;amount / deal_number 相除得到平均单笔成交金额 D(W 式切割的排序依据,同时用于剔除 D 无定义的交易日);change_ratio 取 ln(1+R) 后在切割出的交易日子集上求和,还原为高 / 低 D 组的累计收益 |
本表只依赖 cn_stock_prefactors 这一张聚合日频 view,不直接读取任何分钟或逐笔表。最长窗口 N=60 按「D 有定义的交易日」计数,为覆盖停牌实际回溯 120 个自然交易日,故单日增量的读取区间约为输出区间的 120 倍。
字段: ideal_reversal_high_20、ideal_reversal_high_40、ideal_reversal_high_60
中文名: 高单笔成交金额组反转因子(M_high)
描述: 传统反转因子经「W 式切割」后保留的强反转部分。研报认为大单交易活跃(单笔成交金额高)的交易日,其涨跌幅具有更强的反转特性,因此把回溯窗口内单笔成交金额较高的那一半交易日单独取出累计收益,得到的因子反转性显著强于未切割的原始收益率因子。
构建逻辑: 先逐日计算平均单笔成交金额 D(当日成交金额 / 当日成交笔数)。在每个截面日回溯过去 N 个交易日(N 取偶数),将这 N 个交易日按 D 值从大到小排序,取前 N/2 个交易日为高 D 组。将高 D 组交易日的涨跌幅加总,得到 M_high;此处的「加总」按研报附注[1]实际通过累乘实现。
M_high=(1+R1)(1+R2)⋯(1+RN/2)−1其中 Ri 为高 D 组第 i 个交易日的涨跌幅。
项目实现说明:
m_sum_greatest_k 完成「按 D 排序取前 N/2 个交易日再聚合」cn_stock_prefactors 当日行数一致,不对任何股票状态做筛选m_sum_greatest_k 把 sort_by 的 NULL 当作最小值处理,若保留 D 无定义的行,这些行会被强制并入低 D 组;而改为把 ln(1+R) 置 NULL 又会使整个窗口返回 NULL。因此必须在进入窗口前剔除,无法靠置空规避字段: ideal_reversal_low_20、ideal_reversal_low_40、ideal_reversal_low_60
中文名: 低单笔成交金额组动量因子(M_low)
描述: 「W 式切割」后被剔除的弱动量部分。与高 D 组相对,大单交易不活跃(单笔成交金额低)的交易日,其涨跌幅反转特性更弱,研报实证显示这部分反而呈现弱动量效应。该因子既是理想反转因子的组成部分,也用于说明切割方案的有效性来源。
构建逻辑: 承 M_high 的第一步,在每个截面日回溯过去 N 个交易日并按 D 值从大到小排序后,取后 N/2 个交易日为低 D 组。将低 D 组交易日的涨跌幅按同样的累乘方式加总,得到 M_low。
M_low=(1+R1)(1+R2)⋯(1+RN/2)−1其中 Ri 为低 D 组第 i 个交易日的涨跌幅。
项目实现说明: 同 ideal_reversal_high(计算频率、累乘实现、无效交易日处理)
字段: ideal_reversal_20、ideal_reversal_40、ideal_reversal_60
中文名: 理想反转因子(M)
描述: 研报提出的核心因子。由强反转的 M_high 减去弱动量的 M_low 得到,两个方向相反的分量相减使反转信号得到加强。研报实证显示该因子与传统反转因子相比稳定性明显改善,且与 Barra 风格因子相关性较低。
构建逻辑: 在同一截面日上,用高 D 组累计收益减去低 D 组累计收益。
M=M_high−M_low项目实现说明:
ideal_reversal_high(计算频率、累乘实现、无效交易日处理)m_sum_gl_k_delta 一步得到)N=20,全市场不做任何股票过滤,前向收益用次日开盘到 21 个交易日后开盘,rankIC 按截面计算。
研报样本期上的复现结果与研报图 4 一致(研报为月末截面、月度 IC,故此处同时给出月末子样本):
| 因子 | 本项目(2010-2018 月末) | 研报图 4 rankIC | 本项目(2010-2018 逐日) |
|---|---|---|---|
| M_high | -0.0822 | -0.082 | -0.0871 |
| M_low | +0.0171 | +0.018 | +0.0243 |
| M | -0.0699 | -0.070 | -0.0753 |
| Ret20(对照) | -0.0622 | -0.061 | -0.0642 |
四个因子的 rankIC 与研报误差均在 0.002 以内,切割逻辑与累乘口径可认为复现无误。
N 的敏感性对照研报图 9(图 9 给出的是 Pearson IC;N 只改变回溯窗口,预测期一律为月度):
| 因子 | 本项目 IC | 研报图 9 IC |
|---|---|---|
| M_high(N=20) | -0.0628 | -0.069 |
| M_high(N=40) | -0.0590 | -0.063 |
| M_high(N=60) | -0.0639 | -0.064 |
| M_low(N=20) | +0.0071 | +0.011 |
| M_low(N=40) | +0.0098 | +0.016 |
| M_low(N=60) | +0.0123 | +0.018 |
三个 N 下 M_high 的反转性与 M_low 的动量性均成立,M_low 随 N 增大而更正的单调性也与研报一致。本项目的 Pearson IC 系统性略弱于研报约 0.005,而 N=20 的 rankIC 与研报精确一致,差异应来自研报对因子或收益做了未披露的去极值处理(秩层面不受影响)。
近年样本(2023-11 ~ 2024-12,逐日)出现结构性变化,需在使用前注意:
| 因子 | rankIC | 年化 ICIR |
|---|---|---|
| M_high | -0.0583 | -1.92 |
| M_low | -0.0249 | -0.63 |
| M | -0.0306 | -1.12 |
| Ret20(对照) | -0.0804 | -1.71 |
M_low 由研报样本期的 +0.017 转为 -0.025,弱动量特性消失。由于 M = M_high - M_low 依赖两个分量方向相反,M_low 转负会直接抵消信号,导致该样本上 M(-0.0306)明显弱于单独使用 M_high(-0.0583),且两者均弱于未切割的 Ret20(-0.0804)。本表按研报原定义完整输出三个分量,未对该现象做任何调整,下游选用时建议自行复核当期 M_low 的符号。
按 date、instrument 排序后的前 5 行与后 5 行,由 update_docs() 推送文档时自动填充。
| date | instrument | ideal_reversal_high_20 | ideal_reversal_low_20 | ideal_reversal_20 | ideal_reversal_high_40 | ideal_reversal_low_40 | ideal_reversal_40 | ideal_reversal_high_60 | ideal_reversal_low_60 | ideal_reversal_60 |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-06-10 00:00:00 | 000001.SZ | 0.034294 | -0.017534 | 0.051828 | 0.037824 | -0.016462 | 0.054287 | 0.067055 | -0.030289 | 0.097344 |
| 2026-06-10 00:00:00 | 000002.SZ | -0.061533 | -0.158762 | 0.097229 | 0.048877 | -0.227966 | 0.276842 | -0.098700 | -0.248397 | 0.149698 |
| 2026-06-10 00:00:00 | 000004.SZ | null | null | null | null | null | null | null | null | null |
| 2026-06-10 00:00:00 | 000006.SZ | -0.124817 | -0.119369 | -0.005448 | 0.049716 | -0.121992 | 0.171708 | -0.012839 | -0.108465 | 0.095626 |
| 2026-06-10 00:00:00 | 000007.SZ | 0.134177 | -0.097435 | 0.231612 | 0.143195 | -0.115028 | 0.258223 | 0.153950 | -0.142089 | 0.296039 |
| 2026-06-10 00:00:00 | 920978.BJ | null | null | null | null | null | null | null | null | null |
| 2026-06-10 00:00:00 | 920981.BJ | null | null | null | null | null | null | null | null | null |
| 2026-06-10 00:00:00 | 920982.BJ | null | null | null | null | null | null | null | null | null |
| 2026-06-10 00:00:00 | 920985.BJ | null | null | null | null | null | null | null | null | null |
| 2026-06-10 00:00:00 | 920992.BJ | null | null | null | null | null | null | null | null | null |
SELECT date, instrument, ideal_reversal_high_20, ideal_reversal_low_20, ideal_reversal_20, ideal_reversal_high_40, ideal_reversal_low_40 FROM hf_prefactors_dw_ideal_reversal WHERE date >= '2026-10-06' ORDER BY date LIMIT 100
SELECT date, instrument, ideal_reversal_high_20, ideal_reversal_low_20, ideal_reversal_20, ideal_reversal_high_40, ideal_reversal_low_40 FROM hf_prefactors_dw_ideal_reversal WHERE date >= '2026-10-06' ORDER BY date LIMIT 100