研报复现金工吸收率风险识别PCA择时
研报复现:基于吸收率(AR)的A股风险识别框架——申万金工系列之四
研报信息
| 项目 | 内容 |
|---|
| 标题 | 从市场共振到行业配置:基于吸收率的A股风险识别框架 |
| 团队 | 申万金工量化择时策略研究系列之四 |
| 核心方法 | 基于主成分分析(PCA)构建吸收率(AR)指标,衡量市场系统性风险 |
| 策略类型 | 指数择时 + 行业配置 |
策略原理
吸收率(Absorption Ratio, AR)由 Kritzman 等(2010)提出,用于衡量市场风险来源的集中度。核心逻辑:
- 吸收率计算:对行业指数收益率进行主成分分析(PCA),取前K个主成分解释的总方差占比
- AR上升 → 系统性风险脆弱性上升:当波动来源集中于少数几个共同因子时,资产间分散化效果下降,市场易发生系统性回调
- DeltaAR (DAR):当前AR与半窗口前AR的差值,衡量吸收率变化方向
- 信号规则:DAR > 阈值 → 看空(市场过度共振,风险上升);DAR < -阈值 → 看多(市场结构分化,风险释放)
关键参数
| 参数 | 复现取值 | 说明 |
|---|
| 滚动窗口 | 125个交易日 | Kritzman标准做法 |
| 主成分数K | 5 | 覆盖主要风险来源 |
| DAR阈值 | ±1σ | 1倍标准差 |
| 行业分类 | DuckDB中可用申万行业 | 含二级行业,与原文28个一级行业有差异 |
数据准备说明
数据替代标注表
| 原文指标 | 替代指标 | 原因 | 预期影响 |
|---|
| 28个申万一级行业指数 | DuckDB中约38个申万一级/二级行业指数 | 无法获取原文PDF确认精确行业列表 | 行业数更多→PCA解释方差可能偏低,但方向信号应一致 |
| 具体窗口/K/阈值参数 | 基于Kritzman(2010)学术标准 | 原文PDF不可获取 | 参数变化的敏感性在B9中测试 |
| 情绪叠加信号 | 未实现(仅纯DAR信号) | 缺失情绪指标来源 | 复现结果可能低于原文含情绪指标版本 |
数据来源
- 行业数据:DuckDB
industry_daily 表(2024-05 ~ 2026-05)
- 指数数据:DuckDB
index_daily 表(沪深300)
- 数据替代诚实标注:所有参数假设均已标注
回测设置
| 项目 | 设置 |
|---|
| 回测区间 | 2025-02-14 ~ 2026-05-07(约1.2年) |
| 成交方式 | T+1 open(信号当日生成,次交易日成交) |
| 交易成本 | 单边0.15%(佣金万5 + 滑点千1) |
| 标的 | 沪深300指数 |
| 信号 | DAR信号:+1(多头)/-1(空头)/0(空仓) |
| 基准 | 沪深300买入持有 |
回测结果对比
| 指标 | 沪深300基准 | 吸收率策略(扣费后) |
|---|
| 总收益率(1.2年) | +23.69% | +3.83% |
| 年化收益率 | +19.84% | +3.25% |
| Sharpe | 1.261 | 0.447 |
| 最大回撤 | -10.49% | -6.31% |
| 月胜率 | — | 37.5% |
逐年收益
| 年份 | 策略收益 |
|---|
| 2025 | +5.09% |
| 2026 | -1.20% |
Guardrails 检查通过情况
| 检查项 | 状态 | 说明 |
|---|
| B1 幸存者偏差 | ✅ 不适用 | 策略基于行业指数,不涉及个股退市 |
| B2 交易日历对齐 | ✅ 通过 | 行业数据与HS300数据取交集日期对齐 |
| B3 数据排除 | ✅ 通过 | 排除NaN行业、数据不足的交易日 |
| B4 前瞻偏差 | ✅ T+1成交 | signal当日生成,signal+1日持仓 |
| B5 交易成本 | ✅ 单边0.15% | 佣金万5+滑点千1,调仓时收取 |
| B6 退市处理 | ✅ 不适用 | 指数策略 |
| B7 年化计算 | ✅ 资金曲线法 | cumprod(1+ret)计算 |
| B7b 最大回撤 | ✅ 序列法 | expanding max计算 |
| B8 随机基线 | ✅ 通过 | 策略年化3.25% vs 随机中位数-16.97%,超额+20.22% |
| B9 参数鲁棒性 | ⚠️ 部分通过 | 默认参数年化3.25%,W=150/K=5达17.60%;W=100组为负值,需注意参数选择 |
| B10 逐年一致性 | ⚠️ 1/2年正收益 | 回测周期仅2年,2026年小幅亏损 |
| B11 样本外验证 | ⚠️ 未通过 | 训练集+3.37% → 测试集-0.46%,衰减-3.83pt |
| B13 数据替代标注 | ✅ 已标注 | 所有参数假设和行业差异已注明 |
| B14 日期验证 | ✅ N/A | 方法学术标准,不依赖PDF |
| B15 短样本Sharpe | ⚠️ 回测仅1.2年 | Sharpe 0.447在合理范围,但周期短不可过度外推 |
差异分析
主要差异来源
| 差异来源 | 影响程度 | 说明 |
|---|
| 缺少情绪叠加信号 | 高 | 原文提到”叠加情绪指标后择时表现进一步改善”,纯DAR信号可能弱于原文 |
| 行业分类差异 | 中 | 使用含二级行业的混合分类 vs 原文28个一级行业,AR绝对值偏大 |
| 回测周期短 | 中 | 仅1.2年,市场处于上升趋势(HS300年化19.84%),择时策略天然不利 |
| 参数假设 | 低-中 | B9测试表明W=150/K=5组合年化17.60%,说明参数选择对结果影响较大 |
策略跑输买入持有的原因
- 回测期市场单边上涨:2025-02~2026-05 A股市场整体上行(HS300年化+19.84%),择时策略在有信号时才参与,持有期少
- DAR信号偏空为主:回测期内信号分布为112次多头 vs 8次空头 vs 177次空仓,空仓期数多,错过了部分上涨
- 成本拖累:频繁调仓信号转换产生交易成本
策略仍有价值的证据
- 显著优于随机基线:超额+20.22%,策略有真实择时能力
- 最大回撤更低:-6.31% vs -10.49%,风险控制能力优于基准
- 参数鲁棒性较好:15/20组参数组合为正收益,W=150组普遍年化12-17%
结论与改进方向
结论
吸收率(AR)风险识别框架在A股市场具有择时价值。复现结果表明,该策略在1.2年回测期内年化3.25%,虽跑输同期沪深300(+19.84%),但显著优于随机基线(中位数-16.97%)。核心价值在于风险识别能力——策略最大回撤仅-6.31%,不足基准的一半。
⚠️ 重要限制:回测周期仅1.2年,且未包含原文的情绪叠加信号。当前结果仅验证了策略方法论的方向性,不代表完整策略绩效。
改进方向
- 延长回测周期:获取更长的行业指数历史数据(当前仅2024-05起)
- 加入情绪指标:如原文所述,叠加市场情绪指标可显著改善择时表现
- 优化参数:B9显示W=150/K=5组合年化17.6%,窗口期选择是关键
- 扩展为行业配置策略:原文还讨论了基于AR的行业风险识别与配置,可进一步复现