## 1. 环境准备

- [x] 1.1 安装ta-lib依赖包（已完成手动安装）
- [x] 1.2 验证ta-lib安装成功（`uv run python -c "import talib"`无报错）

## 2. 目录结构

- [x] 2.1 确认strategies目录存在（如不存在则创建）
- [x] 2.2 移动现有strategy.py到strategies/sma_strategy.py
- [x] 2.3 验证文件移动成功且可正常导入

## 3. MACD策略文件创建

- [x] 3.1 创建strategies/macd_strategy.py文件
- [x] 3.2 添加文件头部文档（策略说明、作者、日期）
- [x] 3.3 添加必要的导入语句（pandas、backtesting、talib、crossover）
- [x] 3.4 定义calculate_indicators()函数签名
- [x] 3.5 定义get_strategy()函数
- [x] 3.6 定义MacdTrendStrategy类框架

## 4. 指标计算实现

- [x] 4.1 在calculate_indicators()中使用ta-lib计算MACD指标
  - [x] 4.1.1 调用`talib.MACD(data['Close'], fastperiod=10, slowperiod=20, signalperiod=9)`
  - [x] 4.1.2 验证MACD返回3列（MACD线、信号线、柱状图）
  - [x] 4.1.3 计算EMA200趋势线（`talib.EMA(data['Close'], timeperiod=200)`）
  - [x] 4.1.4 返回包含所有指标的完整DataFrame

## 5. 策略类实现

- [x] 5.1 在MacdTrendStrategy类中定义可配置参数
  - [x] 5.1.1 fast_period = 10
  - [x] 5.1.2 slow_period = 20
  - [x] 5.1.3 signal_period = 9
- [x] 5.2 实现init()方法
  - [x] 5.2.1 使用self.I()注册MACD线（self.data.MACD_10_20_9）
  - [x] 5.2.2 使用self.I()注册MACD信号线（self.data.MACDs_10_20_9）
  - [x] 5.2.3 使用self.I()注册EMA200（self.data.EMA_200）
  - [x] 5.2.4 验证所有指标正确注册
- [x] 5.3 实现next()方法交易逻辑
  - [x] 5.3.1 导入crossover函数用于检测金叉/死叉
  - [x] 5.3.2 实现买入条件：crossover(MACD, Signal) AND Close > EMA200
  - [x] 5.3.3 实现卖出条件：crossover(Signal, MACD) OR Close < EMA200
  - [x] 5.3.4 处理空仓状态（避免重复平仓）
  - [x] 5.3.5 确保开仓前先平掉现有仓位

## 6. 代码验证

- [x] 6.1 检查Python语法正确性（无语法错误）
- [x] 6.2 验证导入语句正确（所有依赖正确导入）
- [x] 6.3 检查类继承自Strategy
- [x] 6.4 检查策略文件结构符合SMA策略模式

## 7. 回测兼容性验证

- [x] 7.1 使用backtest.py加载macd_strategy.py（`uv run python backtest.py --strategy-file strategies/macd_strategy.py`）
- [x] 7.2 验证策略文件成功加载无报错
- [x] 7.3 执行简单回测（如测试股票、测试日期范围）
- [x] 7.4 验证回测结果输出正常

## 8. 文档和注释

- [x] 8.1 在文件头部添加清晰的策略说明文档
- [x] 8.2 在关键逻辑处添加代码注释
- [x] 8.3 说明MACD参数选择理由（10-20-9组合）
- [x] 8.4 说明EMA200趋势过滤原理
- [x] 8.5 说明买入/卖出信号条件

## 9. 可选验证任务

- [ ] 9.1 对比MACD策略与SMA策略的回测结果
- [ ] 9.2 测试不同参数组合的性能（如8-17-7、12-26-9）
- [ ] 9.3 验证EMA200过滤对回撤的影响
- [ ] 9.4 测试不同市场环境（牛市、熊市、震荡市）下的表现

## 10. 完成

- [x] 10.1 所有核心功能实现完成
- [x] 10.2 代码质量符合Python最佳实践
- [x] 10.3 策略可被backtest.py正常加载和执行
- [x] 10.4 回测结果符合预期（策略逻辑正确执行）
