mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 18:04:20 +08:00
基准先行(scripts/bench_engine.py):ma_cross 800 根全流程基线 93.6ms。 profile 打破预期:85% 墙钟在 OrderSimulator._find_bar_index(每信号全列 strftime),而非计划认为的逐 bar 信号循环。三处优化(行为逐位一致): - Strategy 新增 entry_exit_masks() 显式钩子,19 个内置策略全实现;引擎按 掩码 + 候选事件 bar 状态机一次产出信号,持仓估算逐行复刻 _update_strategy_position(含买不足 1 手退化路径);约束检测 _vectorize_eligibility 显式可测,signal_path=auto/vector/loop 可指定; 不满足约束(无钩子/缠论注入/掩码形状错)自动回退逐 bar - OrderSimulator._build_dt_lookup:O(信号×bar) 全列扫描 → 每 simulate 一次 O(bar) 查找表(重复日期取首个、未命中 None、object 恒不匹配语义对齐) - _datetime_to_int 去 strftime:year*10000+month*100+day 整数算术 (NaT→NaN 行为一致),_bind_data 与查找表共用 实测:ma_cross 全流程 93.6→7.4ms(×12.6),信号层 ×1.39~1.72(四策略); 32 点网格寻优 ~3.0s→231ms。对拍 39 例:19 策略×参数变体×warmup/低资金/ 费率/缓存,performance/trades/equity/positions 逐位一致。 顺带记录:wr_reversal 默认阈值与 MyTT WR 刻度不匹配(策略恒不交易,既有问题未改)