# 跟单回测功能文档

## 📚 文档清单

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

### 核心文档

1. **[BACKTEST_PRD.md](./BACKTEST_PRD.md)** - 产品需求文档
   - 功能概述与用户故事
   - UI/UX设计详细说明
   - 业务规则与数据要求
   
2. **[BACKTEST_TECHNICAL_DESIGN.md](./BACKTEST_TECHNICAL_DESIGN.md)** - 技术设计文档
   - 数据库表结构设计
   - RESTful API接口规范
   - 后端服务架构
   - 前端组件设计
   - 回测算法实现
   
3. **[BACKTEST_REVIEW_CHECKLIST.md](./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/`
