## 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 回测结果符合预期(策略逻辑正确执行)