Skip to main content

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:

ModelTypeRoleRuntime status
Direction Predictor (GBM)Gradient-boosted ensemble (LightGBM + XGBoost + CatBoost)Binary direction predictionInference active; execution influence flag-gated/shadow -- live-capital authority not enabled
Regime Detector (HMM)Gaussian Hidden Markov ModelClassifies market state: trending, mean-reverting, volatile, quietActive as gate/context -- regime selector, not a standalone scorer
Cascade PredictorLightGBM + CatBoostLiquidation-cascade risk blockingActive as risk blocker -- hard-veto on cascade risk, not a directional vote
DeepLOBCNN + TransformerLimit-order-book microstructure signalShadow / 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-OptimizerSoft Actor-Critic (SAC)Parameter tuningMeta-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 ensemble
  • strategy_mux.py — multi-strategy consensus and weighted voting
  • decision_engine.py — risk gate and signal fusion pipeline
  • decision_council.py — individual model voting with veto logic
  • confluence_engine.py — multi-timeframe confluence scoring
  • regime_adaptive.py — regime-aware parameter shifting
  • rl_agent.py — the SAC meta-optimizer described above
  • auto_evolve.py — edge-decay tracking against forward performance telemetry and parameter evolution
  • model_orchestra.py — ensemble inference coordinator
  • microstructure_filter.py — order-book toxicity and execution-quality guard
  • tail_risk.py — fat-tail hedge positioning
  • opportunity_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.