Files
PolyHermes/docs/zh/backtest
WrBug cdd02e9f3d feat: 实现回测功能
## 功能概述
实现完整的回测功能,支持基于历史数据模拟跟单策略的执行效果。

## 后端实现
- 数据库:新增 backtest_task 和 backtest_trade 表(V27迁移脚本)
- 实体类:BacktestTask、BacktestTrade
- Repository:BacktestTaskRepository、BacktestTradeRepository
- Service:
  - BacktestService:回测任务管理(CRUD)
  - BacktestDataService:从 Polymarket Data API 获取历史交易数据
  - BacktestExecutionService:回测算法核心实现
  - BacktestPollingService:定时轮询执行回测任务
- Controller:BacktestController(6个API接口)
- DTO:BacktestDto、TradeData
- 错误码:新增回测相关错误码和国际化消息

## 前端实现
- 页面组件:
  - BacktestList:回测任务列表
  - BacktestCreate:创建回测任务
  - BacktestDetail:回测详情(含图表)
  - BacktestChart:资金曲线图表(使用 ECharts)
- 类型定义:backtest.ts
- API 服务:集成所有回测接口
- 国际化:支持中英文

## 核心特性
- 回测天数限制:1-15 天
- 数据获取:直接从 Polymarket Data API 获取历史交易(不使用缓存表)
- 任务执行:同一时刻只执行一个任务,按创建时间顺序执行最早创建的任务
- 回测算法:完整实现市场结算、卖出匹配、价格容忍度、每日订单限制等规则
- 实时进度:支持任务进度更新和实时轮询

## 文档更新
- BACKTEST_PRD.md:产品需求文档
- BACKTEST_TECHNICAL_DESIGN.md:技术设计文档
- BACKTEST_REVIEW_CHECKLIST.md:设计评审检查清单

## 其他修改
- 移除 max_position_count 配置(V26迁移脚本)
- 移除 BacktestSyncService(不再需要实时同步)
- 修复前后端编译错误
2026-01-31 07:27:36 +08:00
..
2026-01-31 07:27:36 +08:00

跟单回测功能文档

📚 文档清单

本目录包含跟单回测功能的完整设计文档:

核心文档

  1. BACKTEST_PRD.md - 产品需求文档

    • 功能概述与用户故事
    • UI/UX设计详细说明
    • 业务规则与数据要求
  2. BACKTEST_TECHNICAL_DESIGN.md - 技术设计文档

    • 数据库表结构设计
    • RESTful API接口规范
    • 后端服务架构
    • 前端组件设计
    • 回测算法实现
  3. BACKTEST_REVIEW_CHECKLIST.md - 设计审查清单

    • 设计完整性检查
    • 边缘场景处理
    • 风险评估与缓解

🎯 核心特性

  • 完全复用现有跟单配置参数
  • 实时市场结算(按 endDate 检查)
  • 严格余额检查(避免过于乐观的回测)
  • 支持按Leader筛选、按收益排序
  • 详细的交易记录和资金曲线图

📖 阅读建议

产品经理: 先阅读 PRD,再查看审查清单中的关键决策点

技术负责人: 先阅读技术设计文档,再查看审查清单评估风险

开发工程师: 按顺序阅读所有文档,重点关注技术设计的实现细节

🔄 文档版本

  • 创建日期: 2026-01-30
  • 最后更新: 2026-01-30
  • 当前版本: v1.0

📝 关键设计决策

1. 市场结算机制

  • 采用实时检查方式:每笔交易前检查市场 endDate
  • 到期即结算,资金立即释放可用于后续交易

2. 余额检查策略

  • 采用严格模式:仅使用 currentBalance,不计入持仓市值
  • 停止条件:余额 < $1 无任何持仓

3. 数据源选择

  • 优先使用系统记录的 ProcessedTrade
  • 不足时调用 Polymarket API 补充历史数据

4. 代码复用策略

  • 后端:完全复用 CopyTradingFilterService 的所有过滤逻辑
  • 前端:复用跟单配置表单组件
  • 数据库:配置字段与 CopyTrading 表保持一致

🚀 下一步

完成文档审查后,可以:

  1. 创建 implementation_plan.md 详细规划实施步骤
  2. 开始开发(数据库表 → API → 前端页面)
  3. 单元测试和集成测试

文档位置: /Users/wrbug/polyhermes/docs/zh/backtest/