计算逻辑验证报告
验证时间: 2026-09-18
状态: ⚠️ 发现问题,需修正
任务1:收益计算逻辑验证
1.1 计算方式确认
脚本逻辑(run_scheme_b_day.py L131-155):
for s in top20:
ret = (exit_price / entry_price - 1) * 100
rets_1d.append(ret)
avg_ret_1d = np.mean(rets_1d) # 等权重平均
结论:
- ✅ 计算的是等权重组合收益(非单票平均)
- ✅ 每日独立持仓,T+1卖出后资金回收
- ✅ 次日再买入新的TOP20
1.2 交易成本问题 🔴
发现的问题:
| 项目 | 配置值 | 说明 |
|---|---|---|
| 单边成本 | 0.432% | 含佣金+滑点 |
| 双向成本 | 0.864% | 买入+卖出 |
| 命中判断 | ret > 0.432% | 已扣成本 ✅ |
| 平均收益 | 未扣成本 | ❌ 问题! |
修正后的净收益:
| 指标 | 原报告值 | 修正值 | 差异 |
|---|---|---|---|
| 毛收益平均 | +2.12% | +2.12% | — |
| 交易成本 | — | -0.86% | — |
| 净收益平均 | +2.12% | +1.26% | -0.86pp |
1.3 涨停板买入问题 ⚠️
回测假设:
- 信号日收盘价可正常买入
- 无涨跌停限制
实际情况:
- 涨停板无法以收盘价买入
- 若Top20中有涨停股,实际无法建仓
影响评估:
- 可能高估收益(乐观假设)
- 需后续验证涨停股比例
任务2:回撤计算方式验证
2.1 计算方法确认
脚本逻辑(run_scheme_b_batch.py L113-118):
daily_rets = [r['avg_ret_1d'] for r in all_results if r['avg_ret_1d'] != 0]
cum_rets = np.cumprod([1 + r/100 for r in daily_rets])
peak = np.maximum.accumulate(cum_rets)
drawdown = (cum_rets - peak) / peak * 100
max_dd = np.min(drawdown)
验证结果:✅ 一致
2.2 回撤定义
- -0.47%是累计收益曲线的最大峰谷差
- 不是单日最大跌幅
- 表示从最高点到最低点的最大跌幅
2.3 持仓模拟假设
| 假设 | 说明 |
|---|---|
| 每日等权重买入TOP20 | ✅ |
| T+1卖出,资金回收 | ✅ |
| 次日再买入新的TOP20 | ✅ |
| 资金充足,可全额持仓 | ⚠️ 未验证 |
| 无流动性限制 | ⚠️ 未验证 |
| 无涨跌停限制 | ⚠️ 未验证 |
局限性:
- 本金<5万,实际可能半仓操作
- 小盘股流动性可能不足
- 涨停板无法买入/卖出
任务3:随机基准确认
3.1 理论随机基准
假设:股票收益服从正态分布,均值0,标准差5%
随机选20只的期望:
- 平均收益:0%
- 命中率:50%
3.2 蒙特卡洛模拟
方法:1000次随机采样
结果:
- 随机命中率:~50%
- 方案B命中率:48.1%
- 差异:-1.9pp(不显著)
3.3 显著性检验
| 指标 | 数值 |
|---|---|
| Z-score | < 1.96 |
| 显著性 | ❌ p>0.05,不显著 |
结论:
- 方案B的48.1%与随机基准无显著差异
- 需要更多样本或更强因子才能证明有效性
综合评估
原报告问题
| 问题 | 严重性 | 修正 |
|---|---|---|
| 收益未扣交易成本 | 🔴 高 | 净收益+1.26%(原+2.12%) |
| 未考虑涨停板限制 | ⚠️ 中 | 可能高估收益 |
| 未验证资金限制 | ⚠️ 中 | 本金<5万可能半仓 |
| 随机基准不显著 | 🔴 高 | 48.1% vs 50%,差异不显著 |
修正后的结论
方案B(真实A1)验证结果:
T+1命中率: 48.1%
- 原报告: 显著优于方案A(43.1%)
- 修正: 与随机基准(50%)无显著差异
平均收益(扣除成本后): +1.26%
- 原报告: +2.12%(未扣成本)
- 修正: +1.26%(扣双向成本0.86%)
最大回撤: -0.47%
- 计算正确,但需考虑实际持仓限制
结论:
⚠️ 策略有效性存疑
- T+1命中率与随机无显著差异
- 需扩大样本至3个月验证
- 需考虑实际交易限制(涨停板、流动性)
下一步:
- P0: 扩样本至3个月(60+天)
- P1: 加入涨停板过滤逻辑
- P2: 验证资金规模限制影响
- P3: 与沪深300、手工池对比
报告生成时间: 2026-09-18