精细结构反转因子 (hf_prefactors_dw_ideal_reversal)

数据描述: 东吴证券研报《"订单簿的温度"系列研究(一):反转因子的精细结构》复现

文档
数据简介

# hf_prefactors_dw_ideal_reversal ## 文献来源 - **标题**: 《"订单簿的温度"系列研究(一):反转因子的精细结构》 - **作者**: 魏建榕、高子剑、傅开波 - **机构**: 东吴证券 - **时间**: 2018 研报用「W 式切割」把传统反转因子拆成强反转与弱动量两部分,再相减得到理想反转因子 M。切割依据是逐日的平均单笔成交金额 $D$:大单交易活跃的交易日反转性更强,不活跃的交易日反而呈弱动量,两者相减使反转信号得到加强。 本表输出切割后的两个分量 `ideal_reversal_high`(M_high)、`ideal_reversal_low`(M_low)与相减得到的 `ideal_reversal`(M)。研报以 $N=20$ 为基准,并在图 9 验证了 $N=40$ 与 $N=60$ 同样有效,因此对 $N \in \{20, 40, 60\}$ 各输出一组因子,字段以 `_20` / `_40` / `_60` 后缀区分。三组共用同一次日频表扫描。 ## 表结构 - **表名**: `hf_prefactors_dw_ideal_reversal` - **主键**: `date` + `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 **字段**: `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]实际通过累乘实现。 ```math \text{M\_high} = (1+R_1)(1+R_2)\cdots(1+R_{N/2}) - 1 ``` 其中 $R_i$ 为高 D 组第 $i$ 个交易日的涨跌幅。 **项目实现说明**: - 计算频率:研报原文为每月月底计算,本项目按项目规范改为每个交易日计算 - 累乘的实现:等价地先对 $\ln(1+R_i)$ 在窗口内求和,再取指数并减 1,以便直接使用 DAI 的窗口极值加权函数 `m_sum_greatest_k` 完成「按 $D$ 排序取前 $N/2$ 个交易日再聚合」 - 无效交易日的处理:$D$ 需要当日成交金额与成交笔数都存在且成交笔数大于 0。停牌日成交金额为 NULL,另有少量数据行成交笔数为 0 而成交金额非 0,这两类交易日的 $D$ 在数学上无定义,不参与窗口的排序与分组;回溯窗口因此取「过去 $N$ 个 $D$ 有定义的交易日」。剔除只作用于窗口样本,不作用于输出:这些交易日本身仍有输出行,因子值为 null,输出行数与 `cn_stock_prefactors` 当日行数一致,不对任何股票状态做筛选 - 排序中的空值陷阱:`m_sum_greatest_k` 把 `sort_by` 的 NULL 当作最小值处理,若保留 $D$ 无定义的行,这些行会被强制并入低 D 组;而改为把 $\ln(1+R)$ 置 NULL 又会使整个窗口返回 NULL。因此必须在进入窗口前剔除,无法靠置空规避 ### ideal_reversal_low **字段**: `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。 ```math \text{M\_low} = (1+R_1)(1+R_2)\cdots(1+R_{N/2}) - 1 ``` 其中 $R_i$ 为低 D 组第 $i$ 个交易日的涨跌幅。 **项目实现说明**: 同 `ideal_reversal_high`(计算频率、累乘实现、无效交易日处理) ### ideal_reversal **字段**: `ideal_reversal_20`、`ideal_reversal_40`、`ideal_reversal_60` **中文名**: 理想反转因子(M) **描述**: 研报提出的核心因子。由强反转的 M_high 减去弱动量的 M_low 得到,两个方向相反的分量相减使反转信号得到加强。研报实证显示该因子与传统反转因子相比稳定性明显改善,且与 Barra 风格因子相关性较低。 **构建逻辑**: 在同一截面日上,用高 D 组累计收益减去低 D 组累计收益。 ```math M = \text{M\_high} - \text{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 |

用例
表结构
字段 字段类型 字段描述
ideal_reversal_60 double 理想反转因子 M(N=60),等于 M_high 减 M_low,值越小反转预期越强。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
ideal_reversal_low_20 double 低单笔成交金额组动量因子 M_low(N=20),过去 20 个交易日中平均单笔成交金额较低的 10 个交易日的累计收益,弱动量。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
ideal_reversal_low_40 double 低单笔成交金额组动量因子 M_low(N=40),过去 40 个交易日中平均单笔成交金额较低的 20 个交易日的累计收益,弱动量。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
ideal_reversal_low_60 double 低单笔成交金额组动量因子 M_low(N=60),过去 60 个交易日中平均单笔成交金额较低的 30 个交易日的累计收益,弱动量。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
ideal_reversal_high_20 double 高单笔成交金额组反转因子 M_high(N=20),过去 20 个交易日中平均单笔成交金额较高的 10 个交易日的累计收益,强反转。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
date timestamp[ns] 交易日期
ideal_reversal_high_60 double 高单笔成交金额组反转因子 M_high(N=60),过去 60 个交易日中平均单笔成交金额较高的 30 个交易日的累计收益,强反转。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
instrument string 股票代码
ideal_reversal_high_40 double 高单笔成交金额组反转因子 M_high(N=40),过去 40 个交易日中平均单笔成交金额较高的 20 个交易日的累计收益,强反转。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
__PARTITION__ string -
ideal_reversal_20 double 理想反转因子 M(N=20),等于 M_high 减 M_low,值越小反转预期越强。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券
ideal_reversal_40 double 理想反转因子 M(N=40),等于 M_high 减 M_low,值越小反转预期越强。来源:魏建榕、高子剑、傅开波. 2018. “订单簿的温度”系列研究(一):反转因子的精细结构. 东吴证券

表名:hf_prefactors_dw_ideal_reversal

起始时间:

最近更新时间: