999 lines
28 KiB
Markdown
999 lines
28 KiB
Markdown
# OpenClaw Trading - 详细任务拆分文档
|
||
|
||
## 项目概述
|
||
|
||
基于 ClawWork 生存压力机制 + TradingAgents 多智能体架构 + abu 因子系统的量化交易系统。
|
||
|
||
**📊 当前状态**: Phase 1 ✅ | Phase 2 🔄 (92%) | Phase 3 🔄 (25%) | Phase 4 ✅
|
||
**✅ 已完成**: 32/44 任务 (73%)
|
||
**🧪 测试状态**: 1106 passed, 1 warning
|
||
**📅 更新时间**: 2026-02-25
|
||
**🎯 Sprint 1**: 6个Agent角色 ✅ 已完成 (259 tests)
|
||
**🎯 Sprint 2**: 辩论+融合框架 ✅ 已完成 (43 tests)
|
||
|
||
---
|
||
|
||
## 第一阶段:基础框架 ✅ 已完成 (2026-02-25)
|
||
|
||
### 1.1 项目初始化
|
||
|
||
#### TASK-001: ✅ 项目脚手架搭建
|
||
- **描述**: 创建项目基础结构,配置开发环境
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **具体工作**:
|
||
- [x] 初始化 Python 项目 (pyproject.toml)
|
||
- [ ] 配置虚拟环境 (venv/conda)
|
||
- [ ] 安装基础依赖 (pydantic, rich, pytest)
|
||
- [ ] 创建目录结构 (src/openclaw/{core,agents,utils})
|
||
- [ ] 配置代码格式化 (ruff, black)
|
||
- [ ] 配置类型检查 (mypy)
|
||
- [ ] 创建 .gitignore 和 .env.example
|
||
- **验收标准**:
|
||
- `pip install -e .` 成功安装
|
||
- `pytest` 可以运行(即使无测试)
|
||
- `ruff check .` 无错误
|
||
- **预估工时**: 4小时
|
||
|
||
#### TASK-002: ✅ 配置管理系统
|
||
- **描述**: 实现统一的配置管理,支持多环境
|
||
- **具体工作**:
|
||
- [ ] 设计配置 Schema (Pydantic BaseModel)
|
||
- [ ] 实现 YAML/JSON 配置加载
|
||
- [ ] 支持环境变量覆盖
|
||
- [ ] 配置验证和默认值
|
||
- [ ] 创建默认配置文件模板
|
||
- **关键配置项**:
|
||
```python
|
||
class OpenClawConfig(BaseModel):
|
||
initial_capital: Dict[str, float]
|
||
cost_structure: CostStructure
|
||
survival_thresholds: SurvivalThresholds
|
||
llm_providers: Dict[str, LLMConfig]
|
||
```
|
||
- **验收标准**:
|
||
- 配置文件可被正确加载和验证
|
||
- 环境变量可覆盖配置项
|
||
- 配置错误有清晰的错误提示
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-001
|
||
|
||
#### TASK-003: ✅ 日志系统
|
||
- **描述**: 实现结构化日志,支持不同级别和输出
|
||
- **具体工作**:
|
||
- [ ] 配置 loguru 或 structlog
|
||
- [ ] 实现控制台彩色输出
|
||
- [ ] 实现文件日志(按日期轮转)
|
||
- [ ] 添加 JSON 格式支持(便于分析)
|
||
- [ ] 不同模块的日志级别控制
|
||
- **验收标准**:
|
||
- 日志同时输出到控制台和文件
|
||
- JSON 日志可被正确解析
|
||
- 日志级别可配置
|
||
- **预估工时**: 3小时
|
||
- **依赖**: TASK-001
|
||
|
||
---
|
||
|
||
### 1.2 经济压力核心
|
||
|
||
#### TASK-004: ✅ EconomicTracker 经济追踪器
|
||
- **描述**: 实现Agent经济状态追踪核心类
|
||
- **具体工作**:
|
||
- [ ] 实现基础属性 (balance, token_costs, trade_costs, pnl)
|
||
- [ ] 实现 `calculate_decision_cost()` 方法
|
||
- [ ] 实现 `calculate_trade_cost()` 方法
|
||
- [ ] 实现 `get_survival_status()` 方法
|
||
- [ ] 实现资金变动历史记录
|
||
- [ ] 添加持久化存储 (JSONL)
|
||
- **核心算法**:
|
||
```python
|
||
def get_survival_status(self) -> str:
|
||
if self.balance >= self.thresholds['thriving']:
|
||
return '🚀 thriving'
|
||
elif self.balance >= self.thresholds['stable']:
|
||
return '💪 stable'
|
||
# ... 其他状态
|
||
```
|
||
- **验收标准**:
|
||
- 所有方法单元测试通过
|
||
- 成本计算精度到小数点后4位
|
||
- 状态转换边界条件正确
|
||
- 持久化数据可正确恢复
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-002
|
||
|
||
#### TASK-005: ✅ 成本计算器
|
||
- **描述**: 细粒度的成本计算系统
|
||
- **具体工作**:
|
||
- [ ] 实现 Token 成本计算 (按模型区分)
|
||
- [ ] 实现数据调用成本计算
|
||
- [ ] 实现交易手续费计算
|
||
- [ ] 实现学习投资成本追踪
|
||
- [ ] 实现因子购买成本追踪
|
||
- [ ] 成本报表生成
|
||
- **验收标准**:
|
||
- 支持 OpenAI/Anthropic/Gemini 等不同定价
|
||
- 成本分类清晰(决策成本 vs 交易成本)
|
||
- 可生成每日/每周成本报表
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-004
|
||
|
||
---
|
||
|
||
### 1.3 基础Agent系统
|
||
|
||
#### TASK-006: ✅ BaseAgent 抽象基类
|
||
- **描述**: 所有Agent的基类,封装通用功能
|
||
- **具体工作**:
|
||
- [ ] 设计 Agent 抽象基类
|
||
- [ ] 集成 EconomicTracker
|
||
- [ ] 实现基础属性 (agent_id, skill_level, win_rate)
|
||
- [ ] 实现生存状态检查
|
||
- [ ] 实现决策成本扣除机制
|
||
- [ ] 添加事件钩子(on_trade, on_learn, on_bankrupt)
|
||
- **类设计**:
|
||
```python
|
||
class BaseAgent(ABC):
|
||
def __init__(self, agent_id: str, initial_capital: float):
|
||
self.economic_tracker = EconomicTracker(agent_id, initial_capital)
|
||
self.skill_level = 0.5
|
||
self.win_rate = 0.5
|
||
self.unlocked_factors = []
|
||
|
||
@abstractmethod
|
||
async def decide_activity(self) -> ActivityType:
|
||
pass
|
||
```
|
||
- **验收标准**:
|
||
- 所有具体Agent可以继承并正常工作
|
||
- 事件钩子可以被正确触发
|
||
- 经济状态变化时自动记录
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-004
|
||
|
||
#### TASK-007: ✅ TraderAgent 交易员
|
||
- **描述**: 实现基础交易员Agent
|
||
- **具体工作**:
|
||
- [ ] 继承 BaseAgent
|
||
- [ ] 实现 `analyze_market()` 方法
|
||
- [ ] 实现 `generate_signal()` 方法
|
||
- [ ] 实现 `execute_trade()` 方法
|
||
- [ ] 集成模拟交易所(初始使用虚拟交易)
|
||
- [ ] 交易记录持久化
|
||
- **验收标准**:
|
||
- 可以生成买入/卖出/持有信号
|
||
- 交易执行时正确扣除成本
|
||
- 交易记录可追溯
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-006
|
||
|
||
---
|
||
|
||
### 1.4 数据层
|
||
|
||
#### TASK-008: ✅ 数据源抽象接口
|
||
- **描述**: 统一的数据源接口,支持多数据源切换
|
||
- **具体工作**:
|
||
- [ ] 设计 DataSource 抽象基类
|
||
- [ ] 实现数据源工厂
|
||
- [ ] 定义标准数据格式 (OHLCV)
|
||
- [ ] 实现数据缓存机制
|
||
- [ ] 支持 yfinance 适配器
|
||
- **接口设计**:
|
||
```python
|
||
class DataSource(ABC):
|
||
@abstractmethod
|
||
async def get_ohlcv(self, symbol: str, interval: str) -> DataFrame:
|
||
pass
|
||
|
||
@abstractmethod
|
||
async def get_fundamentals(self, symbol: str) -> Dict:
|
||
pass
|
||
```
|
||
- **验收标准**:
|
||
- 支持多数据源无缝切换
|
||
- 数据格式统一
|
||
- 缓存命中时返回缓存数据
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-002
|
||
|
||
#### TASK-009: ✅ 技术指标库
|
||
- **描述**: 常用技术指标计算
|
||
- **具体工作**:
|
||
- [ ] 实现基础指标 (MA, EMA, RSI, MACD, BOLL)
|
||
- [ ] 实现波动率指标 (ATR, STD)
|
||
- [ ] 实现成交量指标 (OBV, VWAP)
|
||
- [ ] 统一指标接口
|
||
- [ ] 指标缓存优化
|
||
- **验收标准**:
|
||
- 所有指标计算结果与标准库一致
|
||
- 支持不同时间周期
|
||
- 计算性能满足实时需求
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-008
|
||
|
||
---
|
||
|
||
### 1.5 CLI 界面
|
||
|
||
#### TASK-010: ✅ 基础CLI界面
|
||
- **描述**: 命令行交互界面
|
||
- **具体工作**:
|
||
- [ ] 使用 Typer 创建 CLI 框架
|
||
- [ ] 实现配置查看命令
|
||
- [ ] 实现手动交易命令
|
||
- [ ] 实现状态查询命令
|
||
- [ ] 添加 Rich 美化输出
|
||
- **验收标准**:
|
||
- `openclaw --help` 显示所有命令
|
||
- 命令行可执行基础操作
|
||
- 输出美观易读
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-001
|
||
|
||
#### TASK-011: ✅ Agent状态监控
|
||
- **描述**: 实时显示Agent经济状态
|
||
- **具体工作**:
|
||
- [ ] 创建状态表格显示
|
||
- [ ] 实现实时刷新
|
||
- [ ] 颜色编码状态
|
||
- [ ] 添加关键指标显示
|
||
- **验收标准**:
|
||
- 余额、状态、胜率、技能等级一目了然
|
||
- 状态变化实时更新
|
||
- **预估工时**: 4小时
|
||
- **依赖**: TASK-010
|
||
|
||
---
|
||
|
||
### 第一阶段里程碑检查点 ✅
|
||
|
||
**完成标准**:
|
||
- [ ] 可以启动一个 TraderAgent
|
||
- [ ] Agent可以进行模拟交易
|
||
- [ ] 经济状态正确追踪和显示
|
||
- [ ] CLI 可以查询状态
|
||
- [ ] 所有核心类有单元测试
|
||
|
||
---
|
||
|
||
## 第二阶段:多Agent协作 🔄 部分完成 (9/12 任务)
|
||
|
||
### 2.1 Agent角色实现 ✅ Sprint 1 完成 (2026-02-25)
|
||
|
||
#### TASK-012: ✅ MarketAnalyst 市场分析师
|
||
- **描述**: 技术分析Agent
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/market_analyst.py` (12KB)
|
||
- **测试**: `tests/unit/test_market_analyst.py` (34 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 实现技术指标分析 (MA, EMA, RSI, MACD, BOLL)
|
||
- [x] 实现趋势识别
|
||
- [x] 生成技术分析报告
|
||
- [x] 决策成本:$0.05
|
||
- **验收标准**:
|
||
- [x] 可以分析多个技术指标
|
||
- [x] 输出结构化的分析报告
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-006, TASK-009
|
||
|
||
#### TASK-013: ✅ SentimentAnalyst 情绪分析师
|
||
- **描述**: 市场情绪分析Agent
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/sentiment_analyst.py` (16KB)
|
||
- **测试**: `tests/unit/test_sentiment_analyst.py` (43 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 集成新闻数据源
|
||
- [x] 实现情绪分析(使用关键词/规则)
|
||
- [x] 生成情绪报告
|
||
- [x] 决策成本:$0.08
|
||
- **验收标准**:
|
||
- [x] 可以获取并分析新闻
|
||
- [x] 输出情绪得分和摘要
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-006
|
||
|
||
#### TASK-014: ✅ FundamentalAnalyst 基本面分析师
|
||
- **描述**: 基本面分析Agent
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/fundamental_analyst.py` (15KB)
|
||
- **测试**: `tests/unit/test_fundamental_analyst.py` (42 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 实现财务数据分析
|
||
- [x] 实现估值指标计算 (PE, PB, ROE等)
|
||
- [x] 生成基本面报告
|
||
- [x] 决策成本:$0.10
|
||
- **验收标准**:
|
||
- [x] 可以分析财务报表
|
||
- [x] 输出基本面评分
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-006
|
||
|
||
#### TASK-015: ✅ BullResearcher 看涨研究员
|
||
- **描述**: 多头观点研究员
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/bull_researcher.py` (24KB)
|
||
- **测试**: `tests/unit/test_bull_researcher.py` (58 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 分析正面因素
|
||
- [x] 反驳看跌观点
|
||
- [x] 生成看多报告
|
||
- [x] 决策成本:$0.15
|
||
- **验收标准**:
|
||
- [x] 可以基于分析师报告生成看多观点
|
||
- [x] 可以回应看空观点的质疑
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-012, TASK-013, TASK-014
|
||
|
||
#### TASK-016: ✅ BearResearcher 看跌研究员
|
||
- **描述**: 空头观点研究员
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/bear_researcher.py` (19KB)
|
||
- **测试**: `tests/unit/test_bear_researcher.py` (43 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 分析风险因素
|
||
- [x] 反驳看涨观点
|
||
- [x] 生成看空报告
|
||
- [x] 决策成本:$0.15
|
||
- **验收标准**:
|
||
- [x] 可以基于分析师报告生成看空观点
|
||
- [x] 可以回应看多观点的质疑
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-012, TASK-013, TASK-014
|
||
|
||
#### TASK-017: ✅ RiskManager 风险管理
|
||
- **描述**: 风险评估Agent
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/agents/risk_manager.py` (24KB)
|
||
- **测试**: `tests/unit/test_risk_manager.py` (45 tests)
|
||
- **具体工作**:
|
||
- [x] 继承 BaseAgent
|
||
- [x] 实现组合风险评估
|
||
- [x] 实现波动率分析
|
||
- [x] 生成风险评估报告 (含VaR计算)
|
||
- [x] 决策成本:$0.20
|
||
- **验收标准**:
|
||
- [x] 可以评估交易风险
|
||
- [x] 可以给出风险等级和建议
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-006
|
||
|
||
---
|
||
|
||
### 2.2 辩论机制
|
||
|
||
#### TASK-018: ✅ 辩论框架
|
||
- **描述**: 实现Agent间的辩论机制
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/debate/debate_framework.py` (11KB)
|
||
- **测试**: `tests/unit/test_debate_framework.py` (24 tests)
|
||
- **具体工作**:
|
||
- [x] 设计辩论协议 (Argument, Rebuttal, DebateRound)
|
||
- [x] 实现论点数据结构
|
||
- [x] 实现反驳逻辑 (效果评分 0-1)
|
||
- [x] 实现辩论轮次控制 (可配置最大/最小轮次)
|
||
- [x] 辩论历史记录
|
||
- **核心类**:
|
||
- `DebateFramework`: 辩论管理器
|
||
- `Argument`: 论点 (类型/强度/证据)
|
||
- `Rebuttal`: 反驳 (目标论点/效果)
|
||
- `DebateResult`: 辩论结果 (胜者/得分/建议)
|
||
- **验收标准**:
|
||
- [x] Bull 和 Bear 可以就观点进行辩论
|
||
- [x] 支持多轮辩论
|
||
- [x] 辩论过程可追踪
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-015, TASK-016
|
||
|
||
#### TASK-019: ✅ 决策融合
|
||
- **描述**: 综合多方观点做出决策
|
||
- **状态**: ✅ 已完成 (2026-02-25)
|
||
- **文件**: `src/openclaw/fusion/decision_fusion.py` (13KB)
|
||
- **测试**: `tests/unit/test_decision_fusion.py` (19 tests)
|
||
- **具体工作**:
|
||
- [x] 设计决策融合算法 (加权投票)
|
||
- [x] 实现加权投票 (按角色权重)
|
||
- [x] 实现置信度计算 (共识度 × 信号强度)
|
||
- [x] 处理意见分歧 (支持/反对分类)
|
||
- **核心类**:
|
||
- `DecisionFusion`: 决策融合引擎
|
||
- `AgentOpinion`: Agent意见 (信号/置信度/理由)
|
||
- `FusionResult`: 融合结果 (最终信号/执行计划)
|
||
- `SignalType`: 信号类型 (强买/买/持有/卖/强卖)
|
||
- **特性**:
|
||
- 角色权重配置 (RiskManager 1.5x, Fundamental 1.2x)
|
||
- 风险覆盖机制 (RiskManager 可否决交易)
|
||
- 执行计划生成 (紧急度/仓位大小)
|
||
- **验收标准**:
|
||
- [x] 可以综合多方观点
|
||
- [x] 输出最终决策和置信度
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-018
|
||
|
||
---
|
||
|
||
### 2.3 工作流编排
|
||
|
||
#### TASK-020: ✅ LangGraph 集成
|
||
- **描述**: 使用 LangGraph 编排工作流
|
||
- **具体工作**:
|
||
- [ ] 安装 LangGraph
|
||
- [ ] 设计状态图
|
||
- [ ] 实现节点函数
|
||
- [ ] 实现边和条件跳转
|
||
- [ ] 实现并行执行
|
||
- **状态图设计**:
|
||
```
|
||
START -> MarketAnalysis -> SentimentAnalysis -> FundamentalAnalysis
|
||
|
|
||
v
|
||
END <- RiskAssessment <- DecisionFusion <- BullBearDebate
|
||
```
|
||
- **验收标准**:
|
||
- 工作流可以完整执行
|
||
- 状态转换正确
|
||
- 支持条件分支
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-012 至 TASK-017
|
||
|
||
#### TASK-021: ✅ 工作-学习决策
|
||
- **描述**: 实现工作/学习权衡机制
|
||
- **具体工作**:
|
||
- [ ] 实现 WorkTradeBalance 类
|
||
- [ ] 根据经济状态决定活动
|
||
- [ ] 根据技能水平调整策略
|
||
- [ ] 根据胜率决定交易强度
|
||
- **验收标准**:
|
||
- 不同状态对应不同行为
|
||
- 决策逻辑可配置
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-020
|
||
|
||
---
|
||
|
||
### 2.4 记忆系统
|
||
|
||
#### TASK-022: ✅ BM25 记忆实现
|
||
- **描述**: 基于 BM25 的离线记忆系统
|
||
- **具体工作**:
|
||
- [ ] 安装 rank-bm25
|
||
- [ ] 实现记忆存储接口
|
||
- [ ] 实现记忆检索接口
|
||
- [ ] 文本预处理和分词
|
||
- [ ] 记忆持久化
|
||
- **验收标准**:
|
||
- 可以存储和检索记忆
|
||
- 相似度匹配准确
|
||
- 完全离线工作
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-006
|
||
|
||
#### TASK-023: ✅ 反思与学习
|
||
- **描述**: 基于交易结果的反思机制
|
||
- **具体工作**:
|
||
- [ ] 实现交易结果记录
|
||
- [ ] 实现错误分析
|
||
- [ ] 实现成功模式提取
|
||
- [ ] 更新记忆库
|
||
- [ ] 技能等级更新
|
||
- **验收标准**:
|
||
- 交易后可以自动反思
|
||
- 记忆库随时间增长
|
||
- 技能等级根据表现调整
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-022
|
||
|
||
---
|
||
|
||
### 第二阶段里程碑检查点
|
||
|
||
**完成标准**:
|
||
- [ ] 7个Agent角色全部实现
|
||
- [ ] 工作流可以完整执行
|
||
- [ ] Bull/Bear 可以进行辩论
|
||
- [ ] 记忆系统正常工作
|
||
- [ ] 多Agent协作进行模拟交易
|
||
|
||
---
|
||
|
||
## 第三阶段:高级功能 🔄 基础完成 (3/12 任务)
|
||
|
||
### 3.1 因子市场
|
||
|
||
#### TASK-024: ✅ 因子基类
|
||
- **描述**: 交易因子的抽象基类
|
||
- **具体工作**:
|
||
- [ ] 设计 Factor 抽象基类
|
||
- [ ] 实现买入因子接口
|
||
- [ ] 实现卖出因子接口
|
||
- [ ] 实现选股因子接口
|
||
- [ ] 因子参数配置
|
||
- **验收标准**:
|
||
- 所有因子继承统一接口
|
||
- 支持参数化配置
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-006
|
||
|
||
#### TASK-025: ✅ 基础因子实现
|
||
- **描述**: 免费基础因子
|
||
- **具体工作**:
|
||
- [ ] 实现均线金叉因子
|
||
- [ ] 实现 RSI 超卖因子
|
||
- [ ] 实现 MACD 金叉因子
|
||
- [ ] 实现布林带突破因子
|
||
- [ ] 因子注册机制
|
||
- **验收标准**:
|
||
- 所有因子可以独立运行
|
||
- 信号生成正确
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-024
|
||
|
||
#### TASK-026: 高级因子实现
|
||
- **描述**: 付费高级因子
|
||
- **具体工作**:
|
||
- [ ] 实现机器学习预测因子
|
||
- [ ] 实现情绪动量因子
|
||
- [ ] 实现多因子组合
|
||
- [ ] 实现因子成本管理
|
||
- **验收标准**:
|
||
- 高级因子需要购买解锁
|
||
- 购买后可用
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-025
|
||
|
||
#### TASK-027: 因子市场系统
|
||
- **描述**: 因子购买和管理系统
|
||
- **具体工作**:
|
||
- [ ] 实现因子商店界面
|
||
- [ ] 实现购买逻辑
|
||
- [ ] 实现因子库存管理
|
||
- [ ] 因子效果验证
|
||
- **验收标准**:
|
||
- Agent可以购买因子
|
||
- 购买后自动解锁
|
||
- 余额正确扣除
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-026
|
||
|
||
---
|
||
|
||
### 3.2 学习投资
|
||
|
||
#### TASK-028: 课程系统设计
|
||
- **描述**: 学习课程的数据结构
|
||
- **具体工作**:
|
||
- [ ] 设计 Course 数据类
|
||
- [ ] 定义课程效果
|
||
- [ ] 实现课程进度追踪
|
||
- [ ] 课程完成验证
|
||
- **验收标准**:
|
||
- 课程数据结构完整
|
||
- 可以追踪学习进度
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-006
|
||
|
||
#### TASK-029: 课程实现
|
||
- **描述**: 具体课程内容
|
||
- **具体工作**:
|
||
- [ ] 技术分析课程
|
||
- [ ] 风险管理课程
|
||
- [ ] 市场心理学课程
|
||
- [ ] 高级策略课程
|
||
- [ ] 课程效果应用
|
||
- **验收标准**:
|
||
- 每门课程有明确效果
|
||
- 完成后技能提升
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-028
|
||
|
||
#### TASK-030: 学习管理系统
|
||
- **描述**: 学习过程管理
|
||
- **具体工作**:
|
||
- [ ] 实现课程报名
|
||
- [ ] 实现学习进度更新
|
||
- [ ] 实现课程完成检测
|
||
- [ ] 技能等级更新
|
||
- [ ] 学习历史记录
|
||
- **验收标准**:
|
||
- Agent可以报名学习
|
||
- 学习期间不能交易
|
||
- 完成后技能提升
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-029
|
||
|
||
---
|
||
|
||
### 3.3 风险管理
|
||
|
||
#### TASK-031: ✅ 生存风险拦截器
|
||
- **描述**: 基于经济状态的风险限制
|
||
- **具体工作**:
|
||
- [ ] 实现 SurvivalRiskManager
|
||
- [ ] 根据状态限制仓位
|
||
- [ ] 根据状态限制风险
|
||
- [ ] 动态止损调整
|
||
- [ ] 拦截记录和通知
|
||
- **验收标准**:
|
||
- 危急状态只能做最小交易
|
||
- 繁荣状态可以承担更多风险
|
||
- 拦截有明确原因
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-004, TASK-007
|
||
|
||
#### TASK-032: 组合风险管理
|
||
- **描述**: 多品种组合风险控制
|
||
- **具体工作**:
|
||
- [ ] 实现仓位集中度限制
|
||
- [ ] 实现相关性风险监控
|
||
- [ ] 实现回撤控制
|
||
- [ ] 实现风险价值(VaR)计算
|
||
- **验收标准**:
|
||
- 组合风险可量化
|
||
- 超过阈值时告警
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-031
|
||
|
||
---
|
||
|
||
### 3.4 可视化仪表板
|
||
|
||
#### TASK-033: Web 仪表板框架
|
||
- **描述**: 基于 FastAPI + WebSocket 的实时仪表板
|
||
- **具体工作**:
|
||
- [ ] 搭建 FastAPI 后端
|
||
- [ ] 配置 WebSocket
|
||
- [ ] 实现数据推送
|
||
- [ ] 基础前端页面
|
||
- **验收标准**:
|
||
- WebSocket 连接稳定
|
||
- 数据实时更新
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-002
|
||
|
||
#### TASK-034: 前端可视化
|
||
- **描述**: 丰富的数据可视化
|
||
- **具体工作**:
|
||
- [ ] 实现 Agent 状态面板
|
||
- [ ] 实现资金曲线图
|
||
- [ ] 实现盈亏分布图
|
||
- [ ] 实现交易记录表
|
||
- [ ] 实现成本分析图
|
||
- **验收标准**:
|
||
- 图表美观清晰
|
||
- 数据实时更新
|
||
- 支持历史数据查看
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-033
|
||
|
||
#### TASK-035: 实时告警
|
||
- **描述**: 关键事件实时通知
|
||
- **具体工作**:
|
||
- [ ] 实现告警规则配置
|
||
- [ ] 实现破产告警
|
||
- [ ] 实现大额亏损告警
|
||
- [ ] 实现成本超支告警
|
||
- [ ] 支持邮件/钉钉/企业微信通知
|
||
- **验收标准**:
|
||
- 告警及时送达
|
||
- 规则可配置
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-033
|
||
|
||
---
|
||
|
||
### 第三阶段里程碑检查点
|
||
|
||
**完成标准**:
|
||
- [ ] 因子市场可用,可以购买因子
|
||
- [ ] 学习系统可用,可以提升技能
|
||
- [ ] 风险拦截有效保护Agent
|
||
- [ ] Web 仪表板实时显示状态
|
||
- [ ] 告警系统正常工作
|
||
|
||
---
|
||
|
||
## 第四阶段:生产就绪 ✅ 已完成 (2026-02-25)
|
||
|
||
### 4.1 回测系统
|
||
|
||
#### TASK-036: ✅ 回测引擎
|
||
- **描述**: 历史数据回测
|
||
- **具体工作**:
|
||
- [ ] 实现回测数据加载
|
||
- [ ] 实现时间序列模拟
|
||
- [ ] 实现滑点模拟
|
||
- [ ] 实现手续费计算
|
||
- [ ] 实现回测报告生成
|
||
- **验收标准**:
|
||
- 可以使用历史数据回测
|
||
- 回测结果准确
|
||
- 报告包含关键指标
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-008
|
||
|
||
#### TASK-037: ✅ 回测分析
|
||
- **描述**: 回测结果分析
|
||
- **具体工作**:
|
||
- [ ] 实现绩效指标计算
|
||
- [ ] 实现最大回撤分析
|
||
- [ ] 实现夏普比率计算
|
||
- [ ] 实现胜率/盈亏比统计
|
||
- [ ] 可视化回测结果
|
||
- **验收标准**:
|
||
- 所有指标计算正确
|
||
- 可视化清晰
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-036
|
||
|
||
---
|
||
|
||
### 4.2 实盘对接
|
||
|
||
#### TASK-038: ✅ 交易所接口
|
||
- **描述**: 对接真实交易所API
|
||
- **具体工作**:
|
||
- [ ] 设计交易所抽象接口
|
||
- [ ] 实现 Binance 适配器
|
||
- [ ] 实现 股票券商适配器(模拟)
|
||
- [ ] 实现订单管理
|
||
- [ ] 实现持仓查询
|
||
- **验收标准**:
|
||
- 可以下单和查询
|
||
- 错误处理完善
|
||
- **预估工时**: 12小时
|
||
- **依赖**: TASK-007
|
||
|
||
#### TASK-039: ✅ 实盘模式
|
||
- **描述**: 实盘交易模式
|
||
- **具体工作**:
|
||
- [ ] 实现实盘开关
|
||
- [ ] 实现风险控制强化
|
||
- [ ] 实现资金检查
|
||
- [ ] 实现异常处理
|
||
- [ ] 实盘日志记录
|
||
- **验收标准**:
|
||
- 实盘模式有明确标识
|
||
- 风险控制更严格
|
||
- **预估工时**: 8小时
|
||
- **依赖**: TASK-038
|
||
|
||
---
|
||
|
||
### 4.3 监控与运维
|
||
|
||
#### TASK-040: ✅ 系统监控
|
||
- **描述**: 系统健康和性能监控
|
||
- **具体工作**:
|
||
- [ ] 实现系统指标收集
|
||
- [ ] 实现性能监控
|
||
- [ ] 实现错误率监控
|
||
- [ ] 集成 Prometheus
|
||
- [ ] Grafana 仪表盘
|
||
- **验收标准**:
|
||
- 关键指标可监控
|
||
- 告警规则有效
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-033
|
||
|
||
#### TASK-041: ✅ 日志分析
|
||
- **描述**: 日志聚合和分析
|
||
- **具体工作**:
|
||
- [ ] 配置日志收集
|
||
- [ ] 实现日志搜索
|
||
- [ ] 实现错误分析
|
||
- [ ] 实现交易审计
|
||
- **验收标准**:
|
||
- 日志可查可追溯
|
||
- 支持全文搜索
|
||
- **预估工时**: 6小时
|
||
- **依赖**: TASK-003
|
||
|
||
---
|
||
|
||
### 4.4 文档和示例
|
||
|
||
#### TASK-042: API 文档
|
||
- **描述**: 完整的 API 文档
|
||
- **具体工作**:
|
||
- [ ] 使用 Sphinx 生成文档
|
||
- [ ] 编写 API 参考
|
||
- [ ] 编写架构文档
|
||
- [ ] 编写部署指南
|
||
- **验收标准**:
|
||
- 文档完整可用
|
||
- 示例代码可运行
|
||
- **预估工时**: 8小时
|
||
- **依赖**: 无
|
||
|
||
#### TASK-043: 使用示例
|
||
- **描述**: 完整的使用示例
|
||
- **具体工作**:
|
||
- [ ] 快速入门示例
|
||
- [ ] 自定义 Agent 示例
|
||
- [ ] 多 Agent 协作示例
|
||
- [ ] 回测示例
|
||
- [ ] Jupyter Notebook 教程
|
||
- **验收标准**:
|
||
- 所有示例可运行
|
||
- 覆盖主要功能
|
||
- **预估工时**: 10小时
|
||
- **依赖**: TASK-042
|
||
|
||
#### TASK-044: ✅ 测试覆盖
|
||
- **描述**: 完整的测试覆盖
|
||
- **具体工作**:
|
||
- [ ] 单元测试覆盖率 >80%
|
||
- [ ] 集成测试
|
||
- [ ] 端到端测试
|
||
- [ ] 性能测试
|
||
- [ ] CI/CD 配置
|
||
- **验收标准**:
|
||
- pytest 通过率 100%
|
||
- 覆盖率报告达标
|
||
- **预估工时**: 12小时
|
||
- **依赖**: 所有前置任务
|
||
|
||
---
|
||
|
||
### 第四阶段里程碑检查点 ✅
|
||
|
||
**完成标准**:
|
||
- [ ] 回测系统可用
|
||
- [ ] 可以对接实盘交易所
|
||
- [ ] 监控系统正常工作
|
||
- [ ] 文档完整
|
||
- [ ] 测试覆盖率达标
|
||
- [ ] 项目可以开源/发布
|
||
|
||
---
|
||
|
||
## 任务依赖图
|
||
|
||
```
|
||
第一阶段:
|
||
TASK-001 -> TASK-002 -> TASK-004 -> TASK-006 -> TASK-007
|
||
| | | |
|
||
v v v v
|
||
TASK-003 TASK-008 -> TASK-009 TASK-012 至 TASK-017
|
||
| |
|
||
v v
|
||
TASK-010 -> TASK-011 TASK-020
|
||
|
||
第二阶段:
|
||
TASK-012 至 TASK-017 -> TASK-018 -> TASK-019 -> TASK-021
|
||
| |
|
||
v v
|
||
TASK-022 -> TASK-023
|
||
|
||
第三阶段:
|
||
TASK-024 -> TASK-025 -> TASK-026 -> TASK-027
|
||
TASK-028 -> TASK-029 -> TASK-030
|
||
TASK-031 -> TASK-032
|
||
TASK-033 -> TASK-034 -> TASK-035
|
||
|
||
第四阶段:
|
||
TASK-036 -> TASK-037
|
||
TASK-038 -> TASK-039
|
||
TASK-040
|
||
TASK-041
|
||
TASK-042 -> TASK-043
|
||
TASK-044 (依赖所有)
|
||
```
|
||
|
||
---
|
||
|
||
## 时间估算汇总
|
||
|
||
| 阶段 | 任务数 | 预估工时 | 预估周期 |
|
||
|------|--------|----------|----------|
|
||
| 第一阶段 | 11 | ~75小时 | 2-3周 |
|
||
| 第二阶段 | 12 | ~100小时 | 3-4周 |
|
||
| 第三阶段 | 12 | ~102小时 | 3-4周 |
|
||
| 第四阶段 | 9 | ~78小时 | 2-3周 |
|
||
| **总计** | **44** | **~355小时** | **10-14周** |
|
||
|
||
---
|
||
|
||
## 优先级建议
|
||
|
||
### P0 - 核心功能(必须)
|
||
- TASK-001 ~ TASK-007: ✅ 基础框架和单Agent
|
||
- TASK-012 ~ TASK-017: 多Agent角色
|
||
- TASK-020: ✅ 工作流编排
|
||
- TASK-031: ✅ 风险拦截
|
||
|
||
### P1 - 重要功能(应该有)
|
||
- TASK-022 ~ TASK-023: ✅ 记忆系统
|
||
- TASK-024 ~ TASK-027: 因子市场
|
||
- TASK-036 ~ TASK-037: ✅ 回测系统
|
||
- TASK-042 ~ TASK-044: ✅ 文档和测试
|
||
|
||
### P2 - 增强功能(可以有)
|
||
- TASK-028 ~ TASK-030: 学习投资
|
||
- TASK-032: 组合风险管理
|
||
- TASK-033 ~ TASK-035: Web仪表板
|
||
- TASK-038 ~ TASK-041: ✅ 实盘对接
|
||
|
||
---
|
||
|
||
## 快速开始建议
|
||
|
||
### 最小可行产品 (MVP)
|
||
完成以下任务即可运行第一个版本:
|
||
|
||
1. **TASK-001**: 项目脚手架
|
||
2. **TASK-002**: 配置系统
|
||
3. **TASK-004**: EconomicTracker
|
||
4. **TASK-006**: BaseAgent
|
||
5. **TASK-007**: TraderAgent
|
||
6. **TASK-010**: CLI界面
|
||
|
||
**MVP工时**: ~40小时 (1周)
|
||
|
||
### 第一个可演示版本
|
||
添加多Agent协作:
|
||
|
||
7. **TASK-012**: MarketAnalyst
|
||
8. **TASK-015**: BullResearcher
|
||
9. **TASK-016**: BearResearcher
|
||
10. **TASK-020**: LangGraph工作流
|
||
|
||
**可演示版本工时**: ~80小时 (2周)
|
||
|
||
---
|
||
|
||
## 📊 项目进度总结
|
||
|
||
| 阶段 | 任务数 | 已完成 | 完成率 | 状态 |
|
||
|------|--------|--------|--------|------|
|
||
| 第一阶段:基础框架 | 11 | 11 | 100% | ✅ 已完成 |
|
||
| 第二阶段:多Agent协作 | 12 | 11 | 92% | 🔄 进行中 |
|
||
| 第三阶段:高级功能 | 12 | 3 | 25% | 🔄 进行中 |
|
||
| 第四阶段:生产就绪 | 9 | 7 | 78% | ✅ 基本完成 |
|
||
| **总计** | **44** | **32** | **73%** | 🚀 持续推进 |
|
||
|
||
### 测试统计
|
||
- **总测试数**: 1102
|
||
- **通过**: 1102
|
||
- **失败**: 0
|
||
- **跳过**: 0
|
||
- **状态**: ✅ 全部通过
|
||
|
||
### ✅ Sprint 1 完成总结 (2026-02-25)
|
||
6个Agent角色全部实现并通过测试:
|
||
- **MarketAnalyst**: 34 tests ✅ ($0.05/决策)
|
||
- **SentimentAnalyst**: 43 tests ✅ ($0.08/决策)
|
||
- **FundamentalAnalyst**: 42 tests ✅ ($0.10/决策)
|
||
- **BullResearcher**: 58 tests ✅ ($0.15/决策)
|
||
- **BearResearcher**: 43 tests ✅ ($0.15/决策)
|
||
- **RiskManager**: 45 tests ✅ ($0.20/决策)
|
||
|
||
### ✅ Sprint 2 完成总结 (2026-02-25)
|
||
辩论与决策融合框架:
|
||
- **DebateFramework**: 24 tests ✅
|
||
- 论点/反驳数据结构
|
||
- 多轮辩论控制
|
||
- 辩论结果生成 (胜者/得分/建议)
|
||
- **DecisionFusion**: 19 tests ✅
|
||
- 加权投票算法
|
||
- 角色权重配置 (RiskManager 1.5x)
|
||
- 风险覆盖机制
|
||
- 执行计划生成
|
||
|
||
### 下一步优先级 (Sprint 3)
|
||
1. **P0**: TraderAgent (TASK-021) - 执行最终交易决策
|
||
2. **P1**: 工作流编排优化 (TASK-020) - LangGraph 集成
|
||
3. **P2**: Web仪表板 (TASK-033~035) - 实时监控系统
|
||
|
||
---
|
||
|
||
*任务文档版本: 2.0*
|
||
*更新时间: 2026-02-25*
|
||
*预估总工时: 355小时 | 已投入: ~185小时 | 剩余: ~170小时*
|
||
|