用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/zyukyunman/vortex_quant --skill factor-evaluation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | factor-evaluation |
| description | 新因子多周期能力评测技能。Use when: 新增因子、评估因子预测能力、计算 IC_1d/IC_5d/IC_20d、做多空组合检验、判断因子是否值得纳入策略。 |
| argument-hint | 描述要评测的因子、数据频率、需要的周期(如 1d/5d/20d)以及是否需要多空分组检验 |
| tags | ["vortex","vortex/skill","vortex/research-domain"] |
| obsidian_links | ["[[因子研究与评测全流程说明]]","[[研究域设计说明书]]","[[实例策略开发流程]]"] |
基于 因子分析报告_峰岭谷信息.pdf 总结出的标准化评测流程,用于后续新增任意因子时的统一检验。
IC_1d / IC_5d / IC_20dgeneration_summary.json / research_cycle.json 中的 qualified、elite 或明确有研究价值的 rejected 候选,做更严格的多周期实证当输入来自 CogAlpha 时,不要只看因子值和 IC,还必须保留:
semantic_status:区分 proxy、faithful_proxy、mutation_proxy。lineage / parent_templates:判断是否是某个父模板的轻微重复。rejection_reasons:避免把已被 quality/fitness 标记的问题重新包装成新因子。research_direction:确认评测 horizon、universe 和用途是否匹配本轮研究目标。预测周期:因子值对未来多少交易日收益有预测力,例如 IC_1d、IC_5d、IC_20d调仓周期:策略多久换一次仓,例如日频、周频、月频、半年频两者相关,但不是一回事。
例子:
5d 很有效,但对 60d 之后迅速衰减所以不能因为策略是半年调仓,就默认只能看 120d 或 250d;
也不能因为因子在 5d 有效,就默认适合半年持有。
正确做法是:同时评测多个 horizon,再判断它是短线因子、中线因子还是长线因子。
1d / 5d / 10d / 20d20d / 40d / 60d60d / 120d / 250d如果一个因子:
IC_5d 很强,但 IC_60d、IC_120d 很弱
IC_20d、IC_60d、IC_120d 都为正且稳定
对每个截面日期,计算:
IC_1d: 因子值 vs 未来 1 个交易日收益的 Spearman 截面相关IC_5d: 因子值 vs 未来 5 个交易日收益的 Spearman 截面相关IC_20d: 因子值 vs 未来 20 个交易日收益的 Spearman 截面相关对于长线策略,不应只停留在这三个周期,建议扩展为:
IC_40d, IC_60dIC_120d, IC_250d为什么用 Spearman:
每个 horizon 至少输出 4 个指标:
IC_meanIC_stdICIR = IC_mean / IC_stdpositive_rate = IC > 0 的期数占比如果用月末截面做测试,positive_rate 可以理解为“正 IC 月份占比”。
默认做 5 日 horizon 的 5 分组检验:
long_meanshort_meanlong_short_5dsharpe这一步是为了验证“统计显著”是否能转成“交易可用”。
建议至少满足下面 4 条中的大部分:
|IC_mean_20d| > 0.03ICIR_20d > 0.3positive_rate_20d > 55%long_short_5d > 0如果是短周期因子(分钟聚合、盘口、情绪),重点看:
IC_1dIC_5dIC_20dlong_short_5d如果是中低频基本面因子,重点看:
IC_20dIC_60dICIR_20dICIR_60d如果是低换手长持有策略(季度 / 半年 / 年度),重点看:
IC_60dIC_120dIC_250dICIR 和正 IC 占比| 场景 | 推荐评测周期 | 主要用途 |
|---|---|---|
| 高频 / 微观结构因子 | 1d, 5d, 10d, 20d | 判断短期 alpha 衰减速度 |
| 月度调仓策略 | 5d, 20d, 40d | 看月内是否持续有效 |
| 季度调仓策略 | 20d, 60d, 120d | 看一个季度内是否维持预测力 |
| 半年调仓策略 | 20d, 60d, 120d, 250d | 判断因子是否适合低换手持有 |
| 年度 / 超低换手策略 | 60d, 120d, 250d | 判断是否为真正长线因子 |
因为 20d 只回答“未来约 1 个月收益是否可预测”。
如果策略是半年一调仓,那么只看 20d 会有两个风险:
所以:
20d 可以作为中短期参考60d / 120d250dweight_horizon=2020 vs 6020 vs 60 vs 12060 vs 120 vs 250不要先假设某个 horizon 正确,而应把它当成待验证对象。
以峰岭谷因子报告为例,评测时至少回答这 3 个问题:
报告中的典型口径:
ridge_minutes: IC_1d = 0.1551, IC_5d = 0.3080+10.72%这说明一个好因子不能只看一个 IC 均值,还要同时看:
当前支持:
FactorAnalyzer.ic_report_multi_horizon()FactorAnalyzer.long_short_report()python scripts/run_factor_test.py --forward-days-list 1,5,20 --ls-horizon 5 --weight-horizon 20新增因子后,按下面顺序检查:
IC_1d / IC_5d / IC_20dICIR_20d 和 positive_rate_20dSCORING_FACTORSIC_mean 为正,但 positive_rate 很低IC 看起来高,但多空收益为负python scripts/run_factor_test.py \
--ic-start 20190101 \
--ic-end 20260327 \
--ic-months 60 \
--forward-days-list 1,5,20,60,120,250 \
--ls-horizon 5 \
--weight-horizon 20 \
--freq SA
如果是半年调仓策略,更推荐至少这样跑一轮:
python scripts/run_factor_test.py \
--ic-start 20190101 \
--ic-end 20260327 \
--ic-months 60 \
--forward-days-list 20,60,120,250 \
--ls-horizon 20 \
--weight-horizon 120 \
--freq SA