简体中文 | English
你的回测夏普 3.2,实盘亏成狗?多半是回测在骗你。这个 Claude Code skill 专门揪出让回测虚高的陷阱,给你一份红色「回测体检报告」。
quant-backtest-guard(回测照妖镜)是一个开源的量化回测审查工具 / Claude Code skill,逐项揪出会让回测虚高、实盘亏钱的工程陷阱——未来函数 / 前视偏差、过拟合 / 数据窥探、幸存者偏差、成交真实性与成本,按严重度定位到 文件:行 出体检报告。
本仓是独立单装版(只装回测照妖镜一个 skill)。它同时也作为
backtest-guardskill 收录在套装 latency-hunter-toolkit 里——如果你想要一整套量化工程审查 skill(回测照妖镜 / 热路径猎手 / 连接器锻造 / 数据照妖镜 / 风控体检),直接装那个插件包即可。
把你的策略代码丢给它,它不夸你,只挑刺:
🔴 回测体检报告 — 致命 2 / 高危 3 / 提示 4
────────────────────────────────────────────
✗ [致命] 未来函数 strategy.py:88
用 close[i+1] 预测 close[i],回测里你已经偷看了明天
✗ [致命] 标签泄漏 features.py:42
归一化用了全样本 mean/std,未来信息泄进了训练集
✗ [高危] 未建模手续费 backtest.py:120
下单零成本,高频策略实盘每笔吃掉的费率被忽略
✗ [高危] 未建模滑点 backtest.py:124
全部以收盘价成交,没有滑点/冲击成本,成交假设过于理想
✗ [高危] 参数过拟合 optimize.py:31
网格搜索 4000 组参数只报最优一组,无样本外验证
────────────────────────────────────────────
结论:夏普 3.2 在当前实现下不可信。
剔除上述偏差后,这类回测的夏普通常大幅缩水。
实盘上线前,请先修掉 2 个致命项。
它不会告诉你这个策略能赚钱。它只告诉你:你现在看到的赚钱,有几分是真的。
quant-backtest-guard 是一个 Claude Code skill。你把量化回测代码交给它,它会像一个挑剔的风控/工程审查官一样逐行体检,揪出那些让回测曲线虚高、却在实盘原形毕露的陷阱,最后输出一份分级(致命 / 高危 / 提示)的「回测体检报告」。
漂亮的回测曲线是量化里最贵的谎言。
夏普 3、年化 200%、最大回撤 5%——这些数字看着让人心跳加速,但其中相当一部分是实现 bug而不是 alpha:偷看了未来数据、把成本算成了零、在同一份数据上把参数磨到包浆。等真金白银上了实盘,曲线立刻翻脸。
人肉 review 这些坑很累、很容易漏,而且写策略的人往往是最不愿意承认自己回测有问题的人。这个 skill 的价值就是:当一个不带感情、专挑毛病的审查者,在你投钱之前先泼一盆冷水。
| 类别 | 一句话 | 典型表现 |
|---|---|---|
| 1. 未来函数 / 前视偏差(Look-ahead) | 回测里偷看了当时根本拿不到的信息 | 用 close[i+1] 预测 close[i]、用全样本统计量做归一化、信号在 K 线收盘前就「提前」生效、标签泄漏到特征里 |
| 2. 过拟合 / 数据窥探(Overfitting) | 把参数在同一份历史上磨到完美,没有样本外 | 海量网格搜索只报最优一组、无 walk-forward / 样本外验证、反复在同一段数据上调参、训练/测试集划分穿越 |
| 3. 没算成本(Costs & Frictions) | 把实盘真实存在的摩擦当成零 | 不建模手续费、不建模滑点和冲击成本、以理想价(收盘价/中间价)成交、忽略最小变动单位、假设无限流动性 |
这三类是把回测吹成神、把实盘打回原形的头号元凶。
quant-backtest-guard/
├── backtest-guard/
│ ├── SKILL.md # skill 主入口:审查流程与报告格式
│ └── references/
│ └── backtest-pitfalls.md # 陷阱清单与检测规则(知识库)
├── LICENSE # MIT
├── README.md
└── README.en.md
前置条件:已安装 Claude Code。
# 1. 克隆仓库
git clone https://github.com/paidaxing1234/quant-backtest-guard.git
cd quant-backtest-guard
# 2. 把 skill 拷进 Claude Code 的 skills 目录
cp -r backtest-guard ~/.claude/skills/backtest-guardWindows 用户:skills 目录在
C:\Users\<你的用户名>\.claude\skills\,把backtest-guard整个文件夹拷进去即可(用资源管理器复制粘贴,或在 PowerShell 里Copy-Item -Recurse)。
安装后重启 Claude Code,让它重新加载 skills。
在你的量化项目里打开 Claude Code,然后任选一种方式:
- 自然语言触发:把策略 / 回测代码丢给它,说一句
「用回测照妖镜审一下这份策略」
- 显式调用 skill:
/backtest-guard
它会扫描你的回测相关代码,按致命 / 高危 / 提示三级输出体检报告,并指出每个坑所在的文件名和行号,方便你直接跳过去改。
Q:它能告诉我这个策略能不能赚钱吗? A:不能。quant-backtest-guard 只审查回测代码的工程正确性,不预测收益、不评估 alpha、不对策略未来是否盈利下任何结论。报告「干净」只代表没扫到这几类常见实现陷阱,不代表策略能赚钱。
Q:它和人工 code review 有什么区别?
A:它是一个不带感情、只挑毛病的专用回测审查器,按固定的陷阱清单(未来函数 / 过拟合 / 成本缺失等)逐项体检,并把每个问题定位到 文件:行。它不替代人工 review,而是帮你把最容易漏、写策略的人最不愿意承认的工程坑系统性地兜出来,再交给人做最终判断。
Q:它支持哪些回测框架? A:它审查的是 Python 量化回测代码本身的实现逻辑(信号生成、数据加载、参数寻优、成交与成本建模),不绑定特定框架,对 backtrader / vectorbt / zipline 等手写或主流框架的回测代码都能扫。框架针对性的专项检查仍在持续补充,欢迎 PR。
Q:报告显示「干净」就代表能上实盘了吗? A:不代表。「干净」只意味着没扫到本工具覆盖的这几类常见工程陷阱。静态 / 启发式审查有上限,可能漏报也可能误报;上实盘前请务必自行做样本外验证、模拟盘 / 小资金验证与独立风控。
Q:它会给我荐股或买卖建议吗? A:不会。它不是投资建议,不预测行情,不推荐任何标的、策略或参数,不承诺任何收益。一切交易决策与资金风险由你自己承担。
- 这是一个工程审查工具,审查的是回测代码实现的正确性,不是策略本身的盈利能力。
- 它不是投资建议,不预测行情,不推荐任何标的、策略或参数。
- 它不承诺任何收益。报告「干净」只代表没扫到这几类常见实现陷阱,不代表策略能赚钱,更不代表实盘安全。
- 静态/启发式审查有其上限,可能漏报也可能误报。最终判断与一切交易决策、资金风险由你自己承担。
- 真金白银上实盘前,请务必自行做样本外验证、模拟盘 / 小资金验证与独立风控。
欢迎 PR 和 issue:
- 发现新的回测陷阱模式 → 往
backtest-guard/references/backtest-pitfalls.md加规则。 - 报告误报 / 漏报 → 开 issue,附上能复现的最小代码片段。
- 改进报告格式、补充框架(backtrader / vectorbt / zipline 等)的针对性检查 → 直接发 PR。
提交前请确保改动聚焦、描述清楚复现场景。
同作者 paidaxing(Latency Hunter) 的一人量化工具矩阵:
- latency-hunter-toolkit —— 量化工程审查 Claude Code 插件包(5 个 skill:回测照妖镜 / 热路径猎手 / 连接器锻造 / 数据照妖镜 / 风控体检),可
/plugin install。本仓的套装版即收录于此。 - crypto-trading-framework —— 低延迟 C++ 实盘量化交易框架(Binance / OKX)+ pybind11 策略层 + Vue3 监控前端。
- patrick-skill —— 派大星语气的 Claude Code skill。