Commonly-used-high-value-skills factor-backtester
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.
install
source · Clone the upstream repo
git clone https://github.com/seaworld008/Commonly-used-high-value-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/seaworld008/Commonly-used-high-value-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/openclaw-skills/factor-backtester" ~/.claude/skills/seaworld008-commonly-used-high-value-skills-factor-backtester && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/seaworld008/Commonly-used-high-value-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/openclaw-skills/factor-backtester" ~/.openclaw/skills/seaworld008-commonly-used-high-value-skills-factor-backtester && rm -rf "$T"
manifest:
openclaw-skills/factor-backtester/SKILL.mdsource content
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": "OperatingProfitMargin", "periods": [ { "date": "2025-01-31", "long_ret": 0.05, "short_ret": 0.02, "bench_ret": 0.03, "turnover": 0.12 }, { "date": "2025-02-28", "long_ret": -0.01, "short_ret": -0.04, "bench_ret": -0.02, "turnover": 0.08 } ], "transaction_cost": 0.0015 }
回测报告摘要模板 (Backtest Summary)
### 📊 [因子名] 回测报告摘要 **1. 核心表现 (Performance)**: - **年化收益**: [XX%] - **夏普比率**: [1.85] (显著性阈值: > 1.5) - **最大回撤**: [-8.2%] **2. 统计显著性 (Significance)**: - **平均 IC**: [0.045] - **IC IR**: [0.65] **3. 换手与成本分析 (Cost Analysis)**: - **月均换手率**: [25%] - **预估成本侵蚀**: [年化约 4.5%] - **净收益**: [依然为正,具备实盘价值] **4. 最终结论 (Verdict)**: > [✓] 建议进入深度研究阶段 > [!] 信号较弱,仅可作为次要辅助 > [X] 严重过拟合或成本无法覆盖收益,拒绝
快速回测执行示例
# 针对特定数据文件运行回测脚本并输出 PDF 报告 python scripts/backtest_factor.py --input assets/factor_alpha_v1.json --plot --save report.pdf
进阶应用场景 / Advanced Use Cases
1. 因子相关性矩阵构建
- 自动计算新因子与现有“全家桶因子”(如:Size, Value, Momentum)的相关性,确保新信号带来的不是重复的信息(Collinearity)。
2. 自动参数寻优
- 利用
自动遍历不同的参数组合(如:3 个月均值 vs 6 个月均值),并绘制参数热力图。factor-backtester
边界与限制 / Boundaries
- 生存者偏差 (Survivorship Bias):如果数据集中不包含那些已经退市或破产的公司,回测结果会虚高。
- 未来函数 (Look-ahead Bias):严禁在 T 时刻使用 T+1 时刻才公布的数据(如:用 4 月份公布的年报去回测 1 月份的交易)。
- 成交量与冲击成本:小市值因子的回测往往忽略了在大额交易时的股价冲击(Price Impact),导致实盘无法成交。
- 过度拟合 (Overfitting):在海量因子中强行寻找规律,可能会找到由于偶然性产生的收益曲线。
- 数据回补延迟:财报公布日不等于财报数据录入数据库的日期。
最佳实践总结
- 简单至上:逻辑简单、可解释性强的因子往往比复杂的黑盒因子更稳健。
- 扣除成本:永远不要相信未扣除手续费和滑点的收益曲线。
- 样本外验证 (Out-of-sample):将数据分为两半,一半用于训练,另一半用于验证。
- 记忆同步:将回测的关键指标及失败原因记入
,防止重复开发。MEMORY.md - 重视换手率:换手率超过 60% 的月频策略在当前的 A 股或美股环境下很难盈利。
- 多市场验证:一个好的因子应该在不同的市场(如 A 股和美股)同时具备一定的解释力。