| name | backtest-review |
| description | 定期评估交易系统的历史表现,识别系统是否仍然有效,发现需要调整的地方。
当用户说"回测一下系统"、"系统还有效吗"、"评估交易系统"、"月度系统复盘"、
"我的交易系统表现怎么样"、"分析交易历史"、"系统健康检查"时触发。
通常每月或每季度运行一次,也可以在系统出现连续亏损后立即运行。
输出系统健康度评分、关键指标趋势、以及是否需要调整系统参数的建议。
|
Backtest Review — 系统回测与健康评估
市场在变,系统也需要进化。
埃尔德的警告:昨天有效的方法今天可能失效,明年更不可能有效。
定期回测不是为了"优化"出一个完美系统,而是为了发现系统何时开始失效。
两种评估模式
模式 A:历史交易复盘(基于真实交易记录)
分析 trading-journal 中记录的真实交易,评估系统实际表现。
这是最有价值的评估——真实资金,真实滑点,真实情绪压力下的结果。
模式 B:历史数据回测(基于历史行情数据)
用历史数据模拟系统在过去的表现。
⚠️ 注意过拟合风险:回测结果好看不等于未来有效。
系统健康度评估框架
核心指标
1. 胜率
计算:盈利笔数 / 总交易笔数
参考值:40-60%(不需要很高,重要的是盈亏比)
警戒线:< 35%
2. 盈亏比
计算:平均盈利 / 平均亏损
参考值:> 2.0:1
警戒线:< 1.5:1
3. 期望值(最重要)
计算:胜率 × 平均盈利 - 败率 × 平均亏损
参考值:> 0(正期望值)
警戒线:≤ 0(负期望值,系统失效)
4. 最大回撤
计算:账户从峰值到谷值的最大跌幅
参考值:< 15%
警戒线:> 20%
5. 绩效评级分布
A级占比应 > 40%
不及格占比应 < 20%
6. 连续亏损次数
参考值:最多连续亏损 3-4 次
警戒线:连续亏损 5 次以上(可能系统失效)
信号质量评估
按信号类型分析胜率:
- 三重滤网(春季买入):胜率 X%
- 三重滤网(秋季卖空):胜率 X%
- 背离信号:胜率 X%
- 袋鼠尾信号:胜率 X%
哪类信号最有效?哪类信号应该减少使用?
输出格式
# 系统健康度报告 — 2024年Q1
## 总体健康评分:7.5/10 ✅
## 核心指标
| 指标 | 本期 | 上期 | 趋势 | 状态 |
|------|------|------|------|------|
| 胜率 | 62% | 58% | ↑ | ✅ |
| 盈亏比 | 2.3:1 | 2.1:1 | ↑ | ✅ |
| 期望值 | +580元/笔 | +420元/笔 | ↑ | ✅ |
| 最大回撤 | 8.2% | 6.5% | ↓ | ⚠️ |
| A级占比 | 45% | 42% | ↑ | ✅ |
| 最大连亏 | 3次 | 4次 | ↑ | ✅ |
## 信号质量分析
| 信号类型 | 笔数 | 胜率 | 平均盈亏 |
|---------|------|------|---------|
| 春季买入 | 18 | 67% | +820元 |
| 秋季卖空 | 8 | 50% | +340元 |
| 背离信号 | 5 | 80% | +1,200元 |
| 弱信号 | 4 | 25% | -280元 |
**发现**:弱信号交易表现很差,建议停止交易弱信号。
## 市场适应性
本期市场特征:震荡偏多,波动率中等
系统表现:在趋势行情中表现好,在震荡行情中信号较多假突破
## 需要关注的问题
1. ⚠️ 最大回撤上升
本期最大回撤 8.2%,较上期上升。
原因:2月连续亏损3笔(弱信号交易)
建议:严格过滤弱信号
2. ⚠️ 空头信号胜率偏低(50%)
做空交易的盈亏比也低于做多
可能原因:当前处于整体牛市环境,不利于做空
建议:在牛市环境中减少做空操作
## 系统调整建议
1. **立即执行**:停止交易弱信号(预计可提升胜率至 70%+)
2. **考虑调整**:在大盘牛市时,做空信号需要更严格的过滤条件
3. **继续保持**:2%/6%风险控制执行良好,不需要调整
## 下季度重点监控
- 弱信号过滤后的胜率变化
- 背离信号样本量积累(目前样本太少)
- 最大回撤是否回落至 6% 以下
何时认为系统失效
以下情况出现时,暂停交易,重新审视系统:
- 连续亏损 5 笔以上
- 月度期望值连续 2 个月为负
- 胜率跌破 35%
- 单月回撤超过 15%
系统失效不一定意味着系统本身有问题,
也可能是市场环境发生了变化(从趋势市变为震荡市,或反之)。
先分析原因,再决定是调整参数还是暂时搁置系统等待市场环境改变。
回测的局限性
⚠️ 重要提示:
-
过拟合:用历史数据优化出来的参数,在未来往往失效。
不要过度优化,保持参数稳健(微小变化不影响结果)。
-
幸存者偏差:历史回测通常只包含现在还存在的标的,
已退市的股票(往往是亏损的)被排除在外。
-
滑点和佣金:回测往往低估实际成本。
在回测结果中加入 0.1-0.2% 的滑点估算。
-
市场环境变化:过去10年的牛市不代表未来10年。
在不同市场环境(牛/熊/震荡)下分别评估系统表现。
最可靠的评估永远是真实资金的实盘记录。
Trading OS 集成
直接调用 BacktestRunner 跑历史回测,不需要手动计算:
python -m trading_os backtest \
--symbols SSE:600000 \
--strategy ma --fast 5 --slow 20 \
--start 2023-01-01 --end 2024-12-31
python -m trading_os backtest \
--symbols SSE:600000 \
--strategy bh \
--start 2023-01-01 --end 2024-12-31
输出包含:总收益率、年化收益、夏普比率、最大回撤、交易次数。
用这些数据评估系统健康度。
如果系统表现显著下滑(夏普 < 0.5,最大回撤 > 20%),触发参数重新优化流程。