[ RESEARCH MEMO / REGIME OVERLAY ]
Not every day is a trading day.
Building a regime-aware overlay so our algorithms run on the days they are built to win, and stand down on the days they are not.
01 / THE PROBLEM
An algorithm that wins on average can still lose real money on bad days.
Our current setup can be thought of as cells: strategy variants separated by day-of-week and direction. Monday long, Monday short, Tuesday long, Tuesday short, and so on. Each cell can show a profitable simulation curve. Each cell can make money on average. But "on average" can hide the most important part of the distribution.
Inside every cell's P&L, some days print large winners and some days bleed losses. A cell is incomplete until it is conditioned on what kind of day it is. A Thursday-long configuration that performs well on trending volatility-expansion days and bleeds on tight chop days may average out as profitable, but the bad regimes are still taxing the good ones.
The edge is not only in the strategy. The edge is in knowing which days to let the strategy run.
So the better question is not simply, "Is the strategy good?" The better question is, "Under what conditions is the strategy good?" That is a regime question. Regime is a property of the day, not the strategy. Volatility level, trend strength, gap behavior, how the market opens, whether the opening-range break holds, and how price behaves after the first impulse all describe the day. If we can label each day's regime and learn which cells make money in which regimes, we can gate the cells: let the system fire in favorable regimes, reduce size in marginal ones, and stand down in hostile ones.
02 / THE IDEA
Label every session by regime, then learn cell x regime edge.
There are two layers.
The macro layer captures the obvious context: volatility regime, trend strength, gap size, overnight range, session structure, and broad market state. This layer is useful, but coarse.
The microstructure layer is the differentiated layer. It describes how the day moved, not just how large the move was or which direction it traveled. Did the opening-range break hold or fail? What did the pullback distribution look like after the break? Did price respect VWAP or detach from it? Was the return distribution left-tailed or right-tailed? Did volume cluster in a few bars or smear evenly across the session? These are fingerprints of trend days, range days, fade days, and exhaustion days.
Cluster the microstructure features within the broader macro state and the system can identify finer-grained day types. Then, for each cell and regime combination, the historical trade log can be analyzed for expectancy, sample size, and distribution. The deliverable is a cell x regime map that says which cells fire, which cells reduce, and which cells stand down.
The fishing analogy
The strategy is the lure. The cell is where we cast it: Monday long, Thursday short, NQ, MNQ, a specific session window. What has been missing is the weather report. Are we casting into water where this lure works, or are we forcing the same lure into the wrong conditions? The regime overlay is the weather report. It does not change the lure. It tells us which days are worth fishing.
03 / THE BUILD PATH
From panel to live gate.
Each patch is a self-contained delivery. The handoff discipline is strict: every patch ships with reproduction code, validation against the prior patch, and a manifest that lists every file and what produced it. Nothing infers from memory. Nothing trusts vibes.
Daily regime panel
2,331 sessions back to 2017. Volatility regime, trend regime, gap bucket, overnight range, moving-average structure, and volatility compression. The base layer.
Intraday microstructure features
Opening-range behavior, break persistence, pullback distribution, MAE/MFE skew, return autocorrelation, realized volatility, VWAP adherence, session skew, tail ratio, gap normalization, and volume concentration.
Macro archetype labels
Compress the high-dimensional panel into a smaller set of named market day types.
Substate clustering
Cluster microstructure features within each archetype and validate walk-forward stability before any substate is trusted.
Cell x substate edge matrix
For each cell and substate: expectancy, sample count, distribution, and decision logic.
Live integration
At a defined time each session, classify the current archetype and substate, look up cell-wise edge, and determine which cells fire, reduce, or stand down.
04 / WHY THIS WORKS NOW
Sample size finally caught up.
Earlier regime work in this project ran on a much smaller window, which made fine-grained substates statistically fragile. With only a few observations per substate, almost anything can look useful in sample. That is not a regime model. That is noise wearing a lab coat.
The rebuilt panel extends the same schema back to 2017 and produces roughly 2,312 fully labeled sessions. That larger sample does not remove the need for discipline, but it gives the cell x regime grid a better chance of surviving shrinkage, walk-forward testing, and out-of-sample validation.
2,312
Sessions labeled
2017 to 2026
50
Features
Per-session feature panel
7.4x
Sample expansion
Versus prior panel
05 / WORKED EXAMPLE
How regime gating changes the math.
ILLUSTRATIVE EXAMPLE — NOT LIVE PERFORMANCE
The numbers below are illustrative only. They are included to explain the logic of regime gating, not to represent live or backtested performance.
THURSDAY LONG — UNCONDITIONAL
Sessions traded: 52
Average P&L per session: +$400
Annual P&L: +$20,800
Max drawdown: -$8,200
SAME CELL — SPLIT BY REGIME
Trending vol-up days: n=18 +$1,950 avg
Range chop days: n=20 -$1,150 avg
Mixed / ambiguous days: n=14 +$200 avg
GATED — FIRE ONLY ON GREEN REGIMES
Sessions traded: 18
Average P&L per session: +$1,950
Annual P&L: +$35,100
Expected max drawdown: -$3,200
P&L lift: +69%
Drawdown reduction: -61%
Same strategy. Same code. Same broker. The only thing that changed is which days the system is allowed to trade. Higher expectancy, lower drawdown, fewer trades. The fewer-trades part matters: every skipped bad day is a day capital is not being used to pay back prior winners.
06 / HONEST ASSESSMENT
What can go right, what can go wrong.
Upside
If the regime-to-edge mapping holds, the system should be able to reduce drawdown, improve cell-level expectancy, reduce commission drag, and free capital by trading fewer low-quality sessions.
More importantly, a regime-aware system becomes the foundation for everything else. Once cells are gated by regime, adding new strategies becomes cleaner because the system can identify the type of regime each strategy is designed to exploit. The operation stops looking like a fixed schedule and starts looking like a portfolio.
Risk
The main risk is overfitting. With many substates and many cells, some buckets will look strong by chance. Without shrinkage, sample-size floors, and walk-forward validation, apparent winners can look real in sample and disappear live.
The second risk is regime drift. A current market does not necessarily behave like a prior market. The system has to be validated across windows, not trained as if markets are stationary.
R1 — Noise-mined substates
Only a subset of substates will carry repeatable edge. The discipline is to ship only those, not the entire map.
R2 — Feature redundancy
Some features will overlap with existing macro buckets. Redundant features can inflate the dimensionality of the model without adding real signal.
R3 — Live drift from simulation
Every simulation number remains provisional until validated against NinjaTrader Market Replay. If drift is outside tolerance, the model does not escape that gate.
07 / THE BIGGER POINT
This is the move every serious systematic operation eventually makes.
Strategy-first thinking is a beginner trap. A clean edge is found, built, and shipped. It works for a while, then it stops working. Often the strategy did not break. The market regime changed, and the strategy was always conditional on a regime the operator was not tracking.
Regime-first thinking flips the problem. The strategy is fixed; the gate is learned. The goal is not to endlessly chase new edges. The goal is to map existing edges to the conditions under which they actually appear.
Every operation that survives long enough eventually gets here. Most just call it something else.
That is the project: build the regime layer, validate the mapping, and use it to decide when the system should fire, reduce, or stand down.