LEGSTECH Optimizer
|
d5a8973c05
|
feat(step1): Universal EA Schema Layer — replaces param_manifest.yaml
NEW FILES:
ea/__init__.py - EA module package
ea/schema.py - ParameterDef + ParameterSchema (replaces YAML manifest)
ea/set_parser.py - Parse ANY MT5 .set file → ParameterSchema
ea/registry.py - EAProfile + EARegistry (ea_registry.yaml)
ea_registry.yaml - LEGSTECH_EA_V2 pre-registered with automation overrides
MODIFIED:
mt5/ini_builder.py - Accepts ParameterSchema OR legacy manifest_path
mt5/runner.py - Accepts optional EAProfile for EA-agnostic validation
config.yaml - Removed hardcoded ea: block; added ea_registry path
KEY DESIGN:
- .set file IS the manifest: value|min|max|step auto-detects float/int/bool/enum/fixed
- automation_overrides in EAProfile forces headless-safe values (InpShowPanel=0)
- Phase A optimization INI: Optimization=2 (genetic), ranges from schema
- Phase B single backtest: Optimization=0 (unchanged behavior)
- LEGSTECH advanced mode: fully backwards compatible via legacy manifest fallback
- runner.py still works for legacy callers (no EAProfile needed)
TESTED:
- 49/49 LEGSTECH params parsed correctly
- InpShowPanel=0 automation override applied
- INI output correct for both Phase A (Optimization=2) and Phase B (Optimization=0)
- All imports pass
|
2026-04-13 19:55:16 +00:00 |
|