任务2 4诊断报告

源文件:D:\Hermes\评估中心\reports\backtest\任务2-4诊断报告.md · 日期 2026-09-18 · 6KB

任务2-4 诊断报告

执行时间: 2026-09-18
状态: ✅ 完成
标注: 基于简化版回测,结论有局限


任务2:回撤来源分析

2.1 整体回撤

指标 值
最大回撤 -46.47%
回撤区间 20260622 ~ 20260720
峰值日期 20260622(累计117.9)
谷底日期 20260720(累计63.1)
回撤持续 21个交易日

2.2 分月表现

月份 天数 T+1命中率 T+5命中率 平均收益 净收益 结论
202606 21 49.0% 50.0% +1.32% +0.46% 持平
202607 23 46.3% 48.5% -0.48% -1.34% ❌ 最差
202608 21 55.7% 58.3% +1.85% +0.99% 最好
202609 7 44.3% 17.9% +1.21% +0.35% 数据不全

2.3 最大回撤时段分析(6/22-7/20)

行情特征:
- 6月22日累计峰值117.9(+17.9%)
- 7月20日累计谷底63.1(-36.9%)
- 21个交易日中15天亏损,连续亏损最长6天

最差5天:
| 日期 | 收益 | T+1命中率 | 池子规模 |
|------|------|-----------|----------|
| 07/15 | -6.22% | 25% | 1338 |
| 07/16 | -5.24% | 5% | 1335 |
| 07/06 | -4.90% | 20% | 1332 |
| 07/10 | -4.69% | 30% | 1332 |
| 07/14 | -4.57% | 45% | 1338 |

回撤根因分析:
1. 选股失效: 7月T+1命中率46.3%,低于随机50%
2. 池子膨胀: 6/22起池子从768只跳至1183只,7/20跳至3264只(扩容3倍)
3. 因子钝化: 大盘股涌入后,A1/B5/B6因子区分度下降
4. 缺少止损: 简化版无veto/止损机制,连续亏损无干预
5. 行情因素: 7月为传统弱势月,但策略未做择时

标注: 基于简化版(代理A1+无layer3),回撤分析有局限。


任务3:手工池同期对比

3.1 对比条件

项目 手工池 自动池Top20
股票数 12只固定 20只/日动态
选股方式 人工挑选 因子排序
样本天数 16天(8/19-9/9) 72天(6/1-9/9)
回测版本 真实价格 代理A1

3.2 对比结果

指标 手工池(12只) 自动池Top20 差值
T+1命中率 44.3% 49.7% -5.4pp
T+5命中率 35.9% 48.8% -12.9pp
平均收益T+1 +0.17% +0.90% -0.73pp
净收益T+1 -0.69% +0.04% -0.73pp
夏普比率 -7.12 0.14 -7.26
最大回撤 -11.35% -46.47% +35.12pp
累计收益 -10.64% -1.79% -8.85pp

3.3 分月对比

月份 手工T+1% 自动T+1% 手工净收益 自动净收益
202608 53.7% 55.7% -0.67% +0.99%
202609 32.1% 44.3% -0.71% +0.35%

3.4 结论

标注: 手工池12只为stock_pool.csv中10只+持仓2只,非用户所说的28只。找不到28只列表。


任务4:补齐缺失模块工作量评估

4.1 因子实现现状

因子 当前状态 真实实现位置 补齐难度 工时
sector_z ✅ 真实 backtest_msv2_real.py:397 已完成 0h
concept_z ⚠️ 有误 用ts_code后6位匹配 低 2h
chip ❌ 代理 chip_concentration_pro.py(913行) 高 8h
holder ❌ 代理 需tushare股东数据 中 4h
tb ❌ 代理 tdx_core.py(120行) 高 6h
sentiment ❌ 代理 需情绪指标数据源 中 4h
margin ❌ 硬编码50 margin_layer.py(324行) 中 4h

4.2 层级模块现状

模块 文件 大小 可调用 补齐难度 工时
layer1_filter backtest_msv2_real.py ✅ 已调用 ✅ 已完成 0h
layer2_filter backtest_msv2_real.py ✅ 已调用 ⚠️ 代理 中 12h
layer3_filter 不存在 ❌ ❌ 高 16h
war_council war_council.py 61K ✅ 可调用 中 8h
veto_engine veto_engine.py 4.6K ✅ 可调用 低 4h
entry_score entry_score.py 4.2K ✅ 可调用 低 4h

4.3 工作量汇总

优先级 模块 工时 说明
P0 veto_engine集成 4h 已有4.6K实现,直接调用
P0 entry_score集成 4h 已有4.2K实现,直接调用
P1 margin真实化 4h margin_layer.py已有
P1 concept_z修正 2h 逻辑有误需修
P1 holder真实化 4h 需tushare股东数据
P2 chip真实化 8h chip_concentration_pro.py需集成
P2 tb真实化 6h tdx_core.py需集成
P2 sentiment真实化 4h 需情绪指标数据源
P3 layer3实现 16h 需从零写共振确认
P3 war_council集成 8h 61K实现需适配
合计 60h 约7.5个工作日

4.4 关键发现

layer2_filter的7个深度因子中,6个是代理或硬编码:

# backtest_msv2_real.py 第390-409行
sector_z = zscore_data.get(sector, 50)       # ✅ 真实
concept_z = zscore_data.get(ts_code[-6:], 50) # ⚠️ 逻辑有误
chip = 100 - factors.get('B6_volatility', 50) # ❌ B6代理
holder = min(100, a2 * 2)                     # ❌ A2代理
tb = 50 + b1 * 25                             # ❌ B1代理
sentiment = b4                                # ❌ B4代理
margin = 50                                   # ❌ 硬编码

这是策略无效的核心原因: layer2_filter号称7因子加权,实际只有1个真实因子。


输出文件

文件 路径
回撤分析数据 reports/backtest/drawdown_analysis.json
手工池对比数据 reports/backtest/manual_pool_comparison.json
本报告 reports/backtest/任务2-4诊断报告.md

报告生成时间: 2026-09-18 23:50 CST