This commit is contained in:
rosemarycox5334-debug
2026-07-10 18:09:21 +08:00
parent 0e255fae26
commit 2bb61b1086
4 changed files with 112 additions and 21 deletions
+4 -3
View File
@@ -37,7 +37,7 @@ class ModelConfig:
# 2. 放大采样预算:BATCH_SIZE 128→256,TRAIN_STEPS 3000→8000
# 3. 更大精英池(60)保留更多历史最优
BATCH_SIZE = 192 # 每步采样公式数(原 128,1.5x 提升覆盖率)
TRAIN_STEPS = 5000 # 每组训练步数(原 3000)
TRAIN_STEPS = 9000 # 每组训练步数(55次重启需要更多步数)
MAX_FORMULA_LEN = 8 # 公式长度上限:保持 8(10 会导致 CPU 训练慢 3 倍)
# ── 特征维度(由 vocab.py 自动派生,无需手动修改)──────────────────
@@ -86,9 +86,10 @@ class ModelConfig:
ELITE_REWARD_SCALE: float = 1.2
# ── 坍塌重启(大空间加强版)─────────────────────────────────────────
# MAX_RESTARTS 8→25、RESTART_NOISE 0.05→0.1:时间不敏感,多给机会+更强扰动。
# MAX_RESTARTS 8→25→55、RESTART_NOISE 0.05→0.1→0.25:时间不敏感,多给机会+更强扰动。
# 配合 engine.py:超过 MAX_RESTARTS 后不再 Early Stop,改为强扰动继续训练。
MAX_RESTARTS: int = 25
# 2026-07-09: US100 训练 24/25 重启仍有突破,扩到 55 次。
MAX_RESTARTS: int = 55
RESTART_NOISE: float = 0.25
# ── 自适应噪声:Best 停滞时自动增大扰动 ─────────────────────────────
+9 -9
View File
@@ -2,14 +2,14 @@
"vocab_version": "v9217a2c0d91a",
"symbol": "US100.cash",
"formula": [
2,
96,
121,
71,
78,
113,
119,
89
57,
89,
75,
89,
39,
116,
117,
123
],
"best_score": 1.945467233657837
"best_score": 1.377672553062439
}
+9 -9
View File
@@ -2,14 +2,14 @@
"vocab_version": "v9217a2c0d91a",
"symbol": "US30.cash",
"formula": [
12,
100,
50,
86,
120,
13,
86,
98
20,
76,
24,
104,
93,
114,
77,
102
],
"best_score": 1.1718814373016357
"best_score": 0.880893886089325
}
+90
View File
@@ -0,0 +1,90 @@
{
"name": "us100_v2",
"version": "2026-07-09",
"vocab_version": "v9217a2c0d91a",
"status": "verified",
"symbol": "US100.cash (Nasdaq-100)",
"mode": "single + OOS_gate + extended(55 restarts)",
"formula_tokens": [
57,
89,
75,
89,
39,
116,
117,
123
],
"formula_readable": "ROLL_SKEW_20 -> TS_MAX_10 -> DELAY1 -> TS_MAX_10 -> YANG_ZHANG_VOL -> MAX -> POWER -> CLIP",
"formula_operators": [
"ROLL_SKEW_20",
"TS_MAX_10",
"DELAY1",
"TS_MAX_10",
"YANG_ZHANG_VOL",
"MAX",
"POWER",
"CLIP"
],
"train_best_score": 1.377672553062439,
"train_step": 3740,
"train_restarts": 23,
"train_total_duration": "~9h (5000+9000 steps, 30 restarts)",
"backtest": {
"annual_return": "+34.5%",
"sharpe": 1.86,
"ic": "+0.020",
"win_rate": "53.1%",
"turnover": "188 trades/year",
"position_bias": "59% long / 40% short",
"data": "5.3 years, 32,973 H1 bars",
"note": "OOS门控+扩展重启版。vs v1:Sharpe从2.18降到1.86但5/5年全盈+4/4 WF。vs step2320(早期):Sharpe 1.27→1.86(+46%)。核心突破在于把DELAY1从第一位换到TS_MAX_10之后",
"walk_forward": {
"fold1": {
"oos": "+0.50",
"sharpe": 2.13
},
"fold2": {
"oos": "+0.15",
"sharpe": 1.09
},
"fold3": {
"oos": "+0.37",
"sharpe": 1.86
},
"fold4": {
"oos": "+0.23",
"sharpe": 1.69
},
"total_oos": "+1.25",
"verdict": "PASS — ALL 4 folds profitable (4/4)"
},
"yearly": {
"year1": {
"pnl": "+0.37",
"sharpe": 1.4
},
"year2": {
"pnl": "+0.34",
"sharpe": 1.56
},
"year3": {
"pnl": "+0.08",
"sharpe": 0.61
},
"year4": {
"pnl": "+0.38",
"sharpe": 2.79
},
"year5": {
"pnl": "+0.21",
"sharpe": 1.08
}
}
},
"logic": {
"summary": "偏斜脉冲+Yang-Zhang波动+双层峰值筛选",
"detail": "ROLL_SKEW_20找价格分布偏斜→TS_MAX_10先取峰值→DELAY1延迟确认→二次TS_MAX_10强化→YANG_ZHANG_VOL(含隔夜跳空)波动归一→MAX取大→POWER放大→CLIP截断",
"key_insight": "TS_MAX_10放在DELAY1之前是关键:先捞到最强信号再等确认,比先等再找更有效。YANG_ZHANG_VOL比ATR更适合纳指因其能捕捉盘后跳空"
}
}