Record AR-EXP-071 · Regime Classification
The same rules produce
different systems in different states.
A framework does not have an expectancy. It has an expectancy given a market state. This page sets out the eight states the Foundry classifies, the variables that define them, how they move into one another, which of twelve strategy frameworks each one supports, and what happens to modelled expectancy when the strategy is held fixed and only the state is allowed to change.
Interactive demonstration — not a historical backtest
Regime is a precondition,
not a filter.
A filter is something you add to an existing system to improve it. A precondition is something that has to be true before the system means anything at all. Most trading platforms treat market state as the first. The distinction changes what you do with it.
Treated as a filter, regime classification is a tuning exercise: bolt an ADX reading or a volatility percentile onto the entry logic, watch the backtest improve, and keep whichever threshold produced the improvement. The strategy is assumed to work; the filter is assumed to make it work better. Both assumptions are usually wrong in the same direction, because the filter was selected on the same sample that produced the apparent edge.
Treated as a precondition, the ordering reverses. The question is no longer "does this filter improve results" but "in which states is this framework's underlying claim about price even plausible". A continuation framework claims that directional movement persists. In a state where nothing persists, the claim is false — and no amount of parameter adjustment repairs a false premise. The correct action is not to tune. It is to stand down.
This is why regime sits upstream of every other decision in the Foundry. Stop geometry, target structure, concurrency and risk are all conditional on the state being one in which the framework's premise holds. Get the ordering wrong and every downstream measurement is being taken on a population that should never have been traded.
A useful test
If removing a regime condition turns a profitable configuration into an unprofitable one, the condition was a precondition and belongs in the framework definition. If it moves expectancy by a few percent either way, it was a filter — and a filter that survives one sample is a hypothesis, not a rule.
Three ways this is normally got wrong
Where this sits in the pipeline
State classification
Which of the eight states is the instrument in, on the authority timeframe.
Framework permission
Is this framework's premise plausible in that state, and which branches are unlocked.
Parameter response
Only now: stop coefficient, target structure, concurrency, correlation ceiling.
Eight states,
defined so they can be disagreed with.
Eight is a design decision, not a discovery. Fewer states cannot distinguish an expanding market from a trending one; more states produce categories too narrow to accumulate a sample. Each record below carries its own definition, state vector, principal risk and likely successors.
Walk the corridor.
Select a state to move the corridor into it. Each state drives a distinct motion behaviour on one unchanged geometry — the same instrument, the same rules, a different set of conditions acting on them. The likely successors in the panel are selectable, so the corridor can be walked as a path.
Regime corridor
The corridor is decorative. Ring spread tracks the volatility coefficient, forward travel tracks drift, ring deformation tracks dispersion, and the accent colour tracks the state's classification tone. Everything it depicts is stated numerically in the panel beside it.
Simulated demonstration data — illustrative engine output
Four variables,
and how you would actually measure them.
A state is not a label applied by eye. It is a point in a four-dimensional space, and each dimension has to be reducible to something computable from data that exists at the left edge of the chart.
Variable 01
Volatility state
Not how volatile the instrument is in absolute terms, but where its current volatility sits against its own history. An instrument with a 30-pip average range is not "quiet" — it is quiet only if 30 pips sits in the lower part of its own distribution.
Variable 02
Trend state
Directional persistence: the degree to which movement in one direction is followed by more movement in the same direction. This is the variable that separates an expansion from a trend, and it is routinely conflated with the previous one.
Variable 03
Liquidity state
The cost and reliability of getting in and out. This is the variable retail systems ignore entirely, and it is the one that decides whether a modelled edge survives contact with an order book. In the Foundry's state vectors it appears as the dispersion coefficient.
Variable 04
Correlation state
How much of the movement across the traded universe is one movement wearing several names. This variable is what converts a diversified book into a single position, and it does so precisely when the single position is going the wrong way.
Each row is one classified state; each column is one of the four variables above, expressed on a common zero-to-one scale. Drift is signed — Risk-Off Shock is the only state with a negative reading, and it is the only one that carries both the highest volatility and the highest correlation at once. These coefficients are design constants used to parameterise the preview engine, not estimates from market data.
States do not follow
each other at random.
Compression does not become a shock without passing through expansion. A structured trend does not become a stable range without first losing its impulse. The reachability structure is the part of regime analysis that is genuinely informative even when the probabilities are not.
Row is the current state, column the next.
Column key
This is a structure, not an estimate
The numbers in this matrix are derived arithmetically from each state's declared successors and its own volatility coefficient. They are not estimated from price history, and no claim is made that any market transitions at these rates. What the matrix encodes honestly is reachability: which states can follow which, and which cannot follow directly at all.
Read down the diagonal first. Every state is more likely to persist than to become any single other state, which is the mathematical statement of the thing every trader knows intuitively: conditions have inertia. Read across the rows second — the off-diagonal mass is concentrated in two or three cells, not spread evenly, and that concentration is the useful part.
The rows that matter most are Exhausted Trend and Risk-Off Shock. Exhausted Trend is the only state with three plausible successors, and one of them is a shock: it is the widest fork in the structure and therefore the point at which a classification error is most expensive. Risk-Off Shock has the lowest self-persistence in the matrix, which is exactly why it is so dangerous — the state resolves quickly, and the temptation is to resize before it has.
P(i→i) = 0.72 − 0.30 · vol(i)
Self-persistence falls as the state's volatility coefficient rises. The remaining mass is distributed across the state's declared successors in the order they are listed, with weights of 3, 2 and 1.4, after reserving a 2% floor for every destination not listed. Rows sum to one by construction.
Why a floor exists at all
No transition is truly impossible. A stable range can become a shock in one session on an unscheduled headline, with no expansion phase in between. A model that assigns zero probability to that path will be surprised by it, and surprise is expensive. The 2% floor is a statement that the structure is a guide, not a constraint.
Classification works in the middle
and fails at the edges.
The states are easiest to identify when you least need to identify them, and hardest to identify at exactly the moment the identification would have been worth something.
Expected number of consecutive classification windows spent in each state.
Dwell time is the reciprocal of the probability of leaving: a state that persists with probability 0.64 lasts on average 2.8 windows. Quiet states last longest because low volatility is self-reinforcing — compression tends to beget compression until something external ends it. High volatility states are the shortest, which is counter-intuitive only until you notice that volatility is mean-reverting and drift is not.
The practical consequence is that the middle of a state is cheap to classify and the boundary is expensive. Three windows into a structured trend, every measurement agrees. At the transition, the volatility reading, the efficiency ratio and the structure reading disagree with each other, and the disagreement itself is the only honest signal available.
Regime classification from price alone
An attempt to classify all eight states using only realised volatility and directional persistence. Classification accuracy was insufficient at the transitions — which is precisely where the classification would have been useful. Recorded as failed and retained, because a negative result about where a method breaks is more useful than an aggregate accuracy figure that hides it.
The research archive, including failed records →Twelve frameworks against eight states.
Every framework in the library declares the states it is built for and the states it is known to struggle in. Laid out together, the grid shows something no individual framework record does: the columns are not equally served.
Green marks a state the framework record lists as ideal; red marks one it lists as weak.
Two things are visible in the grid that are invisible one framework at a time. The first is that the directional family clusters. Trend Following and Momentum declare the same two states ideal and overlap heavily on the states they call weak; Pullback Continuation and Break and Retest sit alongside them. Running four of these together is closer to running one of them at four times the size than the framework count suggests — and the correlation section of the risk observatory shows what that does to a drawdown.
The second is that coverage is badly uneven. Structured Trend and Volatile Range are each declared ideal by six of the twelve frameworks. Quiet Compression, Risk-Off Shock and Recovery Transition are each declared ideal by exactly one. A state served by a single framework is a single point of failure: if that framework is in a period of poor performance, the operator's entire capacity to trade the state goes with it, and the instinct at that point is to loosen some other framework's declared conditions until it fits. That is how a portfolio of distinct strategies quietly becomes one strategy misapplied everywhere.
Coverage by state
Hold the framework still.
Move the market.
One framework — Pullback Continuation on a fifteen-minute trigger with hourly authority — evaluated eight times. Nothing about the strategy changes. Only the conditions it is asked to operate in.
Modelled net expectancy per trade, in units of risk.
Interactive demonstration — not a historical backtest
How each state was represented
What this figure is and is not
This is a modelled illustration of a relationship — that a fixed framework's expectancy is a function of market state — and not a measurement of how any strategy performed in any market. The magnitudes come from a deterministic preview engine with design constants, not from data. The consistency check worth noting is that the two states this framework's own record declares ideal come out positive, and the two it declares weak come out as the two weakest of the eight — without either declaration being supplied to the calculation.
Permission is granted
per population, not per system.
A framework is not a single thing that is either on or off. It is four populations with different exit logic and different dependence on continuation — and a state can be hospitable to one of them and hostile to another.
| Market state | Normal | Trend Partial | Trend No-Partial | Overflow | Reasoning |
|---|---|---|---|---|---|
| Quiet Compression | Permitted, reduced count | Blocked | Blocked | Blocked | No directional authority exists to confirm, so the trend populations have no activation condition. The Normal population can operate, but every signal is competing with a spread that is proportionally expensive against a small working stop. |
| Emerging Expansion | Permitted | Conditional | Blocked | Blocked | Range is extending but direction is unresolved. Trend Partial may activate where higher-timeframe structure has already turned; committing the full no-partial population to an unconfirmed direction is paying for a trend that has not been established. |
| Structured Trend | Permitted | Permitted | Permitted | Conditional | The only state in which all four populations have a defensible case. It is also the state in which complacency is most expensive, which is why Overflow remains conditional on a strong directional week rather than becoming a default. |
| Exhausted Trend | Permitted | Reduced | Blocked | Blocked | Impulses are shallowing and retracements are deepening. A no-partial runner in this state is holding full exposure into a continuation profile that is decaying; taking the partial is the correct response to a right tail that is closing. |
| Stable Range | Permitted | Blocked | Blocked | Blocked | Defined boundaries and mean-reverting behaviour. The trend populations exist to monetise continuation, and continuation is the one thing this state does not offer. It is, however, the cleanest state in which to measure execution quality. |
| Volatile Range | Reduced | Blocked | Blocked | Blocked | Signals fire constantly and resolve rarely. Adverse excursion distributions widen sharply, so the same stop is invalidated by noise rather than by thesis failure. Reducing the count matters more than adjusting the logic. |
| Risk-Off Shock | Reduced, or stand down | Blocked | Blocked | Blocked | Correlation converges toward one, so concurrent positions stop being separate risks. This is the state in which the shock-loss term earns its place in any honest model: stops gap, and they gap on several positions at once. |
| Recovery Transition | Permitted | Staged | Staged, last | Blocked | Populations are re-enabled in order of variance rather than all at once, and the correlation ceiling stays tight until it has demonstrably unwound. Premature normalisation is the characteristic failure of this state. |
L3 Proposed structure for the planned application. Automatic branch permission by classified state is intended future production behaviour, not a capability of this preview. The matrix is a design position, not a measured result; branch definitions are given in full on the branch architecture page.
Branch architecture and the four populations →What goes wrong
at the boundary.
Transitions are a small fraction of the calendar and a large fraction of the damage. Three separate mechanisms combine there, and each one is individually survivable.
The first is classification lag: every state variable is computed over a window, so every reading describes the recent past. The second is parameter inheritance: settings calibrated for the outgoing state remain active into the incoming one. The third is exposure timing — the transition frequently arrives while positions opened under the previous state are still open.
Trend into exhaustion — the invisible transition
Every indicator that identified the trend still identifies it. Direction persists, the moving averages are still ordered, the higher timeframe still looks aligned. What has changed is the shape of continuation: impulses shorten and retracements deepen. Continuation entries continue to fill and then immediately experience adverse excursion. This transition is the single most expensive one in the taxonomy because it produces no warning that a naive classifier can read.
Range into shock — the correlation transition
The book was constructed under an assumed correlation of a third. It resolves under a correlation approaching one. Nothing about the individual positions changed; the relationship between them did, and the aggregate risk the operator believed they held was never the risk they actually held. Open-risk ceilings bind here in a way that per-trade risk limits do not.
Shock into recovery — the resizing transition
Volatility falls first, correlation unwinds second, and the gap between the two is where accounts are damaged after the event that was supposed to have damaged them. Sizing back up on the volatility reading alone restores full exposure to a book that is still effectively one position.
Compression into expansion — the false-start transition
The least dangerous of the four and the most annoying. Filters tuned in expansion fire on compression noise, and the first genuine expansion is frequently preceded by two or three that fail. The correct response is a slower confirmation, not a tighter stop — a tighter stop converts a timing problem into a loss.
How this page was built.
Three different kinds of object appear on this page, and they carry different weight. Keeping them separate is the whole point of publishing the method.
01 · The taxonomy
A design position. Eight states chosen so that each one implies a different framework response and each one can accumulate enough observations to be studied. The definitions are written to be falsifiable rather than comprehensive: it should be possible to point at a period and say the classification was wrong.
02 · The state vectors
Four coefficients per state on a zero-to-one scale, hand-set as design constants. They exist to parameterise the preview engine consistently, so that "shock" means the same thing in Figure 1, Figure 2, Figure 3 and Figure 5. They are not estimated from any dataset and should not be read as such.
03 · The transition matrix
Derived arithmetically: self- persistence from the volatility coefficient, off-diagonal mass distributed across each state's declared successors with fixed weights, and a uniform floor everywhere else. Rows sum to one by construction. The reachability pattern is the claim; the numbers are a rendering of it.
04 · The compatibility grid
Read directly out of the twelve framework records — each one declares its own ideal and weak states, and the grid is a transposition of those declarations. Nothing is inferred. If a cell is wrong, the framework record is wrong, and both are corrected in the same place.
05 · The expectancy figure
Eight calls to the preview engine with one framework held constant. Each state is translated into engine parameters through six documented channels — volatility window, expansion threshold, directional conviction, chase distance, friction and correlation. Every value is deterministic; the same page always produces the same figure.
06 · The corridor scene
Decorative. Eight motion profiles mapped one-to-one onto the eight states, so that each selection produces a visibly distinct behaviour on identical geometry. It carries no information that is not also stated numerically in the panel beside it, and the page is complete without it.
The honest admission.
Regime classification is the part of this laboratory with the widest gap between how useful it would be and how reliably it can be done.
Everything on this page is worth building. None of it should be trusted at the moment it matters most without a second, independent reading.
Classification from price alone is unreliable at transitions
This is not a caveat; it is a documented negative result. Record AR-EXP-097 attempted exactly this and failed. Accuracy in the middle of a state was acceptable and accuracy at the boundary was not — and since the middle of a state is the period in which classification changes no decision, the method failed at the only point where it had value. Anything on this page that depends on knowing the state early should be treated as an open research problem, not a solved one.
The states are not mutually exclusive
An instrument can present as a structured trend on the daily and a volatile range on the fifteen-minute. The taxonomy is defined relative to an authority timeframe, and every statement on this page is conditional on that choice. Two operators using different authority timeframes will classify the same market differently and both be right.
The transition matrix is illustrative
It is derived from declared successors, not estimated from history. Estimating it properly would require a labelled dataset of state occupancy — which requires the classification problem above to be solved first. The dependency runs the wrong way, and stating it plainly is preferable to publishing an estimate that appears more precise than it is.
Expectancy under regime is modelled, not measured
Figure 5 shows the relationship the engine encodes between state and expectancy. It is internally consistent and externally unvalidated. The direction of each effect is defensible from first principles; the magnitudes are not evidence of anything.
Regime is not the only precondition
Correct state identification does not make a framework profitable. It removes one specific way of being wrong. A framework with no edge in its ideal state has no edge, and regime permission will simply reduce the rate at which that is discovered.
Continue the investigation
State is the precondition.
Everything else is downstream.
The volatility window, the expansion threshold, the correlation ceiling and the chase distance used to represent each state on this page are four of the 159 controls in the Parameter Laboratory. Setting them yourself, against a framework of your choosing, is the fastest way to see how narrow the band of hospitable conditions actually is.
Research concept · all datasets simulated · see the risk disclosure