# A Share Factor Validation

> 审计A股因子、选股规则和回测是否满足point-in-time、样本外、交易成本、市场机制、统计功效与多重检验要求。用于判断证据是否支持继续研究；不把回测等同于实盘有效，也不执行交易。

- Skill: `cyijun/a-share-factor-validation` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add cyijun/a-share-factor-validation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cyijun/a-share-factor-validation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cyijun (https://skillmd.com/u/cyijun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cyijun/a-share-factor-validation

---


# A股因子与回测验证

## 工作流

1. 预注册因子公式、经济机制、方向、持有期、股票池、基准、再平衡和主要指标，区分探索性与验证性研究。
2. 使用`china-market-data`建立严格PIT数据契约：原始价、复权因子、财务公告日、历史行业/指数成员、ST/退市/停牌状态。AKShare当前快照不得替代历史股票池。
3. 画清信号、决策和成交时间线；收盘信号不得假设同收盘成交，并处理T+1、涨跌停、停牌和不可成交。
4. 划分开发、验证和最终测试，或执行滚动样本外；最终测试集不能参与参数选择。
5. 建立佣金、印花税、过户/经手费、点差、冲击、滑点、换手和容量模型。
6. 报告IC分布、分组单调性、覆盖率、换手、行业/市值暴露、相对基准、真实交易笔数、交易胜率及区间、回撤和尾部风险。
7. 记录测试数量、相关因子、参数搜索和选择过程，处理多重检验。
8. 做子期间、行业、市值、市场状态、参数邻域、延迟、成本、极端点、替代数据源和时序保留重采样。
9. 给出`invalidated`、`inconclusive`、`research candidate`、`out-of-sample supported`或`production unverified`状态。

## 可执行研究链

按`预注册 → 数据快照 → 代码提交 → 运行 → 结果登记 → 样本外复核 → 衰减监控`推进，不允许只保存最终图表：

1. 先用`scripts/factor_registry.py`登记假设、因子族、数据SHA-256、代码Git SHA、样本边界和初始状态。
2. 将PIT清洗后的长表导出为CSV，至少包含`date,ts_code,factor,forward_return`；`forward_return`必须从信号后首个允许成交时点开始，可选`tradable`显式排除当时停牌或不可成交样本。
3. 运行`scripts/factor_validation.py input.csv --cost-bps <成本> --output report.json`。脚本执行逐日截面Spearman IC、块自助区间、分组多空、真实换仓事件和成本后结果；库函数另提供purged walk-forward、BH-FDR、CSCV-PBO与未来数据扰动检查。
4. 结果连同数据快照、参数搜索清单、失败实验和运行环境回写注册表。未经独立最终样本和真实数据链验收，状态最多为`research_candidate`或`production_unverified`。
5. 上线后监控覆盖率、IC分布、换手、容量、因子暴露和结构断点；衰减监控是新实验，不得事后改变原预注册门槛。

## 硬约束

- 不用固定IC、IR、Sharpe、回撤或胜率阈值单独宣告有效。
- 胜率和交易数来自完整开平仓，不用盈利日数量代替。
- IID随机重排不能冒充完整稳健性检验。
- 未运行的测试不得写成通过；Mock通过不等于真实Tushare链可用。
- 不宣称实盘收益，不下单。
- 脚本不替调用者推断涨跌停、停牌或T+1；这些字段必须由PIT数据链先构造，缺失时不能声称完成可交易回测。

## 输出契约

输出研究问题、数据契约、时点图、样本划分、成本、主要结果、稳健性、多重检验、偏差清单、状态和生产验证缺口。

需要详细闸门时读取[references/validation-gates.md](references/validation-gates.md)。

