# hf_bar1m_c_fz_boat_in_water ## 文献来源 - **标题**: 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》 - **作者**: 曹春晓、陈宗伟 - **机构**: 方正证券 - **时间**: 2023-02-15 研报提出一个问题:个股成交额跟随市场趋势,是否预示未来收益较高?答案取决于情形,研报分两种情形讨论并得出方向相反的两个结论。其一,当个股股价处于**相对高位**时,成交额与其他股票的关联性越高越好——此时成交额更多由市场趋势带动而非个股独立交易,说明投资者对该股价格看法仍较一致、尚未出现大分歧,上涨趋势可能未结束;据此构造「随波逐流」因子。其二,当**市场分化不明显**时,成交额与其他股票的关联性越低越好——市场缺乏热点时,那些成交额走出独立趋势的股票更可能在酝酿新热点;据此构造「孤雁出群」因子。两个因子逻辑相反、相关性接近 0,等权合成得到「水中行舟」因子。本表输出研报推进链条上的全部 9 个因子:2 个日频中间量、「随波逐流」、「孤雁出群」族 4 个,以及最终的 `boat_in_water` 与正交化后的 `boat_in_water_pure`。 ## 表结构 - **表名**: `hf_bar1m_c_fz_boat_in_water` - **主键**: `date` + `instrument` - **记录粒度**: 每个交易日每只股票一条记录 | 字段 | 类型 | 可空 | 含义 | | ---- | ---- | ---- | ---- | | `date` | `PlDatetime` | 否 | 交易日期 | | `instrument` | `PlString` | 否 | 股票代码 | | `reasonable_return` | `PlFloat64` | 是 | 合理收益率,当日及过去 19 个交易日日内收益率(收盘价/开盘价 - 1)的均值,用作划分日内价格高低位的阈值 | | `high_low_amount_diff` | `PlFloat64` | 是 | 高低额差,相对开盘收益率高于合理收益率的分钟成交额之和减去低于合理收益率的分钟成交额之和,再除以当日收盘流通市值 | | `go_with_flow` | `PlFloat64` | 是 | 随波逐流,个股 20 日高低额差序列与全市场其余每只股票对应序列的 Spearman 相关系数,取绝对值后求均值;恒落在 [0, 1],**值越大未来收益越高**(本表唯一方向为正的因子) | | `lone_goose_daily` | `PlFloat64` | 是 | 日孤雁出群,当日「不分化时刻」内个股分钟成交额序列与全市场其余每只股票对应序列的 Pearson 相关系数,取绝对值后求均值;恒落在 [0, 1] | | `lone_goose_mean` | `PlFloat64` | 是 | 月均孤雁出群,过去 20 个交易日 `lone_goose_daily` 的均值;值越大越差 | | `lone_goose_std` | `PlFloat64` | 是 | 月稳孤雁出群,过去 20 个交易日 `lone_goose_daily` 的样本标准差;恒非负,值越大说明关联性越不稳定 | | `lone_goose` | `PlFloat64` | 是 | 孤雁出群,上两者各自截面去极值标准化后等权平均;值越大越差 | | `boat_in_water` | `PlFloat64` | 是 | 水中行舟,孤雁出群与随波逐流各自截面去极值标准化后等权合成(随波逐流取负号),研报的最终合成因子;值越小未来收益越高 | | `boat_in_water_pure` | `PlFloat64` | 是 | 纯净水中行舟,`boat_in_water` 对申万一级行业哑变量与十个常见风格因子回归后的残差 | ## 依赖数据 | 依赖表 | 频率 | 用到的字段 | 用途 | | ---- | ---- | ---- | ---- | | `cn_stock_bar1m_c` | 1 分钟 | `date`、`instrument`、`open`、`close`、`amount` | 分钟相对开盘收益率与分钟成交额,用于「高低额差」;分钟收益率与分钟成交额,用于「分钟市场分化度」与「日孤雁出群」 | | `cn_stock_prefactors` | 日频 | `date`、`instrument`、`open`、`close`、`float_market_cap` | 日内收益率算「合理收益率」,流通市值作「高低额差」的分母 | | `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` | 构造 `boat_in_water_pure` 回归用的申万一级行业哑变量与十个风格因子 | `cn_stock_prefactors` 是聚合日频 view,上表按用途分两行列出,实际只查这一张表、不展开成底层原始表。 「合理收益率」需 20 个交易日、相关系数窗口再需 20 个交易日,故 `cn_stock_bar1m_c` 与 `cn_stock_prefactors` 的日频中间量实际读取区间比输出区间向前多 45 个交易日;`boat_in_water_pure` 的风格因子含 250 个交易日同比项,其读取区间向前多 255 个交易日。`lone_goose_daily` 另需**逐个交易日**单独查询当日分钟数据(含输出区间前 19 个交易日,供 20 日滚动预热)。 ## 因子列表 ### reasonable_return - **中文名**: 合理收益率 - **描述**: 个股近一段时间的日内收益率中枢,研报把它视为「最近一段时间里个股的合理日内收益率」,用作划分日内价格高位 / 低位时刻的阈值。 **构建逻辑**: 对于股票 A,每天计算 $t$ 日及过去 19 个交易日($t-1$、$t-2$ …… $t-19$)的日内收益率(收盘价/开盘价 - 1)的均值。 **项目实现说明**: 日内收益率取 `cn_stock_prefactors` 的 `close / open - 1`。该比值在同一交易日内与复权口径无关,用后复权价计算与用原始价一致。停牌日价格为空,窗口统计用忽略空值的变体,避免一个停牌日把此后整个窗口拖成空值。 ### high_low_amount_diff - **中文名**: 高低额差 - **描述**: 个股当日成交额在日内价格高位与低位之间的分布差额,是「随波逐流」因子的日频输入。为正表示成交集中在日内价格相对高位。 **构建逻辑**: 1. 取股票 1 分钟频率数据,剔除集合竞价数据,计算每分钟收盘价相对当日开盘价的收益率,得到「相对开盘收益率」。 2. 在全天 240 个交易分钟里,相对开盘收益率**大于**当日合理收益率的分钟视为价格处于相对高位的时刻;**小于**合理收益率的分钟为价格处于相对低位的时刻。 3. 分别计算当日价格处于相对高位的分钟成交额之和(「高位成交额」)与相对低位的分钟成交额之和(「低位成交额」)。 4. 高位成交额减低位成交额,再除以当日收盘时的流通市值: ```math \text{highLowDiff}_t = \frac{\sum_{i \in \text{high}} \text{amount}_i - \sum_{i \in \text{low}} \text{amount}_i}{\text{floatMarketCap}_t} ``` **项目实现说明**: - 「剔除集合竞价数据」按本仓库既有口径处理为剔除集合竞价 bar(沪深记在 09:25、北交所记在 09:30),日内恰好保留 240 根 bar(09:31–15:00),与同系列之五、之六、之八一致。 - 「当日开盘」取剔除集合竞价后第一根 bar(09:31)的 `open`。研报在「剔除集合竞价」之后才使用「当日开盘」,故不取集合竞价价格。 - 相对开盘收益率恰好等于合理收益率的分钟既不计入高位也不计入低位(研报对该情形未作规定,浮点比较下几乎不出现)。 - 分子取自 `cn_stock_bar1m_c`(未复权)、分母取自 `cn_stock_prefactors`(后复权流通市值)。因子是「成交额/市值」的比值,成交额本身不受复权影响,流通市值也是真实金额,两者量纲一致。 ### go_with_flow - **中文名**: 随波逐流 - **描述**: 个股「高低额差」序列与全市场其余每只股票对应序列的相关性强度。相关系数绝对值越大,说明个股在价格相对高位时的成交额越是跟随市场趋势、而非独立交易,投资者对其价格的分歧度越小,未来大概率表现较好。**本表唯一方向为正的因子**(研报实测 Rank IC +5.89%)。 **构建逻辑**: 1. 每个交易日取所有股票过去 20 个交易日的「高低额差」序列。 2. 分别计算每只股票与其余所有股票的「高低额差」序列之间的 **Spearman** 相关系数。研报说明此处用 Spearman 是为了剔除高低额差指标本身大小的影响,使因子刻画的是「高低额差在绝大多数时间里都与市场走势相关联」,而非某几天数值较大导致的。 3. 将相关系数取绝对值,再计算该股票与其余股票的相关系数绝对值的均值。 **项目实现说明**: - Spearman 相关等于对秩做 Pearson 相关,故实现上先把每只股票的 20 日序列转成秩,再按行中心化、除以样本标准差,一次矩阵乘 $Z Z^\top /(n-1)$ 即得到全市场 N×N 相关矩阵。N 约 5500 时该矩阵乘在 0.1 秒量级,无需逐对循环。 - 20 日窗口内高低额差有效天数少于 15 天的个股当日不参与计算(研报未规定窗口缺失的处理);当日可比股票数少于 50 只时整日跳过。 - 由构造该因子**恒落在 [0, 1]**,由入库前测试点 `correlation_bounds` 逐日守护。 - 研报在每月月底计算,本项目按仓库规范改为逐个交易日计算。 ### lone_goose_daily - **中文名**: 日孤雁出群 - **描述**: 市场分化不明显的时刻里,个股分钟成交额与全市场其余股票分钟成交额的关联性。值越小表示在市场清淡缺乏热点时该个股的成交额走出了独立趋势,很可能预示新热点正在孕育。 **构建逻辑**: 1. 对于交易日 $t$,计算每只股票的分钟收益率($t$ 分钟收盘价/$t-1$ 分钟收盘价 - 1)。 2. 计算每一分钟所有股票分钟收益率的标准差,作为该分钟个股收益分化程度的指标,记为「分钟市场分化度」。 3. 计算当日所有分钟市场分化度的均值,找出分化度**小于**均值的时刻,记为当日的「不分化时刻」。 4. 取市场上所有股票在当日不分化时刻的分钟成交额序列,分别计算每只股票与其余股票的 **Pearson** 相关系数。研报说明此处改用 Pearson 是因为多数股票在一天里大部分时间交易并不活跃(市场清淡时尤甚),信息藏在少数分钟里,用 Pearson 可以提高交易活跃分钟在因子中的权重。 5. 将相关系数取绝对值,再计算该股票与其余股票的相关系数绝对值的均值。 **项目实现说明**: - 分钟市场分化度与不分化时刻的筛选全在 SQL 内完成(每日只产出 240 行),只有 N×M 的成交额矩阵需要取回 Python 做相关。实测每日不分化时刻约 160~170 分钟,矩阵约 5500×166,单日总耗时约 0.8 秒(含取数)。 - 分钟收益率按(个股,交易日)分区,故每日首分钟为空、不计入分化度;相应地当日有 239 个分钟参与分化度计算。 - 不分化时刻内有效分钟少于 10 个的个股当日不参与计算;当日可比股票数少于 50 只时整日跳过。 - 由构造该因子**恒落在 [0, 1]**,同由 `correlation_bounds` 测试点守护。 ### lone_goose_mean - **中文名**: 月均孤雁出群 - **描述**: 日孤雁出群的 20 日均值。值越大越差(未来收益越低)。 **构建逻辑**: 取过去 20 个交易日日孤雁出群的均值。 ### lone_goose_std - **中文名**: 月稳孤雁出群 - **描述**: 日孤雁出群的 20 日样本标准差,刻画关联性的稳定性。 **构建逻辑**: 取过去 20 个交易日日孤雁出群的样本标准差。 ### lone_goose - **中文名**: 孤雁出群 - **描述**: 月均孤雁出群与月稳孤雁出群等权合成,研报 2.2 节的汇总因子。研报实测 Rank IC -8.20%、Rank ICIR -3.55、多空年化 31.26%。 **构建逻辑**: 1. 分别计算月均孤雁出群与月稳孤雁出群。 2. 两者等权合成。 **项目实现说明**: 研报只写「等权合成」,未披露合成前的标准化口径。本项目两处合成一律先做截面 1%/99% 分位截尾再 z-score,然后算术平均。由于本表两个分量都在 Python 侧算出,该步骤用 polars 按同一口径复刻(同系列之五、之六、之八在 SQL 里用 `c_normalize(c_winsorize(...))` 实现,二者等价)。 ### boat_in_water - **中文名**: 水中行舟 - **描述**: 随波逐流与孤雁出群等权合成,研报的最终因子。研报指出两者「逻辑和方向完全相反,同时二者相关性接近于 0」,故合成后效果显著优于任一分量:研报实测 Rank IC -9.36%、Rank ICIR -4.95、多空年化 36.24%、信息比 4.40、月度胜率 86.67%,十分组多头年化 26.36%、空头 -8.35%。值越小未来收益越高。 **构建逻辑**: 1. 分别计算随波逐流因子与孤雁出群因子。 2. 两者等权合成。 **项目实现说明**: 研报只说「等权合成」,未写明符号处理,但明确交代两个因子「方向完全相反」——随波逐流越大越好(Rank IC 为正),孤雁出群越小越好(Rank IC 为负)。若直接相加,两者的预测信息会相互抵消。本项目实现为**孤雁出群减随波逐流**(各自截面截尾 + z-score 后再相减、除以 2),使合成因子统一为「值越小未来收益越高」,与研报给出的 `boat_in_water` 方向(Rank IC -9.36%)及其强于两个分量的量级一致。 ### boat_in_water_pure - **中文名**: 纯净水中行舟 - **描述**: 水中行舟对常用风格因子与行业因子正交化后的残差,用于验证因子的增量信息。研报指出水中行舟与流动性、波动率、估值因子相关性较高,剥离风格后 Rank IC 仍有 -4.71%、Rank ICIR -4.36、多空年化 17.59%、信息比 3.34。 **构建逻辑**: 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-01-31;全市场不做任何股票过滤;前向收益取次日开盘到 21 个交易日后开盘(`cn_stock_prefactors.open`,后复权);Rank IC(因子与前向收益各自取截面百分位排名后求相关,口径同 `hfwarehouse.utils.ic.validate_factor_ic`);因子按研报口径先做市值 + 行业正交化(申万一级行业 + 流通市值,与 DAI `c_neutralize` 逐值等价),`boat_in_water_pure` 已在构建时正交化故不再重复处理。研报为月末截面、本项目逐日,故给出两列:「月末口径」= 每个自然月最后一个交易日截面,共 97 个截面(孤雁出群族 96 个);「逐日全样本」= 区间内全部交易日,约 1950 个截面。多空组合为月末调仓、十分组、组内等权、不扣费;**`go_with_flow` 方向为正,其多空按「做多最高一组、做空最低一组」计算,其余因子方向为负、按相反口径计算**。 **区间差异(对照前必读)**: 研报测试区间为 2013 年 1 月至 2023 年 1 月,本项目按需求自 2015-01-01 回填,**少了 2013、2014 两年**。上游 `cn_stock_bar1m_c` 自 2005 年起可用,这不是数据限制而是回填起点的选择;需要与研报完全同区间时把 notebook 第一段的 `HISTORY_START` 改回 `2013-01-01` 重跑即可。 **ICIR 口径差异**: 研报的 Rank ICIR 是**年化**值,本项目的截面 ICIR(IC 均值 / IC 标准差)未年化,两者直接比会差 $\sqrt{12}$ 倍(同系列研报一致的口径)。下表「月末口径」列同时给出未年化值与年化值(× $\sqrt{12}$),**与研报可比的是括号里的年化值**。 | 因子 | 本项目(月末口径,ICIR 括号内为年化) | 本项目(逐日全样本) | 研报原文 | 出处 | | ---- | ---- | ---- | ---- | ---- | | `go_with_flow` | IC **+0.0605**,ICIR +0.98(**+3.40**),多空年化 17.08%,信息比 2.11,月度胜率 73.20% | IC +0.0604,ICIR +0.99 | Rank IC +5.89%,Rank ICIR +3.29,多空年化 16.26% | 研报 2.1 节 | | `lone_goose_mean` | IC -0.0783,ICIR -0.87(-3.00),多空年化 28.98%,信息比 2.39,月度胜率 75.00% | IC -0.0850,ICIR -0.92 | Rank IC -8.23%,Rank ICIR -3.17,多空年化 29.25% | 研报 2.2 节 | | `lone_goose_std` | IC -0.0710,ICIR -1.06(-3.68),多空年化 27.60%,信息比 3.00,月度胜率 83.33% | IC -0.0772,ICIR -1.18 | Rank IC -7.03%,Rank ICIR -3.90,多空年化 27.49% | 研报 2.2 节 | | `lone_goose` | IC -0.0802,ICIR -0.97(-3.35),多空年化 **31.26%**,信息比 2.70,月度胜率 79.17% | IC -0.0873,ICIR -1.05 | Rank IC -8.20%,Rank ICIR -3.55,多空年化 **31.26%** | 研报 2.2 节 | | `boat_in_water` | IC -0.0952,ICIR -1.45(**-5.01**),多空年化 34.54%,信息比 3.57,月度胜率 83.33% | IC -0.1012,ICIR -1.47 | Rank IC -9.36%,Rank ICIR -4.95,多空年化 36.24%,信息比 4.40,月度胜率 86.67% | 研报 2.3 节 | | `boat_in_water_pure` | IC -0.0400,ICIR -1.07(-3.72),多空年化 16.49%,信息比 2.54,月度胜率 79.17% | IC -0.0419,ICIR -1.04 | Rank IC -4.71%,Rank ICIR -4.36,多空年化 17.59%,信息比 3.34 | 研报 2.4 节 | 研报还给出十分组多头年化 26.36% / 空头 -8.35%(2.3 节)、三个宽基成分股内的多头年化超额 9.48% / 9.71% / 18.51%(3.6 节)、三个指数增强组合的年化超额 7.71% / 12.49% / 17.80%(3.6 节)、以及周频调仓下多头 33.72% / 多空 60.22%(3.7 节)。本表不做指数成分股切分、指增组合与周频回测,这些项不列入核对。 **整体结论**: 这是本系列四篇复现中吻合度最高的一篇,六个因子的 Rank IC 偏差全部在 0.0071 以内,年化 ICIR 偏差在 0.64 以内,多空年化偏差在 1.7 个百分点以内,方向全部一致。 - **`lone_goose` 的多空年化 31.26% 与研报 31.26% 两位小数完全一致**;`lone_goose_mean` 28.98% 对 29.25%(差 0.27pp)、`lone_goose_std` 27.60% 对 27.49%(差 0.11pp)。 - **`go_with_flow` 的正方向复现无误**,这是全系列唯一一个 Rank IC 为正的因子:本项目 +0.0605、年化 ICIR +3.40,研报 +5.89%、+3.29;按正向口径的多空年化 17.08% 对研报 16.26%。 - **核心因子 `boat_in_water`**:IC -0.0952(研报 -9.36%)、年化 ICIR **-5.01(研报 -4.95)**、多空年化 34.54%(研报 36.24%)、月度胜率 83.33%(研报 86.67%)。信息比 3.57 低于研报 4.40,是偏差最明显的一项。 - **研报「两个分量相关性接近于 0」已验证**:月末截面上 `go_with_flow` 与 `lone_goose` 的 Spearman 相关均值为 **-0.046**,全样本 Pearson 为 -0.059。正因为相关性极低,合成后 IC 绝对值(0.0952)明显高于两个分量(0.0605 / 0.0802),与研报的提升幅度一致。 **已知的口径差异**: - **样本区间**:本项目自 2015-01-01 回填,研报自 2013 年 1 月,少 2013、2014 两年。 - **合成时的符号处理研报未写明**:研报只说「等权合成」,但明确交代两个因子「方向完全相反」。本项目实现为「孤雁出群减随波逐流」(各自截面截尾 + z-score 后相减再除以 2)。合成后 IC -0.0952 与研报 -9.36% 吻合,可确认该读法正确;若直接相加,两者的预测信息会相互抵消。 - **两处「等权合成」的标准化口径未披露**:本项目一律先截面 1%/99% 截尾 + z-score 再算术平均,用 polars 复刻 SQL 的 `c_normalize(c_winsorize(...))`。 - **窗口缺失与退化序列的处理研报未规定**:20 日窗口内高低额差有效天数少于 15 天、或日内不分化时刻有效分钟少于 10 个的个股,当日不输出相关系数类因子;序列恒定(如全天成交额为 0)的个股相关系数无定义,当日置空且不计入其他个股的分母。 - **多空组合口径未披露**:研报未说明分组数、组内权重、是否扣费,本项目取月末调仓、十分组、等权、不扣费。 - **「相对开盘收益率恰等于合理收益率」的分钟**既不计入高位也不计入低位,研报未规定该情形。 **其他交叉核对**(不依赖区间,可直接验证实现正确性的三处): | 核对项 | 本项目 | 研报原文 | 出处 | | ---- | ---- | ---- | ---- | | 两个分量的相关性 | 月末截面 Spearman 均值 -0.046,全样本 Pearson -0.059 | 「二者相关性接近于 0」 | 研报 1 节、2.3 节 | | 相关系数类因子的取值范围 | 全表 1167 万行实测 `go_with_flow`、`lone_goose_daily`、`lone_goose_mean` 均落在 [0, 1],越界 0 行;`lone_goose_std` 无负值 | 因子定义为相关系数绝对值的均值 | 研报 2.1 节第 7 点、2.2 节第 5 点 | | 日内有效 bar 数 | 240 根(09:31–15:00),分钟收益率首分钟为空故分化度用 239 个分钟 | 「在全天 240 个交易分钟里」 | 研报 2.1 节第 3 点 | 两个因子的相关系数都用「标准化后一次矩阵乘」实现($ZZ^\top/(n-1)$ 即相关矩阵),而非逐对循环:N 约 5500 时 5500×20 与 5500×166 两种规模的矩阵乘均在 0.1 秒量级,`lone_goose_daily` 单个交易日含取数总耗时约 0.8 秒。由 Cauchy–Schwarz 不等式,该写法保证 $|{\rm corr}| \le 1$,故相关系数类因子的 [0, 1] 上界是构造性的,由入库前测试点 `correlation_bounds` 逐日守护。 **首次回填时门禁拦下的一个实现缺陷**(已修,记录备查):序列恒定的个股(如 2016-11-23 的 `300567.SZ`,当日 161 个不分化分钟成交额全为 0)标准差为 0,早期实现把这类行整体置 0,导致其相关矩阵对角线为 0 而非 1,减去 1 后得到 -0.00036 的负值,被 `correlation_bounds` 抓出。修法是把退化行标为无效、从相关矩阵中整体剔除、该日置空,并且不计入其他个股求均值的分母。同时把 numpy 侧的 NaN 在产出处立即收敛为 NULL——polars 的 `mean` / `std` / `quantile` 会被 NaN 毒化(null 则跳过),留着会让后续截面标准化整列变 NaN。 覆盖度:2015-01-05 ~ 2026-09-30 共 2855 个交易日、1167 万行,全表无 NaN 与 ±Inf。`boat_in_water` 逐年有效值占比 88.2%(2016 年)~ 99.6%,`go_with_flow` 94.3% ~ 99.8%;2016 年偏低来自当年大面积停复牌使 20 日窗口内高低额差有效天数不足 15 天,逐年入库时随机抽日的入库前测试全部通过。 **样本外表现(2023-02-01 ~ 2026-09-30,逐日,871 个截面)**:六个因子方向全部保持,无符号反转。 | 因子 | 样本内逐日 IC | 样本外逐日 IC | 样本内 ICIR | 样本外 ICIR | | ---- | ---- | ---- | ---- | ---- | | `go_with_flow` | +0.0604 | +0.0510 | +0.99 | +0.60 | | `lone_goose_mean` | -0.0850 | -0.0488 | -0.92 | -0.60 | | `lone_goose_std` | -0.0772 | -0.0547 | -1.18 | -0.83 | | `lone_goose` | -0.0873 | -0.0567 | -1.05 | -0.72 | | `boat_in_water` | -0.1012 | -0.0743 | -1.47 | -0.96 | | `boat_in_water_pure` | -0.0419 | -0.0185 | -1.04 | -0.48 | 核心因子 `boat_in_water` 从 -0.1012 衰减到 -0.0743(27%),仍是全表最强;`go_with_flow` 衰减 16%、是衰减最少的一个,且方向稳定为正。衰减最明显的是 `lone_goose_mean`(-0.0850 → -0.0488,43%),说明「市场清淡时成交额独立」这条线路近四年弱化较多,而其稳定性分量 `lone_goose_std` 衰减较轻(29%)。`boat_in_water_pure` 从 -0.0419 降到 -0.0185(56%)、ICIR 从 -1.04 降到 -0.48,剥离风格后的增量信息已很薄;这与同系列之四、之五、之六、之八的 `_pure` 版本是同一模式,使用前应复核当期表现。样本外区间末端约 21 个交易日因前向收益窗口不完整而无 IC,已从序列中剔除。 ## 示例数据 按 `date`、`instrument` 排序后的前 5 行与后 5 行,由 `update_docs()` 推送文档时自动填充。 | date | instrument | reasonable_return | high_low_amount_diff | go_with_flow | lone_goose_daily | lone_goose_mean | lone_goose_std | lone_goose | boat_in_water | boat_in_water_pure | |---------------------|------------|-------------------|----------------------|--------------|------------------|-----------------|----------------|------------|---------------|--------------------| | 2026-09-30 00:00:00 | 000001.SZ | 0.001122 | 0.005357 | 0.210026 | 0.075926 | 0.108079 | 0.028095 | -0.674159 | -0.082984 | -0.145527 | | 2026-09-30 00:00:00 | 000002.SZ | 0.022369 | 0.005100 | 0.279697 | 0.073665 | 0.097692 | 0.038489 | -0.335455 | -0.645656 | -0.393638 | | 2026-09-30 00:00:00 | 000006.SZ | 0.011066 | 0.005846 | 0.244694 | 0.072503 | 0.104098 | 0.037201 | -0.274471 | -0.236368 | 0.499577 | | 2026-09-30 00:00:00 | 000007.SZ | -0.006632 | -0.015444 | 0.217530 | 0.174502 | 0.097636 | 0.034447 | -0.549543 | -0.095321 | -0.086468 | | 2026-09-30 00:00:00 | 000008.SZ | -0.002305 | 0.003169 | 0.342823 | 0.048772 | 0.074189 | 0.014903 | -1.940627 | -2.167642 | -2.266918 | | 2026-09-30 00:00:00 | 920978.BJ | -0.005302 | 0.006830 | 0.207718 | 0.127258 | 0.079262 | 0.018575 | -1.755471 | -0.650439 | -0.623385 | | 2026-09-30 00:00:00 | 920981.BJ | -0.003369 | -0.038720 | 0.217609 | 0.125957 | 0.125281 | 0.031887 | -0.128286 | 0.134555 | 0.244665 | | 2026-09-30 00:00:00 | 920982.BJ | 0.005723 | 0.064991 | 0.188721 | 0.067280 | 0.088498 | 0.019217 | -1.535809 | -0.326128 | -0.969978 | | 2026-09-30 00:00:00 | 920985.BJ | -0.003648 | 0.008676 | 0.238060 | 0.069336 | 0.078141 | 0.023293 | -1.529418 | -0.852469 | -0.192045 | | 2026-09-30 00:00:00 | 920992.BJ | 0.002722 | 0.041194 | 0.223877 | 0.062671 | 0.079719 | 0.030304 | -1.128294 | -0.480465 | -0.051750 |
方正因子水中行舟 (hf_bar1m_c_fz_boat_in_water)
数据描述:
文档
用例
表结构
| 字段 | 字段类型 | 字段描述 |
| boat_in_water | double | 水中行舟,孤雁出群与随波逐流各自截面去极值标准化后等权合成;两者方向相反,故合成时随波逐流取负号,使合成因子统一为「值越小未来收益越高」。研报的最终合成因子。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| lone_goose_std | double | 月稳孤雁出群,过去 20 个交易日日孤雁出群的样本标准差,值越大说明关联性越不稳定。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| lone_goose_mean | double | 月均孤雁出群,过去 20 个交易日日孤雁出群的均值,值越大越差(未来收益越低)。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| lone_goose_daily | double | 日孤雁出群,当日「不分化时刻」(分钟市场分化度低于当日均值的分钟)内,个股分钟成交额序列与全市场其余每只股票对应序列的 Pearson 相关系数,取绝对值后求均值;值越小说明市场清淡时该股成交额走出独立趋势。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| reasonable_return | double | 合理收益率,当日及过去 19 个交易日日内收益率(收盘价/开盘价 - 1)的均值,用作划分日内价格高低位的阈值。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| boat_in_water_pure | double | 纯净水中行舟,水中行舟在当日截面上对申万一级行业哑变量与十个常见风格因子做多元回归后的残差,剥离风格与行业暴露后的增量信息,方向与水中行舟一致。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| high_low_amount_diff | double | 高低额差,当日相对开盘收益率高于合理收益率的分钟成交额之和减去低于合理收益率的分钟成交额之和,再除以当日收盘流通市值;为正表示成交集中在日内价格相对高位。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| lone_goose | double | 孤雁出群,月均孤雁出群与月稳孤雁出群各自截面去极值标准化后等权平均,值越大越差。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
| instrument | string | 股票代码 |
| __PARTITION__ | string | - |
| date | timestamp[ns] | 交易日期 |
| go_with_flow | double | 随波逐流,个股过去 20 个交易日高低额差序列与全市场其余每只股票对应序列的 Spearman 相关系数,取绝对值后求均值;值越大说明价格处于相对高位时成交额越跟随市场趋势、投资者分歧越小,未来收益越高(本族唯一方向为正的因子)。来源:曹春晓, 陈宗伟. 2023-02-15. 《个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九》. 方正证券 |
表名:hf_bar1m_c_fz_boat_in_water
起始时间:
最近更新时间: