| name | factor-backtester |
| description | Use when testing factor signals, running long-short spread backtests, checking hit rate and turnover, or sanity-checking whether a ranking signal survives basic transaction cost assumptions. |
| zh_description | 用于factor、回测,支持投资研究、风险评估和报告生成。 |
| version | 1.0.0 |
| author | seaworld008 |
| source | in-house |
| source_url | |
| tags | ["backtester", "factor", "finance"] |
| created_at | 2026-03-18 |
| updated_at | 2026-03-20 |
| quality | 2 |
| complexity | intermediate |
Factor Backtester (因子回测器)
在投入重金之前,先验证你的因子(Factor)是否真的具备“阿尔法”收益。本技能旨在提供一个轻量级的因子筛选层,帮助量化研究员和投资经理快速验证信号的有效性,并识别那些仅在“理想实验室”中存在的伪因子。
安装与前提条件
pip install pandas numpy matplotlib scipy pyfolio
npx clawhub install factor-backtester
触发条件 / When to Use
- 新信号研发 (Signal Research):验证一个新的财务指标(如:研发投入强度)是否具备长期选股能力。
- 横截面排名测试 (Cross-sectional Ranking Tests):对比不同因子在全市场范围内的预测力。
- 投资经理思路验证 (PM Idea Review):将宏观直觉转化为可量化的因子回测。
- 深度工程前的筛选 (Lightweight Screening):在大规模分布式回测之前,先进行快速的“可行性扫描”。
- 因子失效诊断:当某个传统因子(如:估值因子)近期表现不佳时,进行历史回看以判断其是否已经永久失效。
核心能力 / Core Capabilities
1. 信号准备与预处理 (Signal Prep)
- 操作步骤:
- 准备分周期的长端收益(Long Return)、短端收益(Short Return)及基准收益(Benchmark Return)。
- 进行数据的去极值处理(Winsorization)和标准化(Z-score)。
- 处理缺失值,并标记“可交易性”过滤器(如:剔除停牌、ST 或新股)。
- 最佳实践:始终保留至少 5-10 年的历史跨度,以覆盖完整的经济周期。
2. 核心指标计算 (Metrics Calculation)
- 操作步骤:
- 运行
scripts/backtest_factor.py。
- 计算 IC/IR (Information Coefficient):衡量预测值与实际收益的相关性。
- 计算 夏普比率 (Sharpe Ratio)、最大回撤 (Max Drawdown) 以及 胜率 (Hit Rate)。
- 分析 换手率 (Turnover) 对最终收益的侵蚀。
- 最佳实践:除了看总收益,更要看分年度、分行业的收益稳定性。
3. 多空对冲模拟 (Long-Short Simulation)
- 操作步骤:
- 模拟多空对冲(Long-Short Spread)策略,观察因子的纯净阿尔法。
- 识别因子的“行业暴露”:该收益是真的来自因子,还是仅仅因为重仓了某个行业?
- 最佳实践:在计算收益时,显式扣除双边 0.1% - 0.3% 的交易成本(Transaction Costs)。
4. 稳健性与压力测试 (Robustness Check)
- 操作步骤:
- 在不同市场环境下(牛市、熊市、震荡市)进行分段回测。
- 改变回测起点或调仓周期(如:从周频改为月频),观察信号是否依然存活。
- 最佳实践:如果一个小变化导致收益巨幅波动,该因子大概率存在“过拟合”风险。
常用命令/模板 / Common Patterns
回测输入数据 JSON 模板 (Backtest Data JSON)
{
"factor_name"