← Research library
Research · 研究 · 05 · Regime

The macro classifier. Seven regimes, one decision.

8 Jun 20269 min readMethodologyShishin Research

The regime classifier described here is the macro switch that gates engine selection in the Shishin live system. It is one component of the system; the engines that act on its output have additional filtering rules not described in this article. Discussion is methodological, not advisory.

Most regime-switching systems fail in one of two ways. They switch too often, chasing each ten-day oscillation in the tape, and pay the slippage. Or they switch too late, confirming a regime change three weeks after the market already changed, and miss the trade. The interesting question is what makes a classifier do neither.

Why a regime classifier at all

Engines, individually, are tuned for specific market states. Suzaku makes money in trending markets and bleeds in chop. Byakko makes money in macro stress and gives back its edge when the broad market is healthy. There is a strict correspondence between which engine should run and what kind of market is currently in front of it. Running every engine all the time would be ensemble averaging; running the right engine for the right market requires a classifier.

The classifier is what lets the four-engine architecture actually work. Without it, you have four strategies that each work part of the time, blended into a system that works neither well nor reliably. With it, the system has a chance to be the right strategy at the right time.

What the classifier reads

The input vector is small and breadth-based. The fundamental observation is that single-index signals (the S&P 500's position relative to its 200-day, the VIX level, the yield curve) are noisy and lagging. The same observation taken across a wide universe — the percentage of names participating in an uptrend, rather than whether the index is in one — is denser, faster, and more regime-discriminating.

The two primary inputs are universe-wide breadth measures:

  • Bull breadth — the percentage of the tracked universe with price above its fifty-day moving average and a positively-sloped fifty-over-two-hundred stack. This is the count of names that look healthy in both the short and the long structural sense.
  • Bear breadth — the percentage of the tracked universe with the inverse signature: price below its fifty-day average, the fifty under the two-hundred, and a confirmed downtrend on a rolling-return window. Names in confirmed distress, not merely off their highs.

Both are calculated daily, against the same universe the engines themselves are scoring. A handful of derived features sit on top — sector breadth (which slices of the universe are leading), volatility regime (whether realised vol is in a different decile than the trailing year), and a short list of additional inputs that fine-tune the edges of regime transitions. None of these is exotic. Together they're sufficient to assign each session to one of seven market states.

The seven regimes

We resolved on seven regimes by trial: fewer collapses functionally distinct states (mid-bull trends are not the same as raging speculative ones; macro stress with commodity leadership is not the same as macro stress with broad-based selling), and more produced regimes too small to deliver reliable evidence on the live track.

The seven regimes are functionally:

  • A prime bull state — broad participation, high bull breadth, low bear breadth, healthy sector rotation. Genbu (quality) fires.
  • A mild bull state — participation present but not commanding. Suzaku (small-cap momentum) fires.
  • A range / chop state — neither side dominating. Suzaku, with a higher score cutoff. The system is more selective.
  • A bear state — sustained breadth deterioration. Byakko (defensive sectors) fires.
  • A commodity-led state — bear breadth rising but with concentrated commodity leadership. Byakko fires with an expanded basket.
  • A technology-led froth state — narrow mega-cap leadership atop a weakening base. Seiryū (speculative large-cap recovery) fires conservatively.
  • A defensive-lead transition — the early post-bear window where leadership rotates messily. Seiryū fires with elevated conviction.

Each regime maps to exactly one engine and one allocation posture (size cap, score cutoff, sector exclusions). The mapping is deterministic. The same regime always produces the same engine.

How transitions are handled

The single most common failure mode in regime-switching systems is flicker — the classifier oscillates between two regimes on adjacent sessions, and the system rotates engines repeatedly, paying the operational cost without receiving the regime benefit. Shishin mitigates this with a confirmation-counter on regime transitions. A new regime must be assigned by the classifier for a small number of consecutive sessions before the system actually rotates the engine that runs. The threshold is small enough that genuine regime changes are caught within a few days, large enough that single-bar noise does not propagate to the trade path.

The transition logic also imposes a forward-projection: the system computes, on any session where the classifier is signalling a near-confirmation, the expected date by which the regime would flip if the trend continues. This is shown in the operator dashboard as “projected flip date.” It is information, not a commitment. The classifier reserves the right to revert if the underlying breadth recovers before the counter expires. It usually does, which is the whole point of a counter.

What the classifier doesn't do

It doesn't try to predict the regime. It identifies the regime currently in force, against a fixed set of input features, and updates daily. The distinction matters. Prediction implies a probabilistic forecast of a future state; identification accepts that the market is in some state right now and tries to label it correctly. The former is hard, controversial, and frequently wrong. The latter is mechanical and verifiable: you can audit the classifier's read at any historical date against the breadth state that was actually in force on that date, and we have.

The classifier doesn't read news. It doesn't read sentiment. It doesn't read options-implied probabilities. It reads what the universe is doing, every day, and assigns the day a label. The engines accept the label as input. Capital flows where the label sends it.