回测运行管理

📎 引用文件

本文引用的文件 - runs_routes.py - models.py - uploads_routes.py - api_server.py

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细端点说明
  6. 依赖关系分析
  7. 性能与使用建议
  8. 故障排查指南
  9. 结论

简介

本文件为 Vibe-Trading 的“回测运行管理”API 提供完整、可操作的文档。内容覆盖: - 所有与回测运行相关的 HTTP 端点(列表查询、详情获取、代码下载等) - 每个端点的 URL 模式、HTTP 方法、请求参数、响应模型与状态码 - RunInfo 与 RunResponse 数据结构的字段说明 - 回测运行状态管理、结果分析与图表数据的 API 使用方式 - 文件上传/下载、批量操作与分页查询的实现说明

项目结构

与回测运行管理直接相关的后端实现位于 agent 模块中,关键文件如下: - runs_routes.py:定义 /runs 相关的所有路由(列表、详情、代码/Pine 脚本下载) - models.py:定义共享的 Pydantic 模型(RunInfo、RunResponse、BacktestMetrics、Artifact、RAGSelection 等) - uploads_routes.py:提供通用文件上传能力(用于策略或附件上传) - api_server.py:FastAPI 应用装配与路由注册入口

graph TB A["FastAPI 应用<br/>api_server.py"] --> B["Runs 路由<br/>runs_routes.py"] A --> C["上传路由<br/>uploads_routes.py"] B --> D["运行时数据读取<br/>state.json / artifacts/*.csv / *.json"] B --> E["UI 服务<br/>build_run_analysis / load_run_context"] C --> F["上传目录<br/>get_uploads_dir()"]

图示来源 - api_server.py:187-225 - runs_routes.py:226-345 - uploads_routes.py:51-179

章节来源 - api_server.py:187-225

核心组件

章节来源 - runs_routes.py:226-345 - models.py:10-97 - uploads_routes.py:51-179 - api_server.py:187-225

架构总览

以下序列图展示一次“获取回测运行详情”的典型调用流程:客户端发起 GET /runs/{run_id},服务端校验路径参数、定位 run 目录、加载状态与指标、可选构建图表数据,最终返回 RunResponse。

sequenceDiagram participant Client as "客户端" participant API as "FastAPI 应用" participant Runs as "runs_routes" participant FS as "文件系统" participant UI as "ui_services" Client->>API : GET /runs/{run_id}?chart_payload=summary|full&chart_symbol=xxx API->>Runs : 路由分发 + 鉴权 Runs->>Runs : 校验 path 参数 Runs->>FS : 读取 state.json / artifacts/*.csv / *.json alt 需要图表元数据 Runs->>UI : build_run_analysis(...) UI-->>Runs : price_series / indicator_series / trade_markers / run_logs end Runs-->>Client : RunResponse (含 metrics / equity_curve / trade_log / artifacts)

图示来源 - runs_routes.py:302-343 - runs_routes.py:52-216

详细端点说明

1) 列出最近回测运行

章节来源 - runs_routes.py:345-444

2) 获取单个回测运行详情

章节来源 - runs_routes.py:302-343

3) 下载运行代码(信号引擎)

章节来源 - runs_routes.py:262-281

4) 下载 Pine 脚本

章节来源 - runs_routes.py:283-300

5) 文件上传(用于策略/附件)

章节来源 - uploads_routes.py:119-178

6) 获取影子账户报告(辅助)

章节来源 - uploads_routes.py:96-117

数据模型说明

RunInfo(列表项)

章节来源 - models.py:42-54

RunResponse(运行详情)

章节来源 - models.py:10-97

其他模型

章节来源 - models.py:10-40

依赖关系分析

graph LR S["api_server.py"] --> R["runs_routes.py"] S --> U["uploads_routes.py"] R --> M["models.py"] R --> UI["ui_services (外部)"] U --> P["config.paths.get_uploads_dir()"]

图示来源 - api_server.py:187-225 - runs_routes.py:226-345 - uploads_routes.py:51-179

章节来源 - api_server.py:187-225

性能与使用建议

[本节为通用性能建议,无需具体文件引用]

故障排查指南

章节来源 - runs_routes.py:302-343 - uploads_routes.py:96-178

结论

Vibe-Trading 的回测运行管理 API 提供了完整的运行生命周期查看与产物访问能力: - 列表与详情:/runs 与 /runs/{run_id} - 代码与脚本:/runs/{run_id}/code 与 /runs/{run_id}/pine - 文件上传:/upload - 数据模型:RunInfo 与 RunResponse 清晰表达运行元数据与结果 - 安全与性能:鉴权保护、参数校验、图表载荷优化与上传限流

结合上述端点与模型,可构建高效的回测结果浏览、分析与可视化系统。