# hf_bar1m_c_fz_long_short_game ## 文献来源 - **标题**: 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建——多因子选股系列研究之十四》 - **作者**: 曹春晓 - **机构**: 方正证券 - **时间**: 2023-11-29 研报的逻辑是:股票日内的价格和成交量走势是多空双方投资者相互博弈的结果,一方力量较强时短期内更可能呈现动量效应,但双方的**分歧水平**同样重要——从行为金融学角度看,多空双方分歧程度较大时,无论短期内由谁占优,由于博弈程度激烈,股票都更可能出现过度反应。做法是先用日内分钟收益率的方向与大小(或日内相对位置)判断当前时刻由多方还是空方主导、以及主导方的相对力量,再用成交量(或振幅)衡量该时刻的分歧程度,把两者结合成「正序累加减倒序累加再累加」的日频指标;由于博弈过高或过低都不利于未来超额收益,对日频指标做**均值距离化**(截面标准化后取绝对值)后再在 20 日窗口上取均值与标准差,层层等权合成为「多空博弈」因子。**本表与研报原文有一处实质性口径修正:分钟成交量先除以当日总成交量换成占比再加权**(理由与实测对照见「复现核对」小节)。本表输出研报推进链条上的全部 15 个因子:3 条支线各自的日频中间量与「月均 / 月稳 / 合成」三件套、两级合成结果,以及最终的 `long_short_game` 与正交化后的 `long_short_game_pure`。 ## 表结构 - **表名**: `hf_bar1m_c_fz_long_short_game` - **主键**: `date` + `instrument` - **记录粒度**: 每个交易日每只股票一条记录 | 字段 | 类型 | 可空 | 含义 | | ---- | ---- | ---- | ---- | | `date` | `PlDatetime` | 否 | 交易日期 | | `instrument` | `PlString` | 否 | 股票代码 | | `vol_game_return_daily` | `PlFloat64` | 是 | 日成交量博弈-收益率,当日**分钟成交量占比**(分钟成交量÷当日总成交量)按过去 5 分钟收益率升序排列后的「正序累加减倒序累加」再累加之和,等价于按秩的对称线性加权和;无量纲,正负号表示成交量偏向低收益率还是高收益率时刻 | | `vol_game_return_mean` | `PlFloat64` | 是 | 月均成交量博弈-收益率,`vol_game_return_daily` 经均值距离化后过去 20 个交易日的均值;恒非负,值越小未来收益越高 | | `vol_game_return_std` | `PlFloat64` | 是 | 月稳成交量博弈-收益率,同一均值距离化序列过去 20 个交易日的样本标准差;恒非负,值越小未来收益越高 | | `vol_game_return` | `PlFloat64` | 是 | 成交量博弈-收益率,上两者各自截面去极值标准化后等权合成;值越小未来收益越高 | | `vol_game_position_daily` | `PlFloat64` | 是 | 日成交量博弈-日内相对位置,排序键换为「日内相对位置」后的同一构造,被加权量同为分钟成交量占比;无量纲 | | `vol_game_position_mean` | `PlFloat64` | 是 | 月均成交量博弈-日内相对位置,均值距离化后过去 20 个交易日的均值;恒非负,值越小未来收益越高 | | `vol_game_position_std` | `PlFloat64` | 是 | 月稳成交量博弈-日内相对位置,同一序列过去 20 个交易日的样本标准差;恒非负,值越小未来收益越高 | | `vol_game_position` | `PlFloat64` | 是 | 成交量博弈-日内相对位置,上两者各自截面去极值标准化后等权合成;值越小未来收益越高 | | `vol_game` | `PlFloat64` | 是 | 成交量博弈,`vol_game_return` 与 `vol_game_position` 各自截面标准化后等权合成;值越小未来收益越高 | | `amp_game_daily` | `PlFloat64` | 是 | 日振幅博弈,把成交量换成分钟振幅((最高价-最低价)/收盘价)、排序键仍为过去 5 分钟收益率的同一构造;量纲为振幅 | | `amp_game_mean` | `PlFloat64` | 是 | 月均振幅博弈,均值距离化后过去 20 个交易日的均值;恒非负,值越小未来收益越高 | | `amp_game_std` | `PlFloat64` | 是 | 月稳振幅博弈,同一序列过去 20 个交易日的样本标准差;恒非负,值越小未来收益越高 | | `amp_game` | `PlFloat64` | 是 | 振幅博弈,上两者各自截面去极值标准化后等权合成;值越小未来收益越高 | | `long_short_game` | `PlFloat64` | 是 | 多空博弈,`vol_game` 与 `amp_game` 各自截面标准化后等权合成,研报的最终合成因子;值越小未来收益越高 | | `long_short_game_pure` | `PlFloat64` | 是 | 纯净多空博弈,`long_short_game` 对申万一级行业哑变量与十个常见风格因子回归后的残差 | ## 依赖数据 | 依赖表 | 频率 | 用到的字段 | 用途 | | ---- | ---- | ---- | ---- | | `cn_stock_bar1m_c` | 1 分钟 | `date`、`instrument`、`close`、`high`、`low`、`volume` | 分钟收盘价算过去 5 分钟收益率与日内相对位置(两个排序键);最高最低价与收盘价算分钟振幅;分钟成交量与分钟振幅是两类被排序的权重 | | `cn_stock_prefactors` | 日频 | `date`、`instrument`、`sw2021_level1`、`total_market_cap`、`pb`、`roe_avg_ttm`、`total_operating_revenue_ttm`、`debt_to_asset_lf`、`turn`、`daily_return`、`beta_000300SH_22` | 构造 `long_short_game_pure` 回归用的申万一级行业哑变量与十个风格因子 | 三条支线的窗口因子都需要 20 个交易日的日频中间量,故 `cn_stock_bar1m_c` 实际读取区间比输出区间向前多 24 个交易日(多留 4 天缓冲以吸收停牌造成的缺日);`long_short_game_pure` 的风格因子含 250 个交易日同比项与 22 日贝塔,`cn_stock_prefactors` 的读取区间向前多 260 个交易日。`daily_return` 与 `beta_000300SH_22` 是随查询窗口滚动计算的字段,单日查询返回空值,必须带足回溯区间。 ## 因子列表 ### vol_game_return_daily - **中文名**: 日成交量博弈-收益率 - **描述**: 用日内分钟收益率的方向和大小判断当前时刻由多方还是空方占据主导、以及占主导一方的相对力量大小,再用成交量衡量该时刻占主导力量一方的相对力量大小,两者结合刻画日内多空双方力量的博弈激烈程度。 **构建逻辑**: 1. 对于每个股票,剔除开盘前 5 分钟以及收盘后 3 分钟数据,将每分钟成交量按照过去 5 分钟的收益率从小到大进行排序,获得排序后的 1 分钟成交量。 2. 将上述排序后的每分钟成交量累加求和,得到正序成交量之和;然后按照同样的方式,将每分钟成交量按照过去 5 分钟的收益率从大到小排序后再累加求和,得到倒序成交量之和。 3. 将上述正序成交量减去倒序成交量之后再累加求和,即可得到日频因子「日成交量博弈-收益率」因子。 研报对该构造的解释:首先,成交量可以较好地体现多空双方的交易积极程度,成交量越大,说明多方投资者的买入意愿和空方投资者的卖出意愿均越大,从而说明多空双方的分歧程度越大。其次,通过引入收益率大小排序信息对成交量进行加权,可以对日内不同时间的分歧程度进行区分,并对以成交量进行衡量的分歧程度进行调整——例如若成交量较小而收益率较大,则说明此时多方投资者的相对力量更大,该时刻的分歧程度对日内整体的博弈激烈程度的影响则会相应地上调。 **项目实现说明**: - 「剔除集合竞价」按本仓库既有口径处理:集合竞价 bar(沪深记在 09:25、北交所记在 09:30)不计入 240 个交易分钟。在此基础上剔除开盘前 5 分钟(09:31–09:35)与收盘前 3 分钟(14:58–15:00),当日参与计算的 bar 为 **232 根**(09:36–14:57)。研报原文写「收盘后 3 分钟」,收盘后无数据,按「收盘前 3 分钟」理解。 - 「过去 5 分钟的收益率」取第 $t$ 分钟收盘价/第 $t-5$ 分钟收盘价 - 1。因参与计算的首根 bar 是 09:36,其 $t-5$ 恰为 09:31,故不需要集合竞价 bar,240 根交易分钟内即可算全。 - **实现上用等价的闭式解而非显式累加**:设 $x_{(1)},\dots,x_{(n)}$ 为按排序键升序排列后的分钟成交量($n=232$),正序累加序列 $A_k=\sum_{i\le k}x_{(i)}$、倒序累加序列 $B_k=\sum_{i\le k}x_{(n+1-i)}$,则 ```math \sum_{k=1}^{n}\bigl(A_k-B_k\bigr)=\sum_{i=1}^{n}\,(n+1-2i)\,x_{(i)} ``` 即按秩的对称线性加权和。代码按右式实现(一次排序 + 一次内积),并在单元验证中与左式的显式累加逐股比对一致。 - 排序键并列时按时间靠前者优先(研报未规定并列的处理)。 - **被加权量取分钟成交量占当日总成交量的比例,而非研报字面的原始成交量**(本表唯一一处实质性口径修正)。原因是原始成交量带量纲(股数),加权和的量级与个股当日成交总量成正比,截面标准化后得到的 $|z|$ 主要反映「这只股票成交量大不大」而不是「博弈激不激烈」;而下游的均值距离化恰恰要求日频值在截面上可比。振幅支线不受此影响,因为振幅本身已是无量纲比率。实测三种口径(原始成交量 / 除以当日总成交量 / 除以当日成交量标准差)对研报数值的吻合度,只有「除以当日总成交量」能同时命中 Rank IC 与 Rank ICIR,详见「复现核对」小节的口径对比表。 - 当日 bar 数不足 240 根(停牌、半日交易)、分钟价格序列含非有限值、或当日总成交量为 0 的个股,当日全部输出置空,不以 0 代替。 ### vol_game_return_mean - **中文名**: 月均成交量博弈-收益率 - **描述**: 过去 20 日相对市场均值的平均博弈激烈程度。研报实测 Rank IC -7.52%、Rank ICIR -5.31、多空年化 28.74%、信息比 4.39、月度胜率 91.54%。 **构建逻辑**: 每月月底,首先对「日成交量博弈-收益率」因子进行均值距离化(截面标准化后减去均值并取绝对值),然后计算其过去 20 天的移动均值,记为「月均成交量博弈-收益率」因子。 研报对均值距离化的解释:多空博弈的激烈程度较高或者较低都不利于股票未来获得超额收益。若多空博弈的激烈程度较高,则说明市场目前对股票分歧较大,更有可能出现短期的过度反应,未来难以形成稳定的上涨行情;若多空博弈的激烈程度较低,则说明市场目前对股票的分歧较低,可能表示股票当前已经处于合理的价格区间,难以出现预期差。反之,若多空博弈的激烈程度适中,则说明市场目前对股票存在良性分歧,多空双方投资者都保持合适的交易积极性,股票未来更有可能出现超额收益。 **项目实现说明**: - 计算频率:研报原文为每月月底计算,本项目按项目规范改为每个交易日计算。 - 「截面标准化」的具体口径研报未披露,本项目取截面 1%/99% 分位截尾 + z-score(与同系列之九、之十、之十一的标准化口径一致),再减去截面均值(标准化后恒为 0)并取绝对值。不先截尾时单只个股的极端值会压缩全截面的 $|z|$,使均值距离化失去区分度。 - 20 日窗口内有效天数少于 15 天的个股当日置空(研报未规定窗口缺失的处理)。 ### vol_game_return_std - **中文名**: 月稳成交量博弈-收益率 - **描述**: 过去 20 日相对市场均值的博弈激烈程度的稳定性。研报实测 Rank IC -6.46%、Rank ICIR -5.51、多空年化 25.29%、信息比 4.32、月度胜率 94.62%。 **构建逻辑**: 每月月底,对均值距离化后的「日成交量博弈-收益率」序列计算其过去 20 天的移动标准差,记为「月稳成交量博弈-收益率」因子。 **项目实现说明**: 研报未写明标准差是总体口径还是样本口径,本项目取样本标准差(除以 $n-1$),与同系列之九、之十一同口径;计算频率与窗口缺失处理同 `vol_game_return_mean`。 ### vol_game_return - **中文名**: 成交量博弈-收益率 - **描述**: 月均与月稳两个分量等权合成。研报实测 Rank IC -7.39%、Rank ICIR -5.57、多空年化 28.30%、信息比 4.53、月度胜率 94.62%。 **构建逻辑**: 将「月均成交量博弈-收益率」与「月稳成交量博弈-收益率」等权合成。 **项目实现说明**: 研报只写「等权合成」,未披露合成前的标准化口径。两个分量方向一致(均为越小越好),故直接相加不会抵消信息。本项目先做截面 1%/99% 分位截尾再 z-score,然后算术平均。 ### vol_game_position_daily - **中文名**: 日成交量博弈-日内相对位置 - **描述**: 在判断当前时刻占据主导的投资者类型时,除了日内分钟频收益率,还可以使用日内相对位置。本因子把排序键换为日内相对位置,其余构造与「日成交量博弈-收益率」相同。 **构建逻辑**: 1. 对于每个股票,将 1 分钟成交量按照当前日内相对位置从小到大进行排序,获得排序后的 1 分钟成交量。其中「日内相对位置」的定义为当前「相对此前最低位的涨幅」和「相对此前最高位的跌幅」的平均值。 2. 将上述排序后的每分钟成交量累加求和,得到正序成交量之和;然后按照同样的方式,将每分钟成交量按照日内相对位置从大到小排序后再累加求和,得到倒序成交量之和。 3. 将上述正序成交量减去倒序成交量后再累加求和,即可得到日频因子「日成交量博弈-日内相对位置」因子。 **项目实现说明**: - 「相对此前最低位的涨幅」取第 $t$ 分钟收盘价相对当日截至第 $t$ 分钟的最低收盘价的涨幅,「相对此前最高位的跌幅」取第 $t$ 分钟收盘价相对当日截至第 $t$ 分钟的最高收盘价的跌幅(为负值或 0),日内相对位置为两者的算术平均。研报未写明用收盘价还是用分钟最高 / 最低价,本项目统一用分钟收盘价(与研报图表 4 的价格曲线一致)。 - 「此前」的累计极值从当日第一根交易 bar(09:31)起算,覆盖被剔除的开盘前 5 分钟,因为相对位置是价格路径的属性而非被排序样本的属性;参与排序的仍然只有 09:36–14:57 这 232 根 bar。 - 其余(剔除规则、闭式解、并列处理、停牌处理)同 `vol_game_return_daily`。 ### vol_game_position_mean - **中文名**: 月均成交量博弈-日内相对位置 - **描述**: 研报实测 Rank IC -7.71%、Rank ICIR -5.21、多空年化 30.84%、信息比 4.07、月度胜率 93.85%。 **构建逻辑**: 对「日成交量博弈-日内相对位置」因子进行均值距离化,再计算过去 20 天的移动均值。 **项目实现说明**: 同 `vol_game_return_mean`。 ### vol_game_position_std - **中文名**: 月稳成交量博弈-日内相对位置 - **描述**: 研报实测 Rank IC -6.98%、Rank ICIR -5.53、多空年化 27.62%、信息比 3.94、月度胜率 96.15%。 **构建逻辑**: 对均值距离化后的「日成交量博弈-日内相对位置」序列计算过去 20 天的移动标准差。 **项目实现说明**: 同 `vol_game_return_std`。 ### vol_game_position - **中文名**: 成交量博弈-日内相对位置 - **描述**: 研报实测 Rank IC -7.64%、Rank ICIR -5.45、多空年化 31.10%、信息比 4.12、月度胜率 96.15%。 **构建逻辑**: 将「月均成交量博弈-日内相对位置」与「月稳成交量博弈-日内相对位置」等权合成。 **项目实现说明**: 同 `vol_game_return`。 ### vol_game - **中文名**: 成交量博弈 - **描述**: 两条成交量支线的合成,研报 2.3 节的汇总因子。研报实测 Rank IC -7.98%、Rank ICIR -5.61、多空年化 30.76%、信息比 4.24、月度胜率 96.15%、最大回撤 -4.56%。 **构建逻辑**: 将「成交量博弈-收益率」因子和「成交量博弈-日内相对位置」因子等权合成。 **项目实现说明**: 两个分量各自截面 1%/99% 截尾 + z-score 后算术平均;两者方向一致,无符号处理问题。 ### amp_game_daily - **中文名**: 日振幅博弈 - **描述**: 与「成交量博弈」因子类似,在衡量多空双方投资者分歧程度时,将成交量指标替换为振幅指标,仍然使用日内分钟频收益率的方向和大小判断双方的主导地位和相对力量大小。 **构建逻辑**: 1. 对于每个股票,将 1 分钟振幅按照过去 5 分钟的收益率从小到大进行排序,获得排序后的 1 分钟振幅,其中振幅的定义为:振幅 =(最高价 - 最低价)/收盘价。 2. 将上述排序后的每分钟振幅累加求和,得到正序振幅之和;然后按照同样的方式,将每分钟振幅按照过去 5 分钟的收益率从大到小排序后再累加求和,得到倒序振幅之和。 3. 将上述正序振幅减去倒序振幅后再累加求和,即可得到日频因子「日振幅博弈」因子。 **项目实现说明**: - 分钟振幅取同一根 bar 的 `(high - low) / close`,与复权口径无关。 - 排序键与 `vol_game_return_daily` 完全相同(过去 5 分钟收益率),故两者共用同一次排序。其余实现同 `vol_game_return_daily`。 ### amp_game_mean - **中文名**: 月均振幅博弈 - **描述**: 过去 20 日相对市场均值的平均博弈激烈程度(振幅口径)。 **构建逻辑**: 对「日振幅博弈」因子进行均值距离化,再计算过去 20 天的移动均值。 **项目实现说明**: 同 `vol_game_return_mean`。研报图表 9 只披露了合成后「振幅博弈」的绩效,未单独披露月均 / 月稳两个分量,故这两项无研报数值可核对。 ### amp_game_std - **中文名**: 月稳振幅博弈 - **描述**: 过去 20 日相对市场均值的博弈激烈程度的稳定性(振幅口径)。 **构建逻辑**: 对均值距离化后的「日振幅博弈」序列计算过去 20 天的移动标准差。 **项目实现说明**: 同 `vol_game_return_std`。研报未单独披露该分量的绩效。 ### amp_game - **中文名**: 振幅博弈 - **描述**: 振幅口径下月均与月稳的等权合成,研报 3 节的汇总因子。研报实测 Rank IC -8.21%、Rank ICIR -4.83、多空年化 30.93%、信息比 3.90、月度胜率 91.54%、最大回撤 -4.64%。 **构建逻辑**: 将「月均振幅博弈」与「月稳振幅博弈」等权合成。 **项目实现说明**: 同 `vol_game_return`。 ### long_short_game - **中文名**: 多空博弈 - **描述**: 成交量博弈与振幅博弈等权合成,研报的最终因子。研报指出对比两个细分因子的表现,多空博弈因子在 Rank IC 和多空收益上均有显著提升,说明通过成交量和振幅两个不同角度,能够更加全面地来刻画多空投资者的博弈激烈程度。值越小未来收益越高。研报实测 Rank IC -9.73%、Rank ICIR -5.51、多空年化 40.12%、年化波动 8.89%、信息比 4.51、月度胜率 86.82%、最大回撤 -3.86%;十分组多头年化 24.85%、空头 -11.85%。 **构建逻辑**: 1. 分别计算「成交量博弈」因子与「振幅博弈」因子。 2. 两者等权合成。 **项目实现说明**: 两个分量各自截面 1%/99% 截尾 + z-score 后算术平均。两者方向一致(均为越小越好),不存在符号处理问题。 ### long_short_game_pure - **中文名**: 纯净多空博弈 - **描述**: 多空博弈对常用风格因子与行业因子正交化后的残差,用于验证因子的增量信息。研报指出多空博弈与流动性(26.00%)、波动率(37.89%)因子相关性较高,与其余风格因子相关性均较低,剥离风格后 Rank IC 仍有 -5.19%、Rank ICIR -3.52、多空年化 23.61%、信息比 3.12、月度胜率 82.95%。 **构建逻辑**: 1. 计算多空博弈因子。 2. 每个交易日在截面上,把多空博弈对行业哑变量与常用风格因子做多元线性回归。 3. 取回归残差作为纯净多空博弈。 **项目实现说明**: 研报未披露所用风格因子的具体清单与计算口径,本项目选用十个常见风格因子,均取自 `cn_stock_prefactors`,口径与同系列之九、之十、之十一完全一致:市值(总市值取对数)、非线性市值(标准化市值的三次方)、估值(市净率倒数)、盈利(`roe_avg_ttm`)、成长(营业总收入 TTM 相对 250 个交易日前的同比)、杠杆(`debt_to_asset_lf`)、流动性(20 日换手率均值取对数)、反转(20 日日收益均值)、波动(20 日日收益标准差)、贝塔(`beta_000300SH_22`)。行业用申万一级,以哑变量形式进入回归并去掉一列以免与截距共线。缺失暴露按当日同行业均值填补;回归前对因子与各风格暴露做 MAD 5 倍去极值与 z-score。某日有效样本数不足设计矩阵列数 2 倍时该日整体置空。 ## 复现核对 **核对口径**: 2015-01-01 ~ 2023-10-31;全市场不做任何股票过滤;前向收益取次日开盘到 21 个交易日后开盘(`cn_stock_prefactors.open`,后复权);Rank IC(因子与前向收益各自取截面百分位排名后求相关,口径同 `hfwarehouse.utils.ic.validate_factor_ic`);因子按研报口径先做市值 + 行业正交化(`ln(float_market_cap)` + 申万一级行业哑变量),`long_short_game_pure` 已在构建时正交化故不再重复处理。研报为月末截面、本项目逐日,故给出两列:「月末口径」= 每个自然月最后一个交易日截面,共 106 个截面;「逐日全样本」= 区间内全部交易日,共 2146 个截面。多空组合为月末调仓、十分组、组内等权、不扣费,全部因子方向为负(做多最低一组、做空最高一组),共 105 个持仓月。 **区间与股票池差异(对照前必读)**: - 研报测试区间为 2013 年 1 月至 2023 年 10 月底,本项目按需求自 2015-01-01 回填,**少了 2013、2014 两年**;研报月度胜率的分母可反推为 130 个持仓月(91.54% = 119/130、94.62% = 123/130、96.15% = 125/130 均整除),本项目为 105 个。上游 `cn_stock_bar1m_c` 自 2005 年起可用,这不是数据限制而是回填起点的选择。 - 研报测试时「在全市场非 ST 股票中进行测试,同时剔除上市不满半年的次新股」,本项目按仓库硬性规范**全市场不做任何过滤**(见 `builder.md`「数据清洗常用过滤条件」)。这一条是下表「多空年化偏低、年化波动偏高、信息比与月度胜率偏低」这个**系统性**偏差的主要来源:ST 与次新股留在十分组里会给组合带来额外的极端波动。 **ICIR 口径差异**: 研报的 Rank ICIR 是**年化**值,本项目的截面 ICIR(IC 均值 / IC 标准差)未年化,两者直接比会差 $\sqrt{12}$ 倍(同系列研报一致的口径)。下表「月末口径」列同时给出未年化值与年化值(× $\sqrt{12}$),**与研报可比的是括号里的年化值**。 | 因子 | 本项目(月末口径) | 本项目(逐日全样本) | 研报原文 | 出处 | | ---- | ---- | ---- | ---- | ---- | | `vol_game_return_mean` | IC **-0.0746**,ICIR -1.52(**-5.26**),多空年化 26.35%,波动 7.62%,信息比 3.14,月度胜率 85.71% | IC -0.0773,ICIR -1.50 | Rank IC **-7.52%**,Rank ICIR **-5.31**,多空年化 28.74%,波动 6.55%,信息比 4.39,月度胜率 91.54% | 研报图表 2 | | `vol_game_return_std` | IC -0.0606,ICIR -1.28(-4.42),多空年化 21.27%,波动 7.37%,信息比 2.67,月度胜率 79.05% | IC -0.0633,ICIR -1.30 | Rank IC -6.46%,Rank ICIR -5.51,多空年化 25.29%,波动 5.85%,信息比 4.32,月度胜率 94.62% | 研报图表 2 | | `vol_game_return` | IC **-0.0730**,ICIR -1.43(-4.96),多空年化 **27.28%**,波动 7.72%,信息比 3.19,月度胜率 85.71% | IC -0.0763,ICIR -1.45 | Rank IC **-7.39%**,Rank ICIR -5.57,多空年化 **28.30%**,波动 6.24%,信息比 4.53,月度胜率 94.62% | 研报图表 2 | | `vol_game_position_mean` | IC -0.0675,ICIR -1.32(-4.57),多空年化 21.83%,波动 8.40%,信息比 2.41,月度胜率 77.14% | IC -0.0703,ICIR -1.33 | Rank IC -7.71%,Rank ICIR -5.21,多空年化 30.84%,波动 7.58%,信息比 4.07,月度胜率 93.85% | 研报图表 5 | | `vol_game_position_std` | IC -0.0627,ICIR -1.32(-4.56),多空年化 21.93%,波动 8.18%,信息比 2.48,月度胜率 79.05% | IC -0.0667,ICIR -1.42 | Rank IC -6.98%,Rank ICIR -5.53,多空年化 27.62%,波动 7.01%,信息比 3.94,月度胜率 96.15% | 研报图表 5 | | `vol_game_position` | IC -0.0694,ICIR -1.34(-4.65),多空年化 23.62%,波动 8.82%,信息比 2.47,月度胜率 78.10% | IC -0.0734,ICIR -1.42 | Rank IC -7.64%,Rank ICIR -5.45,多空年化 31.10%,波动 7.55%,信息比 4.12,月度胜率 96.15% | 研报图表 5 | | `vol_game` | IC **-0.0770**,ICIR -1.42(-4.93),多空年化 25.32%,波动 8.32%,信息比 2.78,月度胜率 79.05% | IC -0.0810,ICIR -1.47 | Rank IC **-7.98%**,Rank ICIR -5.61,多空年化 30.76%,波动 7.26%,信息比 4.24,月度胜率 96.15% | 研报图表 7 | | `amp_game_mean` | IC -0.0762,ICIR -0.97(-3.37),多空年化 23.78%,波动 11.06%,信息比 2.00,月度胜率 71.43% | IC -0.0786,ICIR -1.03 | 研报未披露,无法核对(研报只给合成后的「振幅博弈」) | — | | `amp_game_std` | IC -0.0816,ICIR -1.08(-3.76),多空年化 27.17%,波动 10.58%,信息比 2.35,月度胜率 76.19% | IC -0.0849,ICIR -1.14 | 研报未披露,无法核对 | — | | `amp_game` | IC **-0.0819**,ICIR -1.03(-3.56),多空年化 **28.00%**,波动 11.21%,信息比 2.28,月度胜率 76.19% | IC -0.0851,ICIR -1.09 | Rank IC **-8.21%**,Rank ICIR -4.83,多空年化 **30.93%**,波动 7.92%,信息比 3.90,月度胜率 91.54% | 研报图表 9 | | `long_short_game` | IC -0.0903,ICIR -1.30(-4.52),多空年化 31.93%,波动 10.82%,信息比 2.64,月度胜率 82.86%,最大回撤 8.97% | IC -0.0947,ICIR -1.40 | Rank IC -9.73%,Rank ICIR -5.51,多空年化 40.12%,波动 8.89%,信息比 4.51,月度胜率 86.82%,最大回撤 -3.86% | 研报图表 11 | | `long_short_game_pure` | IC -0.0364,ICIR -0.87(-3.02),多空年化 12.04%,波动 5.62%,信息比 2.06,月度胜率 71.43% | IC -0.0353,ICIR -0.80 | Rank IC -5.19%,Rank ICIR -3.52,多空年化 23.61%,波动 7.56%,信息比 3.12,月度胜率 82.95% | 研报图表 17 | **整体结论**: 十个可核对因子的方向全部一致,Rank IC 偏差全部在 0.0155 以内、其中六个在 0.0096 以内;三项几乎重合:`vol_game_return_mean` 的 IC **-0.0746 对 -7.52%(差 0.0006)**、年化 ICIR **-5.26 对 -5.31(差 0.05)**;`vol_game_return` 的 IC -0.0730 对 -7.39%(差 0.0009);`amp_game` 的 IC **-0.0819 对 -8.21%(差 0.0002)**。 偏差呈明显的**系统性方向**,不是随机误差:本项目的多空年化全部偏低(1.0 ~ 11.6 个百分点)、年化波动全部偏高(1.1 ~ 3.3 个百分点)、信息比与月度胜率全部偏低。这与「研报剔除 ST 与上市不满半年的次新股、本项目全市场不过滤」直接对应——ST 与次新股留在十分组里会显著放大组合波动、拉低信息比和胜率,而 Rank IC 作为全截面秩相关受其影响小得多,这正是 IC 吻合而组合指标偏弱的原因。差距最大的是 `long_short_game_pure`(IC 差 0.0155、多空年化差 11.6pp),`_pure` 本身是残差因子,对股票池与风格因子口径最敏感。 **一处实质性口径修正(不是调参,是修 bug)**:研报字面写「将每分钟**成交量**按照过去 5 分钟的收益率排序」,直接按原始成交量实现时,成交量支线的表现系统性偏弱——年化 ICIR 只有 -2.2 ~ -2.9,研报是 -5.2 ~ -5.6,差 2 倍以上,而**用同一套排序与累加逻辑、只把被加权量换成振幅的那条支线却一次就对上了**(IC -0.0772 对 -8.21%)。这指向问题出在「成交量」本身带量纲:$\sum(n+1-2i)v_{(i)}$ 的量级与个股当日成交总量成正比,截面标准化后得到的 $|z|$ 主要反映成交量大小而非博弈激烈程度,而下游的均值距离化恰恰要求日频值在截面上可比。据此在 2015-01 ~ 2019-12 子区间上实测三种口径(60 个月末截面): | 被加权量口径 | 月均 IC / 年化 ICIR | 月稳 IC / 年化 ICIR | 合成 IC / 年化 ICIR | | ---- | ---- | ---- | ---- | | 原始成交量(研报字面) | -0.0629 / -2.29 | -0.0719 / -2.94 | -0.0697 / -2.74 | | **÷ 当日总成交量(本表采用)** | **-0.0762 / -5.29** | **-0.0650 / -4.42** | **-0.0764 / -4.95** | | ÷ 当日成交量标准差 | -0.0937 / -4.60 | -0.0732 / -4.53 | -0.0925 / -4.70 | | **研报原文** | **-7.52% / -5.31** | **-6.46% / -5.51** | **-7.39% / -5.57** | 只有「÷ 当日总成交量」能**同时**命中 IC 与 ICIR(月均 IC 差 0.001、ICIR 差 0.02);原始口径 ICIR 差 3.0,÷标准差口径 IC 偏强 0.019。振幅支线反向验证了这一判断:对振幅做同样的归一化会把 IC 从 -0.0772 拉低到 -0.0458(远离研报的 -8.21%),因为振幅已经是无量纲比率、本来就跨个股可比,不需要归一。因此本表只对成交量做归一、不对振幅做。 **不依赖区间、可直接验证实现的两组交叉核对**: 与同系列已建因子的截面相关性(研报图表 32,本项目取仓库 `output/` 下已复现的全部 10 个对照因子): | 对照因子 | 本项目 | 研报 | 对照因子 | 本项目 | 研报 | | ---- | ---- | ---- | ---- | ---- | ---- | | 云开雾散 | **+61.62%** | **+61.80%** | 草木皆兵 | **+54.21%** | **+55.09%** | | 球队硬币 | **+41.06%** | **+41.79%** | 水中行舟 | **+33.62%** | **+35.19%** | | 完整潮汐 | +45.82% | +49.26% | 勇攀高峰 | **-42.49%** | **-39.78%** | | 飞蛾扑火 | +60.33% | +57.24% | 花隐林间 | +57.94% | +54.38% | | 适度冒险 | +72.22% | +67.41% | 待著而救 | +37.34% | +31.87% | 与常见风格因子的截面相关性(研报图表 16,本项目用自己口径的十个风格暴露): | 风格 | 本项目 | 研报 | 风格 | 本项目 | 研报 | | ---- | ---- | ---- | ---- | ---- | ---- | | 盈利 | **-20.85%** | **-19.64%** | 流动性 | +39.01% | +26.00% | | 成长 | **-6.22%** | **-5.97%** | 波动率 | +54.75% | +37.89% | | 杠杆 | **-2.09%** | **-1.07%** | 反转 | +28.69% | +9.26% | | 估值 | -25.69% | -18.20% | 市值 | -19.86% | -9.71% | | 贝塔 | -8.58% | +1.24% | 非线性市值 | -19.85% | +2.10% | **同系列因子相关性这一组是本次复现最有力的证据**:10 个对照因子的符号全部一致,最大偏差 5.5 个百分点,平均偏差 2.7 个百分点,其中云开雾散只差 0.2pp、草木皆兵 0.9pp、球队硬币 0.7pp,**连唯一方向为负的勇攀高峰(-42.49% 对 -39.78%)也对上了**。这一组同时交叉验证了本表与此前 10 张已入库的同系列因子表。 风格相关性这一组吻合度较低:盈利、成长、杠杆三项偏差在 1.2pp 以内,但流动性、波动率、反转、市值四项本项目的绝对值系统性偏大(反转差 3 倍最明显),贝塔符号相反(两者绝对值都很小)。原因与同系列之十一相同——研报未披露其风格因子的窗口与构造口径,本项目的流动性取 20 日换手率均值、波动率取 20 日日收益标准差、反转取 20 日日收益均值、贝塔取 22 日贝塔,窗口都偏短,与多空博弈这个高频因子的相关性自然更高;叠加本项目不剔除 ST 与次新股,与小市值、高波动、高流动性的相关性会进一步放大。非线性市值 -19.85% 对研报 +2.10% 是已知的仓库口径问题:本项目的 `nlsize` 定义为「标准化市值的三次方」,是市值的单调变换,秩相关必然与市值一项几乎相同(-19.85% 对 -19.86%),而研报接近 0 说明其用的是 Barra 标准口径(市值三次方再对市值回归取残差)。该口径与同系列之九、之十、之十一完全一致,属仓库既有约定,未因本次复现单独改动;它只影响与图表 16 的可比性,不影响 `long_short_game_pure` 本身(线性回归中 $z$ 与 $z^3$ 不共线,三次项仍提供曲率信息)。 **已知的口径差异**: - **样本区间与股票池**:见上文「区间与股票池差异」。 - **被加权量的归一化**:见上文「一处实质性口径修正」。这是本表与研报字面描述唯一的实质性差异,已在 `vol_game_return_daily` 的「项目实现说明」中写明。 - **「收盘后 3 分钟」**:研报原文如此,收盘后无数据,按「收盘前 3 分钟」理解,当日参与计算的 bar 为 232 根(09:36–14:57)。 - **闭式解替代显式累加**:代码按 $\sum_i (n+1-2i)x_{(i)}$ 实现,已与研报原文的「正序累加减倒序累加再累加」逐股比对一致(2026-09-30 当日抽 309 只股票 × 3 条支线,0 处不一致)。 - **「日内相对位置」的价格口径研报未写明**:本项目统一用分钟收盘价、累计极值自 09:31 起算。 - **「截面标准化」的口径研报未披露**:本项目一律先截面 1%/99% 分位截尾再 z-score(均值距离化与三级合成都用这一口径)。 - **标准差口径未披露**:月稳系列取样本标准差(除以 $n-1$)。 - **排序键并列的处理研报未规定**:按时间靠前者优先(稳定排序)。 - **多空组合口径未披露**:研报说明了十分组与等权,未说明是否扣费、调仓日取在月末哪一天,本项目取月末最后一个交易日信号、次日开盘成交、不扣费。 - **十分组绝对收益不可直接比**:研报图表 13 给出 `long_short_game` 多头年化 24.85%、空头 -11.85%,本项目为 14.49% / -15.17%。研报的分组建立在**未做市值行业正交化**的原始因子上、股票池剔除 ST 与次新股、且含 2013、2014 两个强势年份;本项目为与 IC 口径一致在正交化后的因子上分组。结论性指标(IC、ICIR、多空)吻合,分组绝对收益不可直接比。 覆盖度:2015-01-05 ~ 2026-09-30 共 2855 个交易日、1167 万行,无 NaN 与 ±Inf。六个均值距离化派生的窗口因子全表非负(逐年最小值 0.06 ~ 0.14)。`long_short_game` 逐年有效值占比 94.3%(2015)~ 99.8%(2024),2015 年偏低来自当年大面积停复牌使 20 日窗口内有效天数不足 15 天;逐年入库时随机抽日的入库前测试全部通过。 **样本外表现(2023-11-01 ~ 2026-09-30,逐日 688 个截面 / 月末 34 个截面、33 个持仓月)**:十二个因子方向全部保持,无符号反转。 | 因子 | 样本内逐日 IC | 样本外逐日 IC | 样本内 ICIR | 样本外 ICIR | 样本外多空年化 | 样本外信息比 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | `vol_game_return` | -0.0763 | -0.0650 | -1.45 | -0.80 | 5.07% | 0.36 | | `vol_game_position` | -0.0734 | -0.0596 | -1.42 | -0.83 | 4.97% | 0.36 | | `vol_game` | -0.0810 | -0.0679 | -1.47 | -0.84 | 7.18% | 0.45 | | `amp_game` | -0.0851 | -0.0829 | -1.09 | -0.79 | 10.33% | 0.55 | | `long_short_game` | -0.0947 | -0.0826 | -1.40 | -0.82 | 8.76% | 0.49 | | `long_short_game_pure` | -0.0353 | -0.0249 | -0.80 | -0.41 | -1.02% | -0.03 | 核心因子 `long_short_game` 的 IC 只衰减 13%(-0.0947 → -0.0826),是本系列复现中衰减最轻的之一,但 ICIR 从 -1.40 掉到 -0.82、多空年化从 31.93% 掉到 8.76%、信息比从 2.64 掉到 0.49——样本外多空波动从 10.82% 升到 21.95%,翻了一倍,这是组合指标崩掉的主因,而不是选股能力下降。衰减最轻的支线是 `amp_game`(IC 仅衰减 3%,样本外多空年化 10.33% 为全表最高),`vol_game` 族衰减相对明显(IC 衰减 16%、多空年化只剩 5~7%)。`long_short_game_pure` 样本外多空年化为 **-1.02%**、信息比 -0.03,剥离风格后的增量信息已经完全消失,这与同系列之四、之五、之六、之八、之九、之十、之十一的 `_pure` 版本是同一模式,使用前必须复核当期表现。样本外区间末端约 21 个交易日因前向收益窗口不完整而无 IC,已从序列中剔除。 ## 示例数据 按 `date`、`instrument` 排序后的前 5 行与后 5 行,由 `update_docs()` 推送文档时自动填充。 | date | instrument | vol_game_return_daily | vol_game_return_mean | vol_game_return_std | vol_game_return | vol_game_position_daily | vol_game_position_mean | vol_game_position_std | vol_game_position | vol_game | amp_game_daily | amp_game_mean | amp_game_std | amp_game | long_short_game | long_short_game_pure | |---------------------|------------|-----------------------|----------------------|---------------------|-----------------|-------------------------|------------------------|-----------------------|-------------------|-----------|----------------|---------------|--------------|-----------|-----------------|----------------------| | 2026-09-30 00:00:00 | 000001.SZ | -46.344664 | 0.719408 | 0.529918 | -0.332829 | -61.120760 | 0.576283 | 0.379902 | -1.264590 | -0.856893 | -1.609112 | 0.458093 | 0.248616 | -1.026487 | -1.000497 | 0.057396 | | 2026-09-30 00:00:00 | 000002.SZ | -26.109546 | 1.151223 | 0.731045 | 1.583976 | 61.318405 | 1.021939 | 0.726667 | 1.116073 | 1.458258 | -35.315948 | 1.267130 | 1.010140 | 1.723386 | 1.692120 | 1.335696 | | 2026-09-30 00:00:00 | 000006.SZ | -13.086976 | 0.999795 | 0.639157 | 0.824123 | 20.521144 | 0.979586 | 0.747127 | 1.074437 | 1.023733 | -21.605286 | 0.915938 | 1.007432 | 1.099796 | 1.130966 | 1.239518 | | 2026-09-30 00:00:00 | 000007.SZ | -9.429153 | 0.828717 | 0.509910 | -0.138744 | -34.621725 | 0.627205 | 0.686724 | -0.069067 | -0.111179 | -0.787503 | 0.809402 | 0.568929 | 0.149572 | 0.017488 | -0.359655 | | 2026-09-30 00:00:00 | 000008.SZ | -12.633293 | 0.591475 | 0.545103 | -0.593777 | 13.983821 | 0.758192 | 0.492095 | -0.394288 | -0.532250 | -3.212271 | 0.541972 | 0.467133 | -0.498707 | -0.549127 | 0.027172 | | 2026-09-30 00:00:00 | 920978.BJ | -37.689041 | 0.956654 | 0.521208 | 0.230926 | -69.806767 | 0.813144 | 0.624114 | 0.207770 | 0.237664 | -3.666941 | 0.517923 | 0.491625 | -0.498501 | -0.128235 | -0.196147 | | 2026-09-30 00:00:00 | 920981.BJ | 53.361634 | 0.989431 | 0.552571 | 0.442499 | -14.623202 | 0.701818 | 0.606600 | -0.148073 | 0.161823 | 8.867896 | 0.708635 | 0.567479 | -0.030525 | 0.073215 | 0.361856 | | 2026-09-30 00:00:00 | 920982.BJ | -83.653739 | 1.106252 | 0.795337 | 1.734252 | -15.010235 | 0.755927 | 0.683029 | 0.259615 | 1.080991 | -29.690671 | 0.865589 | 0.853787 | 0.743908 | 0.977538 | 0.405110 | | 2026-09-30 00:00:00 | 920985.BJ | -57.732426 | 1.060328 | 0.600312 | 0.817629 | -53.714128 | 1.039507 | 0.594115 | 0.704542 | 0.822064 | -6.798651 | 0.603091 | 0.459344 | -0.404546 | 0.239927 | 0.447263 | | 2026-09-30 00:00:00 | 920992.BJ | -4.359262 | 1.083105 | 0.715643 | 1.348618 | -22.604684 | 0.856017 | 0.651821 | 0.417256 | 0.956231 | -7.235849 | 0.882099 | 0.990474 | 1.010679 | 1.047817 | 0.597602 |
方正因子多空博弈 (hf_bar1m_c_fz_long_short_game)
数据描述:
文档
用例
表结构
| 字段 | 字段类型 | 字段描述 |
| vol_game_position_std | double | 月稳成交量博弈-日内相对位置,同一均值距离化序列过去 20 个交易日的样本标准差,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| __PARTITION__ | string | - |
| vol_game_position_mean | double | 月均成交量博弈-日内相对位置,均值距离化后过去 20 个交易日的均值,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game_position_daily | double | 日成交量博弈-日内相对位置,排序键换为日内相对位置(相对此前最低位涨幅与相对此前最高位跌幅的均值)后的同一构造;量纲为成交量。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| instrument | string | 股票代码 |
| vol_game_return_daily | double | 日成交量博弈-收益率,当日分钟成交量按过去 5 分钟收益率升序排列后的「正序累加减倒序累加」再累加之和,等价于按秩的对称线性加权和;量纲为成交量。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| date | timestamp[ns] | 交易日期 |
| amp_game | double | 振幅博弈,月均振幅博弈与月稳振幅博弈各自截面去极值标准化后等权合成,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game | double | 成交量博弈,成交量博弈-收益率与成交量博弈-日内相对位置各自截面标准化后等权合成,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| amp_game_std | double | 月稳振幅博弈,同一均值距离化序列过去 20 个交易日的样本标准差,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| amp_game_mean | double | 月均振幅博弈,均值距离化后过去 20 个交易日的均值,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| amp_game_daily | double | 日振幅博弈,把成交量换成分钟振幅((最高价-最低价)/收盘价)、排序键仍为过去 5 分钟收益率的同一构造;量纲为振幅。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| long_short_game | double | 多空博弈,成交量博弈与振幅博弈各自截面标准化后等权合成,研报的最终合成因子,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game_return | double | 成交量博弈-收益率,月均与月稳各自截面去极值标准化后等权合成,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game_position | double | 成交量博弈-日内相对位置,月均与月稳各自截面去极值标准化后等权合成,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game_return_std | double | 月稳成交量博弈-收益率,同一均值距离化序列过去 20 个交易日的样本标准差,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| long_short_game_pure | double | 纯净多空博弈,多空博弈对申万一级行业哑变量与十个常见风格因子回归后的残差。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
| vol_game_return_mean | double | 月均成交量博弈-收益率,日成交量博弈-收益率经均值距离化后过去 20 个交易日的均值,恒非负,值越小未来收益越高。来源:曹春晓. 2023-11-29. 《股票日内多空博弈激烈程度度量与“多空博弈”因子构建》. 方正证券 |
表名:hf_bar1m_c_fz_long_short_game
起始时间:
最近更新时间: