7.1 KiB
7.1 KiB
策略回测增强功能使用说明
功能概述
策略回测增强模块提供了完整的量化回测能力,支持多因子策略、仓位管理、参数优化和策略对比。
四大功能模块
1. 快速回测
适用场景:简单均线交叉策略的快速验证
参数:
- 股票代码
- 快线周期(如 5)
- 慢线周期(如 20)
输出指标:
- 策略收益率
- 基准收益率(买入持有)
- 超额收益
- 最大回撤
- 交易次数
- 胜率
2. 高级回测
适用场景:带仓位管理和风控的完整策略回测
策略类型:
- 均线交叉:MA 金叉死叉
- 多因子:技术(MA5/MA20)+ 动量(RSI)+ 资金(量比)
高级参数:
-
仓位大小(0-1):每次买入占可用资金比例
- 1.0 = 满仓
- 0.5 = 半仓
- 0.3 = 三成仓位
-
止损比例(%):跌破该比例自动卖出
- 5 = 亏损 5% 止损
- 0 = 不止损
-
止盈比例(%):达到该比例自动卖出
- 10 = 盈利 10% 止盈
- 0 = 不止盈
完整指标:
- 总收益率
- 最大回撤
- 夏普比率(风险调整后收益,越高越好)
- 卡玛比率(收益/最大回撤,越高越好)
- 交易次数 / 已平仓次数
- 胜率
- 盈亏比(平均盈利/平均亏损)
- 平均持仓天数
交易明细:
- 每笔买入卖出记录
- 持仓天数
- 单笔盈亏和收益率
- 买卖理由
- 支持导出 CSV
3. 参数优化
适用场景:寻找最优参数组合
优化流程:
-
定义参数网格
- 快线范围:如 3,5,10,15
- 慢线范围:如 20,30,60
-
选择优化目标
- 夏普比率(推荐,平衡收益和风险)
- 总收益(追求最大收益)
- 卡玛比率(追求稳定)
-
一键优化
- 自动测试所有参数组合
- 按目标指标排序
- 显示前 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. 策略对比
适用场景:多个策略并排对比,找出最优策略
预设对比:
- MA5/20(无止损止盈)
- MA5/20(5% 止损,10% 止盈)
- MA10/30
- 多因子策略
对比维度:
- 净值曲线(多条曲线叠加)
- 总收益率(卡片并排显示)
- 最大回撤
- 夏普比率
使用示例
示例 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
高级回测
请求体:
{
"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
}
响应:
{
"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
参数优化
请求体:
{
"symbol": "600519",
"strategy": "ma",
"fast_range": [3, 5, 10, 15],
"slow_range": [20, 30, 60],
"metric": "sharpe_ratio"
}
POST /api/backtest/compare
策略对比
请求体:
{
"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 年数据(250 个交易日)
- 数据越多,回测越准确
-
性能:
- 快速回测:1-2 秒
- 高级回测:2-5 秒
- 参数优化:10-60 秒(取决于组合数)
- 策略对比:5-10 秒
-
手续费:
- 默认 0.05%(双边 0.1%)
- 可在高级参数中调整
-
回测准确性:
- 基于收盘价成交(实际会有滑点)
- 未考虑流动性限制
- 未考虑冲击成本
- 适合个人投资者小资金回测
-
过拟合风险:
- 参数优化可能导致过拟合
- 建议在不同市场环境下验证
- 样本外测试很重要
后续扩展
- 支持分钟线回测
- 增加更多策略(MACD、KDJ、布林带)
- 支持组合回测(多股票)
- 仓位管理策略(凯利公式、风险平价)
- 滚动回测(时间窗口滑动)
- 蒙特卡洛模拟
- 回测报告 PDF 导出