基于研报因子构建多因子选股策略示例
由bqu1vdra创建,最终由bqu1vdra 被浏览 48 用户
研报因子:数据平台——量化因子——研报因子
1. “朝没晨雾”因子:捕捉“信息平稳度”
- 构造方法:基于股票每分钟的收益率与过去5分钟增量成交量的回归,得到5个回归系数的t值。计算这5个t值的标准差。每月取过去20个交易日的均值。
- 核心逻辑:这个标准差反映了短期信息流入的平稳性。
- 标准差小 → 过去几分钟的成交量变化对当前收益率的影响程度非常一致,没有出现某个时刻的成交突然对价格产生异常大的冲击。这代表股票没有突然爆发的热点新闻或异常交易,属于“冷门”或“信息平稳”的股票。市场关注少,投资者行为相对理智,价格不容易被短期情绪推高,存在低估可能。
- 标准差大 → 存在某个时刻的成交量突然对价格产生了显著影响,说明有突发信息或大资金介入,容易引发过度反应和追涨杀跌,未来收益预期降低。
- 因子方向:越小越好。
2. “午蔽古木”因子:综合评判“突发信息”与“噪声”
-
构造方法:
- 核心指标:从回归中得到两个关键值——截距项的绝对值
|t-intercept|(代表市场+中长期信息的影响强度)和回归方程的F统计量F-all(代表是否存在某一分钟的突然信息对价格产生了显著影响)。 - 截面翻转:每天,将截面上
F-all值较小(即无显著突发信息)的股票的|t-intercept|乘以-1;而F-all值较大(有显著突发信息)的股票保持|t-intercept|符号不变。每月取过去20个交易日均值。
- 核心指标:从回归中得到两个关键值——截距项的绝对值
-
核心逻辑:这个因子的精妙之处在于通过翻转,将“突发信息”和“噪声”的逻辑融合到一个方向中。
- 对于
F-all较小(无显著突发信息) 的股票:|t-intercept|代表了“市场+中长期信息”的推动力。这个值越大,意味着在排除突发信息后,价格的推动主要来自市场或中长期基本面。其中,中长期基本面信息占比越大,噪声占比就越小。根据逻辑,噪声越小越好。所以,在翻转后,|t-intercept|越大(噪声越小)→ 翻转后的值-|t-intercept|越小 → 应买入。 - 对于
F-all较大(有显著突发信息) 的股票:这类股票本身就不被看好,翻转后保留正号,直接归于空头端。
- 对于
-
因子方向:经过这种处理,因子值越小越好。
3. “夜眠霜路”因子:剥离出“中长期基本面信息”
-
构造方法:计算个股过去20天的
t-intercept序列与当期全市场所有股票的t-intercept序列的相关系数的绝对值。 -
核心逻辑:
t-intercept中混合了“市场信息”和“个股中长期基本面信息”。通过计算个股与全市场的相关性:相关性高 → 个股的
t-intercept变动与市场同步,说明其价格推动力中市场信息占主导,而个股自身的中长期基本面信息占比小。这表明投资者对该股的中长期基本面看法一致,分歧小,未来收益预期高。相关性低 → 个股的
t-intercept变动独立于市场,说明个股自身的中长期基本面信息是主要推动力,暗示投资者对其基本面存在分歧,未来收益预期低。 -
因子方向:越大越好(与其他两个因子相反)。
将以上三个因子等权合成,即得到“花隐林间”因子。
- 合成逻辑:三个因子分别从“短期信息平稳度”、“突发信息与噪声的综合影响”、“中长期基本面的分歧程度”三个完全不同的维度,对股票进行筛选。它们互为补充,共同刻画一只股票是否在非市场层面足够“隐没”。
- 整体方向:由于三个因子中两个(朝没晨雾、午蔽古木)是越小越好,一个(夜眠霜路)是越大越好,等权合成后的“花隐林间”因子整体呈现出越小越好的特征。即,综合评分越低的股票,未来收益潜力越大。
“花隐林间”因子并非简单的量价指标堆砌,而是一套基于市场微观结构理论的系统化选股框架。它通过高频数据还原价格变化的驱动力,筛选出那些:
- 短期没有故事(朝没晨雾)
- 近期没有噪音(午蔽古木)
- 中长期没有分歧(夜眠霜路)
的“隐没”股票。回测结果表明,这类股票在后续确实获得了显著的超额收益,验证了其“不被关注、不被热议、不被分歧”时,往往孕育着投资机会的核心理念
广发证券高频因子:
一、策略背景与研报来源
1.1 为什么选择高频因子?
传统多因子模型(如 Fama-French 三因子、PE/PB 价值因子)通常以日频或低频数据为基础,因子信号的更新频率低、同质化严重,超额收益随着市场有效性提升而持续衰减。
高频因子的核心优势在于:
| 维度 | 传统低频因子 | 高频因子 |
|---|---|---|
| 信号更新 | 季度/月度 | 日内分钟级 |
| 信息来源 | 公开财务数据 | 盘口、成交流、资金行为 |
| 拥挤程度 | 高(机构广泛使用) | 相对低(数据获取门槛高) |
| 捕获行为 | 基本面估值 | 资金意图、市场微结构 |
1.2 广发证券高频因子研报
本策略的因子体系来源于广发证券金融工程团队发布的一系列高频因子研究报告,核心系列包括:
- 《高频数据与选股因子》系列
- 《基于日内高频数据的资金流向因子》
- 《尾盘成交量与隔夜收益预测》
- 《日内波动率结构与截面收益》
这些研报的核心思路是:利用 A 股日内分钟级成交数据,从资金流向、成交时序、波动结构三个维度提取超额信息,因子半衰期通常在 2~4 周,适合中短周期选股策略。
BigQuant 平台将上述研报因子系统整理入库,对应表名为 hf_alpha_gfzq(gfzq = 广发证券)。
二、核心概念:高频数据 × 日频策略
2.1 一个常见的误解
很多人听到"高频",第一反应是:高频交易(HFT),毫秒级下单、每天交易几百次。
但本策略说的"高频",含义完全不同——它指的是构建因子所用的原始数据是高频的(分钟级),而策略本身的交易执行仍然是日频的(每15个交易日换仓一次)。
2.2 两层结构:数据频率 vs 策略频率
这个策略有清晰的两层架构:
┌─────────────────────────────────────────────────────────┐
│ 第一层:数据层(日内分钟级) │
│ │
│ 每天盘中,每只股票产生约 240 根 1分钟 K 线 │
│ 09:30 09:31 09:32 ... 14:59 15:00 │
│ │ │ │ │ │ │
│ └──────┴──────┴──────────────┴──────┘ │
│ 按半小时分段(H1~H8),计算各类统计量 │
│ ↓ │
│ 每日收盘后,汇总成一行因子记录存入数据库 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 第二层:策略层(日频) │
│ │
│ 每个调仓日(每隔15个交易日): │
│ 读取最新一天的因子值 → 截面排名 → 选 Top N → 等权买入 │
│ │
│ 非调仓日:持仓不动 │
└─────────────────────────────────────────────────────────┘
简单一句话:高频数据负责"看得更清楚",日频策略负责"以合理的成本交易"。
2.3 A 股交易日的 8 个半小时时段
hf_alpha_gfzq 表中很多字段名带有 H1~H8 的后缀,对应 A 股每个交易日被平均切成 8 段:
时段 时间范围 特征
────────────────────────────────────────────
H1 09:30 ~ 10:00 开盘竞价 + 早盘情绪
H2 10:00 ~ 10:30 早盘延续
H3 10:30 ~ 11:00 盘中整理
H4 11:00 ~ 11:30 午前最后一段
──── 午休 11:30~13:00 ────────────────────
H5 13:00 ~ 13:30 午后开盘
H6 13:30 ~ 14:00 午后中段
H7 14:00 ~ 14:30 ★ 下午主力建仓窗口
H8 14:30 ~ 15:00 ★ 尾盘(收盘前最活跃)
为什么重点关注 H4~H8? 研报发现,机构投资者为了规避对市价的冲击,倾向于在下午分散、平稳地建仓。因此下午时段的成交量结构,比早盘更能反映机构的真实意图。
2.4 为什么不直接做分钟级高频交易?
既然原始数据是分钟级的,为什么不直接每分钟换仓,追求更高收益?
| 维度 | 分钟级高频策略 | 本策略(日内因子 + 日频交易) |
|---|---|---|
| 换手率 | 极高(每天几十次) | 低(15天换一次) |
| 手续费+印花税 | 侵蚀绝大部分收益 | 可忽略不计 |
| 市场冲击成本 | 极高 | 低 |
| 数据延迟要求 | 毫秒级 | 收盘后即可 |
| 适合资金规模 | 极小(百万以下) | 百万 ~ 数千万 |
| 策略容量 | 极低 | 较高 |
| 监管风险 | 高(涉及高频限制) | 无 |
核心逻辑:分钟级数据用来提取信息,但不用来驱动交易。把高质量的日内信息"压缩"成每日一个因子值,再以日频低成本执行,是二者的最优平衡点。
这就像天气预报:气象站每分钟采集温度、湿度、气压数据,但预报员最终给出的是"明天大部分地区晴"——高频采集,低频决策。
2.5 因子从日内数据到日频值的计算过程(以 ratio_volumeH7 为例)
以尾盘量比因子 ratio_volumeH7 为例,展示完整的计算链路:
原始数据(当日分钟线)
09:30 09:31 ... 14:00 14:01 ... 14:29 14:30 ... 14:59
vol₁ vol₂ vol₉₁ vol₉₂ vol₁₁₉ vol₁₂₀ vol₂₄₀
第一步:加总 H7 时段成交量
vol_H7 = vol₉₁ + vol₉₂ + ... + vol₁₁₉ (14:00-14:30 共30根)
第二步:加总全天成交量
vol_total = vol₁ + vol₂ + ... + vol₂₄₀
第三步:计算占比
ratio_volumeH7 = vol_H7 / vol_total
第四步:收盘后存入数据库
hf_alpha_gfzq 表新增一行:
date=2024-01-05, instrument=000001.SZ, ratio_volumeH7=0.142
这一行数据就是策略第二天(或下一个调仓日)用于选股的输入。
2.6 "高频因子 + 日频策略"的有效性来源
这样的组合有效性在于信息优势的持续性:
因子信号强度
│
1.0 │ ████ ← 计算出来的当天(H7成交量异常高)
│ ███
│ ██
│ █████████
0.5 │ █████████
│ ████
│ ████
│ ████
0.0 └────────────────────────────────── 时间(交易日)
T+0 T+3 T+5 T+10 T+15 T+20 T+25
↑ ↑
信号仍然有效 信号衰减至无效
研报中这类高频因子的 IC 半衰期约为 10~20 个交易日,这正是我们选择 rebalance_days=15 的依据——在信号仍有效的窗口内持有,在信号衰减前换仓。
三、高频因子详解
本策略从 hf_alpha_gfzq 表中选取了 12 个核心字段,按经济含义分为 4 组:
第一组:资金流向因子
核心思路:主力资金的净流入方向是短期股价最强的预测信号
| 字段名 | 含义 | 方向 |
|---|---|---|
amountbuy_xlarge |
超大单买入金额(单笔成交 ≥ 100万元的主动买入) | 越小越好(反向取排名) |
amountbuy_large |
大单买入金额(单笔 50~100万的主动买入) | 越小越好 |
amountsell_small |
小单卖出金额(散户卖出行为) | 越小越好(代表散户不恐慌) |
为什么"大单买入越多反而越差"?
这个结论看似反直觉,但在 A 股有合理解释:
- 超大单是滞后信号:机构大单往往在股价已经拉升一段后才出现,买的时候往往已经"高位接盘"
- 超大单拉升后的短期均值回归:大量资金涌入推高价格后,短期面临获利了结的压力
- 广发研报的原始定义:该因子在研报中本就作为反转信号设计——超大单大量涌入意味着短期过热
因子逻辑:
- 超大单、大单买入代表机构或游资主动建仓,是信息优势资金的动向
- A 股中有大量研究表明,主力资金净流入 → 未来 1~3 周股价正超额收益
- 小单卖出少 → 散户不恐慌性抛售 → 筹码稳定
合成方式:
score_fund = (
(1-rank(amountbuy_xlarge)) -- 买入越少排名越靠前
+(1- rank(amountbuy_large))
+ (1 - rank(amountsell_small)) -- 卖出越少排名越靠前
) / 3.0
注:rank 使用申万一级行业内百分位排名 c_group_pct_rank,中性化行业影响。
第二组:尾盘量比因子
核心思路:尾盘成交量的异动蕴含机构下午建仓信息
| 字段名 | 含义 |
|---|---|
ratio_volumeH7 |
第7个半小时(14:00-14:30)成交量占全天比 |
ratio_volumeH6 |
第6个半小时(13:30-14:00)成交量占全天比 |
ratio_volumeH4 |
第4个半小时(11:00-11:30)成交量占全天比 |
ratio_volumeH5 |
第5个半小时(13:00-13:30)成交量占全天比 |
A 股交易时段划分(每半小时为一段,H1=09:30-10:00,H8=14:30-15:00):
H1(9:30) H2(10:00) H3(10:30) H4(11:00) H5(13:00) H6(13:30) H7(14:00) H8(14:30)
↑早盘 尾盘↑
因子逻辑:
- 机构投资者为了减少市场冲击,倾向于在下午分散建仓,尤其是午后到 14:30 前
- 尾盘(H7、H6、H4、H5)成交量占比高的股票,意味着有大资金在安静地吸筹
- 这一现象在研报中被验证:下午成交量异常偏高的股票,隔日和未来 2 周有超额收益
合成方式:
score_vol_ratio = (
rank(ratio_volumeH7) + rank(ratio_volumeH6)
+ rank(ratio_volumeH4) + rank(ratio_volumeH5)
) / 4.0
第三组:日内波动率因子
核心思路:低噪声、高质量的上涨是真实信号;跳动剧烈的波动是噪声
| 字段名 | 含义 | 方向 |
|---|---|---|
real_var |
日内真实波动率(总波动,含上下两方向) | 越低越好 |
real_upvar |
日内上行波动率(只算上涨时段的波动) | 越低越好 |
ratio_realupvar |
上行波动率 / 总波动率(上涨质量比) | 越低越好 |
因子逻辑:
- 高频研报发现:波动率低的股票在未来截面上表现更稳定(低波动异象)
real_var高说明股价日内跳动剧烈 → 噪声多,信号弱ratio_realupvar高说明涨幅由少数快速拉升贡献 → 不稳定,可能是游资操纵- 我们希望选出"稳稳地涨"的股票,而不是"暴涨暴跌"的标的
合成方式:
score_volat = (
(1 - rank(real_var)) -- 波动越小越好
+ (1 - rank(real_upvar))
+ (1 - rank(ratio_realupvar))
) / 3.0
第四组:量价关系因子
核心思路:正常的上涨应该"量价配合",异常的量价关系预示反转
| 字段名 | 含义 | 方向 |
|---|---|---|
real_skewnessH8 |
尾盘(14:30-15:00)收益分布偏度 | 越低越好 |
corr_VPH8 |
尾盘成交量与价格的相关系数 | 越低越好 |
因子逻辑:
real_skewnessH8偏度高 → 尾盘收益分布右偏 → 尾盘出现了跳拉行为 → 次日容易回调(反转因子)corr_VPH8高 → 尾盘越涨越买 → 典型的追涨行为 → 短期反转概率上升- 两者均取反排名:我们回避尾盘有异常拉升特征的股票
综合得分公式
composite_score =
score_fund × 0.20 (资金流向,信息量最强)
+ score_vol_ratio × 0.40 (尾盘量比,时序信号)
+ score_volat × 0.30 (波动率结构,质量筛选)
+ score_vp × 0.10 (量价关系,反转规避)
三、策略构建全流程
原始数据
├── cn_stock_prefactors(基础过滤:ST、停牌、上市天数、市值、盈利筛选)
└── hf_alpha_gfzq(12个高频因子)
↓ JOIN
行业中性化排名(c_group_pct_rank)
↓
4组因子合成 → composite_score
↓
每个调仓日选 Top N 只股票
↓
等权配置(每只 1/N)
↓
每 rebalance_days 个交易日换仓一次
选股过滤条件(Universe 构建)
在从全市场选股前,先做严格的股票池过滤:
| 过滤条件 | 代码字段 | 目的 |
|---|---|---|
| 主板/创业板/科创板 | list_sector IN (1,2,3) |
排除北交所流动性差标的 |
| 非 ST | st_status = 0 |
排除风险股 |
| 未停牌 | suspended = 0 |
保证可交易 |
| 上市超60天 | list_days > 60 |
排除次新股炒作 |
| 非涨跌停 | price_limit_status = 2 |
排除无法成交的股票 |
| 流通市值 > N亿 | float_market_cap > N * 1e8 |
流动性门槛 |
| ROE > 0 | roe_avg_ttm > 0 |
基本盈利能力 |
| 0 < PE ≤ 200 | pe_ttm BETWEEN 0 AND 200 |
排除亏损和极度泡沫 |
四、选股逻辑与因子合成
4.1 行业中性化的重要性
直接对全市场因子排名会导致严重的行业偏移——例如某一时期高频资金大量流入科技股,如果不做行业中性化,选出来的 10 只股票可能全是科技股,策略实际上变成了"买科技板块 ETF"。
本策略使用 c_group_pct_rank(sw2021_level1, factor_value) 在申万2021一级行业内做百分位排名,确保选出的股票在各行业中均有分布,真正选的是"同行业中最优质的标的"。
4.2 等权配置的选择
使用等权(每只 1/N),而非市值加权或得分加权,原因:
- 简单鲁棒:避免因为得分计算误差导致仓位过度集中
- 与因子特性匹配:高频因子在小市值股上信号强但流动性差,等权隐含了对高评分小市值股的适度约束(因为每只占比固定,不会因为小市值股得分高就过度加仓)
- 换手率可控:等权策略换仓时只需要交换进出的股票,不需要频繁调整每只股票的仓位比例
五、两个参数版本对比
此处简单展示两个有代表性的版本:
| 指标 | 版本 A(激进型) | 版本 B(稳健型) |
|---|---|---|
stock_num |
8 只 | 15 只 |
rebalance_days |
15 交易日(约 3 周) | 15 交易日 |
min_mktcap_bn |
20 亿 | 50 亿 |
| Sharpe 比率 | 1.07 | 0.97 |
| 年化收益率 | 30.5% | 24.5% |
| 最大回撤 | 38.0% | 30.7% |
| Calmar 比率 | 0.80 | 0.80 |
| 持仓分散度 | 低(集中) | 高(分散) |
| 单股影响力 | ~12.5% / 只 | ~6.7% / 只 |
版本 A:8只 · 20亿市值门槛(激进型)
特点:
- 持仓集中,单只股票占比约 12.5%
- 市值门槛 20 亿,可以覆盖部分中小盘成长股,这类股票高频信号更强
- 年化 30.5%,适合风险承受能力强的投资者
- Sharpe=1.07 在全市场 A 股策略中属于较高水平
适合场景:行情活跃期(如 2023、2025 年)超额收益显著;震荡期回撤较大需要心理承受力
版本 B:15只 · 50亿市值门槛(稳健型)
特点:
- 持仓分散,单只股票仅占 6.7%,个股风险大幅降低
- 市值门槛 50 亿,只选中大盘股,流动性更好,冲击成本更低
- 最大回撤 30.7%,比版本 A 低约 7 个百分点
- 更适合实盘:资金量大时 50 亿市值门槛确保买卖不影响股价
适合场景:资金体量较大(500万以上)、注重回撤控制的机构或高净值投资者
为什么两个版本都选 rebalance_days=15?
这是网格搜索中最一致的规律:15个交易日(约3周)是高频因子最匹配的持仓周期。
原因分析:
- 研报中高频因子的 IC 衰减曲线通常在 10~20 个交易日内 IC 仍显著为正,超过 20 日后快速衰减
- 持仓太短(5日):换手率过高,摩擦成本侵蚀收益(手续费+冲击成本)
- 持仓太长(20日+):因子信号已经衰减,选的股票变成"随机游走"
六、参数优化与过拟合讨论
6.1 什么是参数过拟合?
过拟合(Overfitting)在量化中是指:模型在历史数据上表现很好,但在未来真实交易中表现大幅下降,原因是模型"记住了"历史数据的噪声,而不是学到了真实规律。
过拟合的典型症状:
- 历史回测 Sharpe 极高(>2),实盘 Sharpe 接近 0
- 一旦改变参数,绩效急剧下降("参数孤岛")
- 策略在样本内回测时几乎没有回撤
6.2 本策略的过拟合风险评估
存在的风险点
① 同数据集上搜参 + 评价 网格搜索在 2023-2026 年全样本上运行,选出的"最优"组合一定程度上利用了这段特定历史,存在数据窥视偏差(Data Snooping Bias)。
② 小样本统计不显著 3年回测期仅约780个交易日,换仓日约50次(15日/次),单次独立样本有限,统计误差较大。
③ 小持仓数的随机性 版本 A 只持有 8 只股票,某段时期"碰巧"持有了几只大牛股就能把 Sharpe 拉高,并不完全反映因子有效性。
过拟合程度有限的理由
① 参数有经济逻辑支撑,而非数字凑出来的
| 参数 | 经济含义 | 是否有先验依据 |
|---|---|---|
rebalance=15d |
匹配高频因子 IC 衰减周期 | ✅ 研报有明确论证 |
mktcap≥50亿 |
大市值流动性好,因子噪声低 | ✅ 市场微结构理论支持 |
stock_num=8/15 |
分散化与集中度的经典权衡 | ✅ 组合理论有据可查 |
② 热力图中 rebalance=15 是跨 stock_num 的稳定高点,而非孤立异常值
Sharpe 热力图(mktcap=20亿)
rebalance_days
5d 10d 15d 20d
stock_num=5 0.57 0.72 0.72 0.89
stock_num=8 0.77 0.85 1.07 0.69
stock_num=10 0.66 0.81 0.81 0.67
stock_num=15 0.47 0.54 0.80 0.80
rebalance=15d 这一列整体偏高,不是在某一格突出。这意味着 15 日换仓是一个跨参数稳健的规律,而非偶发的局部最优。
③ 参数搜索空间不大 只搜索了 3 个参数 × 60 个组合,与真正意义上的"过度拟合"(几十个参数、数千次尝试)相比规模较小。
6.3 如何验证是否过拟合?
方法一:Walk-Forward 滚动优化
训练窗口 测试窗口
2021-01 ~ 2022-12 → 2023-01 ~ 2023-06 (选出参数 A)
2021-07 ~ 2023-06 → 2023-07 ~ 2023-12 (选出参数 B)
2022-01 ~ 2023-12 → 2024-01 ~ 2024-06 (选出参数 C)
...
如果每次选出的最优参数相近,说明参数稳定;否则说明过拟合。
方法二:样本外测试(Out-of-Sample Test)
将 2021-2022 年数据作为纯样本外验证集,只用 2023+ 数据优化参数,再在 2021-2022 年观察表现是否一致。
方法三:参数稳健性检验(本策略已部分验证)
最优参数(8, 15d, 20亿)的 Sharpe=1.07,其邻近组合:
- (8, 10d, 20亿) → Sharpe=0.85
- (8, 20d, 20亿) → Sharpe=0.69
- (10, 15d, 20亿) → Sharpe=0.81
邻近参数表现仍然不差,说明不是极端孤点,具备一定稳健性。
七、回测结果解读
7.1 关键指标说明
| 指标 | 含义 | 版本A | 版本B | 判断标准 |
|---|---|---|---|---|
| Sharpe 比率 | 每承担1单位风险获得的超额收益 | 1.07 | 0.97 | >1 为优秀 |
| 年化收益率 | 复利年化超额 | 30.5% | 24.5% | 需与基准比较 |
| 最大回撤 | 从历史高点到最低点的跌幅 | 38.0% | 30.7% | 越低越好 |
| Calmar 比率 | 年化收益 / 最大回撤 | 0.80 | 0.80 | >0.5 可接受 |
| 基准(沪深300) | 同期市场表现 | +15.5% | +15.5% | 参照系 |
7.2 超额收益归因
策略的超额收益(Alpha=0.05~0.12)主要来源:
- 资金流向的预测能力(贡献最大):机构资金流入信号在 A 股中持续有效,市场非完全有效
- 行业中性化的贡献:过滤掉了周期性行业轮动的噪声,Alpha 更纯净
- 质量过滤的贡献:
ROE>0、PE≤200、市值门槛排除了大量"垃圾股"
7.3 回测的局限性
| 偏差类型 | 说明 | 影响方向 |
|---|---|---|
| 幸存者偏差 | 历史数据中不包含已退市股票 | 高估收益 |
| 未来函数风险 | 若因子计算使用了当日收盘后数据 | 高估收益 |
| 冲击成本忽略 | 实际买卖对股价有影响,回测未计入 | 高估收益 |
| 过拟合偏差 | 参数经过历史优化 | 高估未来收益 |
| 市场环境变化 | 因子有效性随时间衰减 | 不确定 |
八、策略局限性与风险提示
8.1 适用范围
本策略适合:
- A 股市场行情活跃期
- 资金规模在 100 万 ~ 2000 万元之间(版本A)
- 资金规模在 500 万以上(版本B,市值门槛50亿更利于大资金操作)
- 对短期波动有一定承受能力的投资者
本策略不适合:
- 熊市深度下跌阶段(无择时保护机制)
- 超大资金(10亿+):持仓股太少,冲击成本显著
- 追求绝对收益、无法承受 30%+ 回撤的投资者
8.2 因子可能失效的场景
| 场景 | 原因 | 失效信号 |
|---|---|---|
| 监管打击高频交易 | 影响资金流数据质量 | 因子 IC 快速下降至 0 |
| 机构大规模使用同类因子 | 因子拥挤,超额被套利消除 | 换手成本超过 Alpha |
| 市场极端情绪(熔断/崩盘) | 资金行为脱离正常逻辑 | 最大回撤急剧扩大 |
| 交易所修改数据统计口径 | 历史数据不可比 | 需要重新标定因子方向 |
九、★单因子贡献度拆解与量价因子的深层价值
9.1 研究动机
策略整体表现不错,但一个自然而然的问题随之而来:四类因子各自贡献了多少?哪个因子是真正的"主引擎"?权重设定是否合理?
为回答这些问题,我采用的是单因子独立回测法,将每类因子组的权重依次设为 1.0(其余归零),在完全相同的回测框架下分别运行,通过对比各组绩效来量化每类因子的独立选股能力。
9.2 实验设计
回测框架保持不变:
- 回测区间:2023-01-01 ~ 2026-03-31
- 持股数量:15只,等权重
- 调仓周期:15个交易日
- 资金规模:100万
- 手续费:买 0.03%,卖 0.13%,最低 5 元
共运行 5 次回测:
| 实验组 | w_fund |
w_vol_ratio |
w_volat |
w_vp |
|---|---|---|---|---|
| 完整策略(基准) | 0.2 | 0.4 | 0.3 | 0.1 |
| 仅资金流向因子 | 1.00 | 0 | 0 | 0 |
| 仅量比因子 | 0 | 1.00 | 0 | 0 |
| 仅波动率因子 | 0 | 0 | 1.00 | 0 |
| 仅量价相关因子 | 0 | 0 | 0 | 1.00 |
9.3 实验结果
| 策略 | 年化收益率 | 年化波动率 | Sharpe | 最大回撤 | Calmar | 总收益率 |
|---|---|---|---|---|---|---|
| 完整策略(基准) | 24.21% | 22.08% | 1.097 | -30.74% | 0.788 | 96.15% |
| 仅资金流向因子 | 24.45% | 22.79% | 1.073 | -32.47% | 0.753 | 97.31% |
| 仅量比因子 | 19.58% | 20.59% | 0.951 | -27.33% | 0.717 | 74.32% |
| 仅波动率因子 | 20.65% | 19.49% | 1.060 | -28.97% | 0.713 | 79.20% |
| 仅量价相关因子 | -1.86% | 24.68% | -0.075 | -45.70% | -0.041 | -5.67% |
与完整策略的差异(Δ值,正 = 优于完整策略):
| 策略 | Δ年化收益率 | ΔSharpe | Δ最大回撤 | ΔCalmar |
|---|---|---|---|---|
| 仅资金流向因子 | +0.24% | -0.024 | -1.73% | -0.035 |
| 仅量比因子 | -4.63% | -0.146 | +3.41% | -0.071 |
| 仅波动率因子 | -3.56% | -0.037 | +1.77% | -0.075 |
| 仅量价相关因子 | -26.07% | -1.172 | -14.96% | -0.829 |
9.4 初步结论
从各单因子的独立表现可以得出初步排名:
- 资金流向因子:独立年化收益 24.45%,是策略收益的核心驱动力,机构资金行为信号具有极强的选股效力;
- 波动率因子:年化 20.65%,波动率最低(19.49%),防御性突出,是整体组合平稳性的重要贡献者;
- 量比因子:年化 19.58%,虽收益居第三,但最大回撤仅 -27.33%,是四组中下行风险控制最佳的因子;
- 量价相关因子:独立年化 -1.86%,不仅收益为负,最大回撤更高达 -45.70%,独立选股能力极弱。
9.5 反常现象:去掉最差的因子,策略反而变差了?
基于以上结果,一个自然的想法是:既然量价相关因子独立表现如此之差,将其权重调为 0 应该能改善策略整体表现。
然而实验结果却与直觉相反——去除量价相关因子后,完整策略的 Sharpe 比率和 Calmar 比率均出现了下滑。
9.6 因子正交性与分散化效应
答案藏在因子之间的相关性结构中。
对 2023~2025 年全市场约 127 万条样本计算 4 类因子得分的 Spearman 相关矩阵:
| 资金流向 | 量比 | 波动率 | 量价相关 | |
|---|---|---|---|---|
| 资金流向 | 1.000 | 0.151 | 0.320 | 0.024 |
| 量比 | 0.151 | 1.000 | 0.269 | 0.014 |
| 波动率 | 0.320 | 0.269 | 1.000 | 0.085 |
| 量价相关 | 0.024 | 0.014 | 0.085 | 1.000 |
结论一目了然:量价相关因子与其他三类因子的 Spearman 相关系数均低于 0.09,几乎趋近于零。
这意味着量价相关因子所筛选出的股票,与资金流向、量比、波动率三类因子偏好的股票几乎完全不同。它提供的不是更强的选股信号,而是一个来自全新信息维度的独立视角。
数学层面的解释:
多因子组合的 Sharpe 比率不只取决于各因子收益的加权均值,还取决于因子间的协方差结构:
$$ \text{组合方差} = \sum_i w_i^2 \sigma_i^2 + 2\sum_{i<j} w_i w_j \cdot \rho_{ij} \cdot \sigma_i \sigma_j $$
当量价相关因子与其他因子的相关系数约等于0时,加入该因子几乎不增加组合方差,却能将持仓分散到一个全新的股票池,使个股特质风险相互抵消。Sharpe 比率的改善来自分母(波动率)的压缩,而非分子(收益)的提升。
这正是诺贝尔经济学奖得主马科维茨现代投资组合理论在因子层面的体现——多样化分散效应(Diversification Benefit)。
9.7 Standalone Alpha vs Incremental Alpha
这一现象引出多因子研究中一个重要的概念区分:
| 概念 | 定义 | 量价相关因子的情况 |
|---|---|---|
| Standalone Alpha(独立 α) | 因子单独作为策略时产生的超额收益 | ❌ 为负(-1.86%) |
| Incremental Alpha(增量 α) | 因子加入现有组合后带来的边际贡献 | ✅ 为正(提升 Sharpe) |
在多因子体系中,评估一个因子是否"有价值",不应只看其独立 α,更应看其与现有因子体系的相关性结构。 一个低相关因子哪怕选股能力一般,也可能通过降低组合波动率来改善风险调整收益,是整个因子体系中不可或缺的"分散化锚"。
本节实验揭示了多因子策略中一条常被忽视的核心法则:因子的价值不等于因子的独立收益。 量价相关因子以"几乎无相关"的特性,在组合层面发挥着天然的风险分散作用,使完整策略的综合 Sharpe 和 Calmar 指标均优于任何单一因子组合。这也说明,在多因子模型的权重优化过程中,因子间相关性矩阵应作为与收益预测同等重要的参考依据,而非仅凭单因子 IC 或回测收益来取舍因子!
AI策略广场链接:https://bigquant.com/square/ai/cb685292-fbae-a276-c329-1be9116553f2
\