cdd02e9f3d
## 功能概述 实现完整的回测功能,支持基于历史数据模拟跟单策略的执行效果。 ## 后端实现 - 数据库:新增 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(不再需要实时同步) - 修复前后端编译错误
跟单回测功能文档
📚 文档清单
本目录包含跟单回测功能的完整设计文档:
核心文档
-
BACKTEST_PRD.md - 产品需求文档
- 功能概述与用户故事
- UI/UX设计详细说明
- 业务规则与数据要求
-
BACKTEST_TECHNICAL_DESIGN.md - 技术设计文档
- 数据库表结构设计
- RESTful API接口规范
- 后端服务架构
- 前端组件设计
- 回测算法实现
-
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表保持一致
🚀 下一步
完成文档审查后,可以:
- 创建
implementation_plan.md详细规划实施步骤 - 开始开发(数据库表 → API → 前端页面)
- 单元测试和集成测试
文档位置: /Users/wrbug/polyhermes/docs/zh/backtest/