ML Models & Strategy Layer
ML models (5 families)
Production authority differs per model -- some carry active decision weight today, others provide context/gating only, and one is currently shadow/zero-weighted pending further validation. Stated plainly rather than implying uniform "live" status across all five:
| Model | Type | Role | Runtime status |
|---|---|---|---|
| Direction Predictor (GBM) | Gradient-boosted ensemble (LightGBM + XGBoost + CatBoost) | Binary direction prediction | Inference active; execution influence flag-gated/shadow -- live-capital authority not enabled |
| Regime Detector (HMM) | Gaussian Hidden Markov Model | Classifies market state: trending, mean-reverting, volatile, quiet | Active as gate/context -- regime selector, not a standalone scorer |
| Cascade Predictor | LightGBM + CatBoost | Liquidation-cascade risk blocking | Active as risk blocker -- hard-veto on cascade risk, not a directional vote |
| DeepLOB | CNN + Transformer | Limit-order-book microstructure signal | Shadow / zero ensemble weight -- runs, but does not currently move a live decision. Repurposed toward entry-timing use; not yet re-weighted into the consensus |
| RL Meta-Optimizer | Soft Actor-Critic (SAC) | Parameter tuning | Meta-only -- adjusts other components' parameters, does not vote directionally itself |
This status table is re-verified periodically, not written once and left stale -- if a model's role changes (DeepLOB gets re-weighted, for example), this page updates in the same commit.
Training runs through a 16-module pipeline (training/) covering drift monitoring, daily retraining, multi-symbol orchestration, walk-forward validation, and backtesting — model updates are not manual, one-off retrains.
Strategy modules (15)
Rather than running 15 independent bots, the platform coordinates 15 strategy modules through a consensus layer:
antifragile.py— meta-framework orchestrating barbell allocation across the ensemblestrategy_mux.py— multi-strategy consensus and weighted votingdecision_engine.py— risk gate and signal fusion pipelinedecision_council.py— individual model voting with veto logicconfluence_engine.py— multi-timeframe confluence scoringregime_adaptive.py— regime-aware parameter shiftingrl_agent.py— the SAC meta-optimizer described aboveauto_evolve.py— edge-decay tracking against forward performance telemetry and parameter evolutionmodel_orchestra.py— ensemble inference coordinatormicrostructure_filter.py— order-book toxicity and execution-quality guardtail_risk.py— fat-tail hedge positioningopportunity_scorer.py,vol_harvester.py,guerrilla_integration.py,profiles.py— signal ranking, volatility-reversion capture, tactical cascade handling, and per-profile parameterization
Why ensemble, not single-model
A single model failing or drifting degrades gracefully rather than taking the whole system down — the consensus layer down-weights underperforming signals based on tracked forward performance (auto_evolve.py) instead of requiring a manual intervention to notice and fix. This is the same principle documented in Engineering Practice: the system is built to keep functioning without a person in the loop for routine degradation.