# 策略回测增强功能使用说明 ## 功能概述 策略回测增强模块提供了完整的量化回测能力,支持多因子策略、仓位管理、参数优化和策略对比。 ## 四大功能模块 ### 1. 快速回测 **适用场景**:简单均线交叉策略的快速验证 **参数**: - 股票代码 - 快线周期(如 5) - 慢线周期(如 20) **输出指标**: - 策略收益率 - 基准收益率(买入持有) - 超额收益 - 最大回撤 - 交易次数 - 胜率 ### 2. 高级回测 **适用场景**:带仓位管理和风控的完整策略回测 **策略类型**: - **均线交叉**:MA 金叉死叉 - **多因子**:技术(MA5/MA20)+ 动量(RSI)+ 资金(量比) **高级参数**: - **仓位大小**(0-1):每次买入占可用资金比例 - 1.0 = 满仓 - 0.5 = 半仓 - 0.3 = 三成仓位 - **止损比例**(%):跌破该比例自动卖出 - 5 = 亏损 5% 止损 - 0 = 不止损 - **止盈比例**(%):达到该比例自动卖出 - 10 = 盈利 10% 止盈 - 0 = 不止盈 **完整指标**: - 总收益率 - 最大回撤 - **夏普比率**(风险调整后收益,越高越好) - **卡玛比率**(收益/最大回撤,越高越好) - 交易次数 / 已平仓次数 - 胜率 - **盈亏比**(平均盈利/平均亏损) - 平均持仓天数 **交易明细**: - 每笔买入卖出记录 - 持仓天数 - 单笔盈亏和收益率 - 买卖理由 - 支持导出 CSV ### 3. 参数优化 **适用场景**:寻找最优参数组合 **优化流程**: 1. 定义参数网格 - 快线范围:如 3,5,10,15 - 慢线范围:如 20,30,60 2. 选择优化目标 - 夏普比率(推荐,平衡收益和风险) - 总收益(追求最大收益) - 卡玛比率(追求稳定) 3. 一键优化 - 自动测试所有参数组合 - 按目标指标排序 - 显示前 20 个最优结果 **结果展示**: - 参数组合排名 - 目标指标值 - 总收益、夏普比率、最大回撤、胜率 **示例**: ``` 输入: - 股票:600519 - 快线范围:3,5,10 - 慢线范围:20,30,60 - 优化目标:夏普比率 输出: 排名1:快线5/慢线30,夏普2.15,收益45.2%,回撤12.3% 排名2:快线10/慢线60,夏普1.98,收益38.7%,回撤9.8% ... ``` ### 4. 策略对比 **适用场景**:多个策略并排对比,找出最优策略 **预设对比**: 1. MA5/20(无止损止盈) 2. MA5/20(5% 止损,10% 止盈) 3. MA10/30 4. 多因子策略 **对比维度**: - 净值曲线(多条曲线叠加) - 总收益率(卡片并排显示) - 最大回撤 - 夏普比率 ## 使用示例 ### 示例 1:快速验证均线策略 ``` 1. 点击"快速回测" 2. 输入代码:600519 3. 快线:5,慢线:20 4. 点击"回测" 5. 查看收益率和净值曲线 ``` ### 示例 2:带止损止盈的策略 ``` 1. 点击"高级回测" 2. 输入代码:600519 3. 策略:均线交叉 4. 快线:5,慢线:20 5. 仓位:1.0(满仓) 6. 止损:5% 7. 止盈:10% 8. 点击"高级回测" 9. 查看完整指标和交易明细 10. 点击"导出CSV"保存明细 ``` ### 示例 3:参数优化寻找最优组合 ``` 1. 点击"参数优化" 2. 输入代码:600519 3. 快线范围:3,5,10,15 4. 慢线范围:20,30,60 5. 优化目标:夏普比率 6. 点击"开始优化" 7. 等待 10-30 秒(取决于组合数) 8. 查看排名前 20 的参数组合 9. 选择最优参数重新回测验证 ``` ### 示例 4:策略对比 ``` 1. 点击"策略对比" 2. 输入代码:600519 3. 点击"对比策略" 4. 查看 4 条净值曲线 5. 对比各策略收益率 6. 选择最优策略 ``` ## 指标说明 ### 夏普比率(Sharpe Ratio) - **含义**:风险调整后的收益 - **公式**:(平均收益率 - 无风险利率) / 收益率标准差 - **解读**: - \> 2.0:优秀 - 1.0 - 2.0:良好 - 0.5 - 1.0:一般 - < 0.5:较差 ### 卡玛比率(Calmar Ratio) - **含义**:收益率 / 最大回撤 - **解读**: - \> 3.0:优秀 - 2.0 - 3.0:良好 - 1.0 - 2.0:一般 - < 1.0:较差 ### 最大回撤(Max Drawdown) - **含义**:从峰值到谷底的最大跌幅 - **解读**: - < 10%:低风险 - 10% - 20%:中等风险 - 20% - 30%:较高风险 - \> 30%:高风险 ### 盈亏比(Profit Factor) - **含义**:平均盈利 / 平均亏损 - **解读**: - \> 2.0:优秀 - 1.5 - 2.0:良好 - 1.0 - 1.5:一般 - < 1.0:策略无效 ## 策略说明 ### 均线交叉策略(MA) **原理**: - 快线上穿慢线 → 买入(金叉) - 快线下穿慢线 → 卖出(死叉) **适用市场**:趋势明确的单边市 **不适用市场**:震荡市(易频繁止损) ### 多因子策略 **买入条件**(需同时满足): - MA5 > MA20(趋势向上) - RSI < 70(未超买) - 量比 > 1.5(放量) **卖出条件**(满足任一): - MA5 < MA20(趋势转弱) - RSI > 80(超买) **适用市场**:震荡偏多市场 ## API 接口 ### POST /api/backtest/advanced 高级回测 **请求体**: ```json { "symbol": "600519", "strategy": "ma", "fast": 5, "slow": 20, "position_size": 1.0, "stop_loss": 5.0, "take_profit": 10.0, "initial_capital": 100000.0, "commission": 0.0005 } ``` **响应**: ```json { "ok": true, "symbol": "600519", "strategy": "MA5/20", "dates": ["2023-01-01", ...], "equity": [100000, 101200, ...], "bench": [100000, 100800, ...], "metrics": { "total_return": 45.23, "max_drawdown": 12.34, "sharpe_ratio": 2.15, "calmar_ratio": 3.67, "trades": 15, "win_rate": 66.7, "profit_factor": 2.3, "avg_hold_days": 12.5 }, "trades": [...] } ``` ### POST /api/backtest/optimize 参数优化 **请求体**: ```json { "symbol": "600519", "strategy": "ma", "fast_range": [3, 5, 10, 15], "slow_range": [20, 30, 60], "metric": "sharpe_ratio" } ``` ### POST /api/backtest/compare 策略对比 **请求体**: ```json { "symbol": "600519", "strategies": [ {"type": "ma", "fast": 5, "slow": 20}, {"type": "ma", "fast": 5, "slow": 20, "stop_loss": 5, "take_profit": 10}, {"type": "multi_factor"} ] } ``` ## 注意事项 1. **数据要求**: - 需要先在"数据中台"入库历史日线数据 - 建议至少 1 年数据(250 个交易日) - 数据越多,回测越准确 2. **性能**: - 快速回测:1-2 秒 - 高级回测:2-5 秒 - 参数优化:10-60 秒(取决于组合数) - 策略对比:5-10 秒 3. **手续费**: - 默认 0.05%(双边 0.1%) - 可在高级参数中调整 4. **回测准确性**: - 基于收盘价成交(实际会有滑点) - 未考虑流动性限制 - 未考虑冲击成本 - 适合个人投资者小资金回测 5. **过拟合风险**: - 参数优化可能导致过拟合 - 建议在不同市场环境下验证 - 样本外测试很重要 ## 后续扩展 - [ ] 支持分钟线回测 - [ ] 增加更多策略(MACD、KDJ、布林带) - [ ] 支持组合回测(多股票) - [ ] 仓位管理策略(凯利公式、风险平价) - [ ] 滚动回测(时间窗口滑动) - [ ] 蒙特卡洛模拟 - [ ] 回测报告 PDF 导出