这是一个中证 500 指数增强研究的完整实现:从 Tushare Pro 原始数据出发,构建历史成分和时点一致因子,完成因子检验、信号合成、收益校准、风险估计、组合优化、次日开盘执行及结果审计。
v2.2 沿用既定策略与回测结果,进一步统一研究口径、参数说明和复现入口。发布结论受预先登记门槛约束;未通过指标、未采用方案和已经揭示的负样本外结果均随版本保留。
| 层级 | 样本与口径 | 排序或收益质量 | 风险与稳定性 |
|---|---|---|---|
| 单因子 | 2017—2025 全样本审计;42 个候选中 14 个合格 | 定向 Rank IC 中位数 0.0209;费后 Q5−Q1 Sharpe 中位数 0.631 | 费后多空最大回撤中位数 −18.63% |
| 合成信号 | 2020—2025 滚动年度折;236 个有效决策日 | 日均 Rank IC 0.0345;Q5−Q1 每 5 个交易日平均 9.87 个基点,年化 Sharpe 0.498 | 分组收益最大回撤 −9.82%;该层未扣交易成本 |
| 主动组合 | 2020—2025 六个互不重叠年度折;已扣模型化成本 | 年化主动收益 1.64%;信息比率 0.388;5/6 年为正 | 主动最大回撤 −6.64%;组合绝对 Sharpe 0.601 |
单因子指标用于描述因子池质量,不是样本外业绩;合成信号的分组收益为费前诊断;只有组合层计入完整执行和交易成本。三类指标不能直接横向比较。
14 个审计合格因子覆盖估值、风险、流动性、质量、成长、动量和应计七类暴露。单因子 Rank IC 与费后分组 Sharpe 并非严格单调:低波动类因子排序能力较强,但部分因子的分组收益质量较弱;现金流、盈利收益率和长期动量的 Rank IC 不居前,费后 Sharpe 反而较高。因此组合阶段保留家族分散和成本门槛,不按单一 IC 排名集中配权。
| 指标 | 结果 |
|---|---|
| 评价区间 | 2020-01-08 至 2025-12-31 |
| 组合 / 基准累计收益 | 81.34% / 65.22% |
| 累计相对收益 | 9.76% |
| 年化主动收益 / 信息比率 | 1.64% / 0.388 |
| 组合 / 基准绝对 Sharpe(无风险利率取 0) | 0.601 / 0.516 |
| 组合 / 基准最大回撤 | −35.67% / −35.91% |
| 跟踪误差 / 主动最大回撤 | 4.45% / −6.64% |
| CAPM 年化 α / β | 2.02% / 0.956 |
| 正主动收益年度 / 最差年度累计主动收益 | 5/6 / −0.34% |
| 平均单期换手 / 执行成本 | 2.22% / 11.05 个基点 |
| 成交金额完成率 / 优化求解率 | 99.74% / 98.96% |
| 年度 | 年化主动收益 |
|---|---|
| 2020 | 1.70% |
| 2021 | 2.64% |
| 2022 | 3.14% |
| 2023 | 0.16% |
| 2024 | −0.36% |
| 2025 | 2.62% |
2023 年折内没有因子通过筛选,模型输出零主动预测;该年的小幅主动收益来自基准跟踪和模拟执行偏差,不能归因于选股信号。
2024 年累计主动收益为 −0.34%,按该年度样本长度年化后为 −0.36%;两处数字来自同一收益序列。现有聚合证据不足以把该结果可靠归因于某个因子或执行环节,因此只将其保留为年度稳定性的反例。
预先登记的 12 项发布门槛通过 8 项。未通过的四项为:年化主动收益 1.64%(门槛 3.00%)、信息比率 0.388(门槛 0.800)、主动最大回撤 −6.64%(门槛 −6.00%)和滚动 β 偏离 95% 分位数 0.163(门槛 0.100)。这些结果随版本公开保留,没有事后调整门槛。
脱敏汇总见 v2-public-summary.json,来源与图片指纹见 v2-report-manifest.json。
Tushare 数据与请求缓存
→ 历史成分、复权行情、行业、交易状态和财务可得时点
→ 截面因子处理与折内筛选
→ 因子家族合成与滚动收益校准
→ 协方差、β 和主动风险估计
→ 约束组合优化
→ 下一交易日开盘执行、成本与容量模拟
→ 年度滚动评价、完整性审计和聚合报告
| 区间 | 用途 |
|---|---|
| 2016 | 长窗口因子、复权和风险估计预热 |
| 2017—各评价折开始前 | 扩展训练窗和折内因子筛选 |
| 2020—2025 | 六个互不重叠的年度评价折 |
标签为决策日后第一个开盘价至第六个开盘价的个股收益相对中证 500 收益。训练样本必须在拟合日前完成标签观测,并额外隔离 5 个交易日。因子在每日截面内完成稳健缩尾、市值和行业中性化及标准化。
候选池包括 25 个价量因子和 17 个时点一致基本面因子。每次拟合在最近 156 个训练截面上检查覆盖率、IC 方向和稳定性、Newey–West 统计量、费后五分组价差、信号变化率及相关性;最终保留 5—10 个因子,每个家族最多 2 个,每个相关簇最多 1 个。
通过筛选的因子先在经济家族内按预设方向等权,再在有效家族之间等权:
单因子权重不高于 20%,单一因子家族不高于 35%。滚动岭回归将合成分数映射为未来 5 个交易日的预期主动收益。
两项备选方法没有进入发布方案:扩展因子池提高了全期汇总收益,但削弱年度稳定性;残差信号袖套在逐年折外证据不足时自动回退为零权重。否决依据见 TECHNICAL.md 的未采用方案。
组合相对当期中证 500 权重求解收益、风险、交易成本和主动偏离之间的平衡:
约束包括多头满仓、单票权重 3%、单票主动权重 ±1%、行业主动暴露 ±2%、主动 β ±0.05、年化跟踪误差 5%、常规单边换手 35% 和单次交易 5% ADV。执行发生在下一交易日开盘,先卖后买,并重新检查停牌、涨跌停、ST、现金和成交容量。
完整因子定义、时点规则、模型与指标口径见 TECHNICAL.md。
| 模块 | 已实现内容 |
|---|---|
| 数据 | Tushare 请求缓存、年度分区、动态指数成分、复权、历史行业、名称与停复牌区间、质量检查 |
| 因子 | 42 因子目录、财务可得时点、截面处理、IC、五分组收益和跨年稳定性审计 |
| 预测 | 折内筛选、家族合成、滚动岭回归校准、成熟标签和隔离期审计 |
| 风险与组合 | Ledoit–Wolf 协方差、60 日 β、主动权重、行业、换手、跟踪误差和容量约束 |
| 执行 | 次日开盘、先卖后买、不可交易方向、部分成交、印花税、线性成本和冲击成本 |
| 工程 | 配置驱动实验、年度折并行、断点恢复、数据与源码指纹、聚合报告和离线测试 |
| 研究环节 | 主要实现 |
|---|---|
| 因子与时点处理 | 价量因子与截面处理、因子目录、基本面因子 |
| 筛选、合成与校准 | 折内筛选、家族合成、滚动收益校准 |
| 风险、优化与执行 | 风险模型、主动组合优化器、事件回测与执行 |
| 年度验证与报告 | 年度折调度和审计、v2 聚合证据生成 |
要求 Python 3.12。Tushare Token 只写入被 Git 忽略的 .env。当前 2016—2025 数据快照约占 2.1 GiB,一次完整发布研究的年度制品约占 4.3 GiB,建议至少预留 10 GiB 空间。最近一次 12 任务完整复算的清单记录约 4 小时墙钟时间;实际下载量和耗时会随缓存、处理器及并行数变化。本次研究使用具备 2000 积分权限的 Tushare Pro 账户,具体接口权限仍以运行时探测结果为准。
以下封装脚本面向 Windows PowerShell;核心 Python 命令本身不依赖 Windows。
uv sync --extra dev --extra report
Copy-Item .env.example .env
uv run python -m csi500_alpha doctor --config configs/full.yaml
.\scripts\download_tushare.ps1
.\scripts\download_eligibility.ps1
.\scripts\download_financial.ps1
.\scripts\run_factor_audit.ps1
.\scripts\run_v2_release.ps1 -Mode Run -Workers 4
uv run pytest
uv run ruff check .
uv run mypy srcLinux 和 macOS 可直接调用同一组命令行入口,例如:
uv run python -m csi500_alpha download-data --config configs/full.yaml
uv run python -m csi500_alpha download-eligibility --config configs/full.yaml
uv run python -m csi500_alpha download-financial --spec configs/financial_core.yaml
uv run python -m csi500_alpha run-factor-audit --spec configs/factor_audit_v2.yaml
uv run python -m csi500_alpha run-annual-study --annual configs/annual/a32_turnover_budgeted_residual_v1_canonical.yaml --workers 4市场数据和逐行研究制品不随仓库分发。使用者需要凭自己的 Tushare 权限构建数据后复算;仓库中的 JSON 和 PNG 只保留不可逆聚合证据。
- 原创代码采用 MIT License。Tushare 数据受其自身条款约束,MIT 许可证不授予市场数据再分发权。
- 2020—2025 年用于滚动研究和方法选择,不是新的独立最终留出样本。v1 已揭示的 2026 年上半年结果保留在 v1 README,不能再次视为独立检验。
- 成本、冲击和容量均为模型估计;回测结果不代表实盘业绩,也不构成投资建议。
- 执行层采用连续份额记账,未覆盖 100 股整数手和完整公司行动台账。

