← 归档索引 · 2026-10-11 08:03 · 判据权重自动更新-周日8点
# Cron Job: 判据权重自动更新-周日8点

**Job ID:** a579be877a74
**Run Time:** 2026-10-11 08:03:18
**Mode:** no_agent (script)

---

📊 判据权重自动更新 (10-11 08:03)

开始回测: universe=all sample=200 horizon=5日
  已处理 50/200
  已处理 100/200
  已处理 150/200

回测完成: 样本股票197只, 触发判据统计:
  ⚠️ base rate(全样本 22920 个窗口的超额>0 占比)= 37.9%
  ⇒ 判据胜率必须比它高才算有能力; 低于它 = 无区分度(甚至反向)
  wash_low_nobreak: N=1817 超额胜率=36.8% 有效性=-1.1pp ❌无区分度 超额均值=-1.11%
  wash_high: N=801 超额胜率=36.8% 有效性=-1.1pp ❌无区分度 超额均值=-1.40%
  break_ma20_high: N=967 超额胜率=37.1% 有效性=-0.8pp ❌无区分度 超额均值=-1.23%
  break_ma20_low: N=6322 超额胜率=42.5% 有效性=+4.5pp ✅有效 超额均值=-0.61%
  wash_low: N=1871 超额胜率=39.2% 有效性=+1.3pp ⚠️弱 超额均值=-1.12%
  back_ma5: N=2826 超额胜率=39.4% 有效性=+1.5pp ⚠️弱 超额均值=-0.77%
  break_ma20_vol: N=1363 超额胜率=43.2% 有效性=+5.3pp ✅有效 超额均值=-0.31%

⚠️ 无实际信号验证数据(market_validator记录为空)

★ 强势股分池对比(5日超额胜率; ⚠️强势池=系统自选票, 有选择偏差):
  wash_low_nobreak: 强势池N=1125 超额胜率34.4% 有效性-3.5pp | 全量N=1817 超额胜率36.8% (base rate 37.9%)
  wash_high: 强势池N=503 超额胜率36.0% 有效性-2.0pp | 全量N=801 超额胜率36.8% (base rate 37.9%)
  wash_low: 强势池N=124 超额胜率30.6% 有效性-7.3pp | 全量N=1871 超额胜率39.2% (base rate 37.9%)
  back_ma5: 强势池N=851 超额胜率37.5% 有效性-0.5pp | 全量N=2826 超额胜率39.4% (base rate 37.9%)
  写回(合并式): 更新 7 键, 保留 1 键 | 备份 validated_weights.py.bak_wr_20261011_080315 | 语法✅ 键数8→8✅
报告已存: /home/ubuntu/stock_workspace/reports/weight_autotune_20261011.json

口径: 全A随机样本 + 5日【超额】(减同期基准) = 命中; 权重=胜率映射
硬约束: 有效性(胜率−base rate) ≤0 → 权重≤0.5(无区分度者不加权)
样本<30的判据 → 0.5 中性(不沿用旧值)
⚠️ stderr 非空(rc=0,可能只是警告): get_daily 002208.SZ westock primary failed: 'close' get_daily 603028.SH westock primary failed: 'close' get_daily 600237.SH westock primary failed: 'close'

📊 因果基因
- 数据源: data_hub全A随机200只历史日线 + date_utils.bench_ret同期基准(5日超额收益)
- 分析路径: 滑动窗口检测8判据触发→触发后5日超额收益→胜率→权重映射(≥65%→1.4…<50%→0.5)→合并写回validated_weights.py
- 判断: 输出各判据样本数/胜率/权重;样本<30→0.5中性、有效性≤0→权重≤0.5;失败/超时显式❌上报