The problem
Markets are noisy. ML classifiers overfit. Most personal trading projects amplify risk without serious checks — a candidate model with AUC 0.52 is indistinguishable from luck, but it still tells you to buy.
I wanted a system where every signal passes through gates I would actually trust: regime alignment, volatility threshold, model confidence floor, position sizing capped on dollar risk — not on tier notional. And one where the worst possible outcome is a paper loss.
Architecture
Safety — the part that matters
This is where the FDE instinct lives. Every guardrail is a hard block, not a soft suggestion. No override-on-high-score escape hatches.
- VIX > 25 hard-blocks all long signals. No tier override, no model confidence override, no exceptions. The first thing I learned shipping ML to production is that overrides become the leak.
- Daily loss breaker. N consecutive losing days pauses all new entries. The breaker resets only after a manual review.
- ML observation mode. Gating stays disabled until ≥ 20 closed paper trades have
ml_predicted_win_probpopulated and AUC > 0.55 on 5+ independent walk-forward folds. Calibration curve must show predicted 0.6 ≈ actual 60%. - HMM counter-trend = block. A regime mismatch overrides tier and score. Trend signals only fire in matching regimes.
What the numbers say
By design. Not for sale, not for advice. The point isn't to make money — it's to demonstrate that LLM-orchestrated decisioning can be built with the same discipline as a regulated trading system.