SuperAPI AI 工具集

backtest-diagnose

数据与分析

查看项目

更新于 10-15 22:13

技能介绍

用途:当回测报错失败或结果异常时,用该技能定位根因并修复问题。

诊断流程:先用 read_file 查看 artifacts/metrics.csv、equity.csv、trades.csv,再读 code/signal_engine.py 与 config.json,按错误分类判断根因,用 edit_file 修改代码后重跑回测,并用 read_file 检查新的 metrics.csv 验证。

错误分类:运行时错误(exit_code != 0)中,ImportError 多为缺依赖,可 bash("pip install xxx");KeyError 为列名不匹配,核对 data_map 实际列名;IndexError 为数据为空或长度不足,加长度检查;TypeError 为信号类型错误,确保返回值为 pd.Series。逻辑 Bug 包括:trade_count=0 为信号逻辑问题;首笔交易晚于回测开始两年以上属数据过滤问题;资金利用率低于 50% 属仓位设置问题;结束时仍有持仓属退出时机问题。数据错误包括未取到数据(检查 config.json)与数据过少(扩大日期范围)。

数据源错误忽略清单:若出现 provider 侧 no data available、rate limit、API limit、daily limit 等关键词,不要改代码,属数据提供方问题,需检查 API token、切换数据源或等待额度重置。

硬性门槛:metrics.csv 存在且非空、equity.csv 存在且非空、trade_count > 0、净值序列无 NaN、exit_code == 0。任一门槛不通过则不产生证据行,并以固定机器可读 token 跳过(如 hard-gate:exit-nonzero、hard-gate:metrics-missing、hard-gate:zero-trades、hard-gate:equity-empty、hard-gate:equity-nan)。修复后重跑,并用 refresh_strategy_evidence(agent 工具 / MCP 工具,或 vibe-trading strategy-evidence refresh --manifest <path>)刷入证据缓存。

修复原则:用 edit_file 精确修改而非 write_file 重写整文件(除非结构根本损坏);只修 bug,未经用户明确要求不改策略逻辑;一次只修一个问题,修完立即重跑;最多 3 轮修复。

修复后校验:AST 语法检查 bash("python -c "import ast; ast.parse(open('code/signal_engine.py').read()); print('OK')"");文件须含 class SignalEngine;该类须含 def generate 方法;重跑回测并验证结果。

action_items 写作规则:用“把 X 从 A 改为 B”或“在 signal_engine.py 中添加 X 逻辑”的格式,具体到参数值、文件名与函数名,至少 2 条。其他细节暂未提供。