Navigation

Orthogonality, redirected: from correlation to regime-invariance

Design preview · 2026-07-22 · opendeviationbar-py forward-predictiveness campaign · scratch reading artifact — not an ADR, not for review

① PILOT RUNS — discover candidate features read-only · spot-legal · leakage-gated · on real regime slices  •  YOU ARE HERE AXIS 1 · OOD-ROBUST Regime-invariance — not correlation seqICP · Causal Dantzig · HSIC-X · Anderson–Rubin (IV witnesses) Q: does it keep its meaning when    the market climate changes? AXIS 2 · CASCADE-FREE Liquidity & crowding — orthogonal by construction Amihud · Kyle-λ · book imbalance · effective-spread estimators Q: is it liquid & un-crowded — a    different info axis than price? Regime-turn detector (B-05) — the clock ② FORWARD-PREDICTIVENESS DECLARATION ENGINE runs the 23 grounded matrices, per LIVE regime “will today’s orthogonal verdict still hold tomorrow?” Dependence-aware null validity spine — else 11–57% false alarms BAN redundant today → reject WATCH regime-sensitive → hold ORTHOGONAL stable across regimes ✓ candidate to ship ③ REALNESS + USEFULNESS BRIDGE is the orthogonal feature actually tradeable? event-rate · predictive-realness (today: missing machinery) ④ OOD-ROBUST + LIQUID, CASCADE-FREE STRATEGIES the goal — two admitted axes feed one robust strategy layer Honest ceiling: every ORTHOGONAL verdict is regime-SCOPED (ICP 0/92) — “orthogonal in regime R”, never “orthogonal forever”. ~8/10 structural.
The direction in one picture. Steps ①→④; the two axes are the load-bearing new idea. The clock (B-05) and the validity spine are the two enablers that make the engine trustworthy rather than a “silent liar”.

1 · Layman’s summary — the core concepts

Think of your model as a hiring manager building a team of specialists. Each feature is a candidate. You want a team that is (a) full of distinct skills and (b) still competent when conditions change. Five ideas do all the work here:

One-line version: we stop hiring specialists who only looked good last quarter, and start hiring the ones who stay useful in every climate we’ve lived through.

2 · The two axes — and how each one helps

These measure two completely different things, which is exactly why they combine into something stronger than either alone. Axis 1 asks “which way will price go, robustly?” Axis 2 asks “how fragile / how liquid is this?”

Axis 1 · OOD-Robust (regime-invariance)

What it measures: whether a feature’s relationship to the target is stable across regimes, using causal-invariance and instrumental-variable tests (seqICP, Causal Dantzig, HSIC-X, Anderson–Rubin) rather than a correlation score.

How it helps: out-of-distribution failure = the future regime differs from the past. A feature admitted here has already been stress-tested against regime change, so it’s your best bet to carry into a climate you haven’t seen.

Honest limit: unconditional “orthogonal in any future regime” is provably impossible — the campaign measured the ceiling (ICP 0/92, ~8/10). Every verdict is regime-scoped, never “forever”.

Axis 2 · Cascade-Free (liquidity & crowding)

What it measures: how liquid and un-crowded a position is — a different information axis from price. Because it doesn’t encode “which way will price go,” it is orthogonal by construction to your price-microstructure panel.

How it helps: it flags fragility — where a liquidation cascade could ignite and how hard it would be to exit — so strategies can size down / gate capacity before the stampede, not after.

Scope note: the richest crowding signals (funding, open interest, liquidation heatmaps) are derivatives data — blocked by the spot-only policy. So we use spot-legal proxies: Amihud illiquidity, Kyle-λ, order-book imbalance, and the effective-spread estimators already probed on 2026-07-22 (edge/roll/corwin/parkinson).

Why two axes beat one: Axis 1 gives you a signal that keeps working when the regime turns; Axis 2 keeps you from being trampled while you hold it. A strategy needs both to be simultaneously OOD-robust and liquid/cascade-free — which is precisely your stated goal.

2·5 · Axis 2 harvest — the live loop that grounds it OPEN SURFACE

Axis 2 is the open frontier of this campaign. Grounding it needs two harvests (per the grounding plan), both collected by an append-only /loop — nothing is evaluated on our data yet:

What the loop sweeps, exhaustively, family by family: illiquidity & price-impact (Amihud, Kyle-λ, Hasbrouck, MRR) · effective-spread from OHLC/trades (Roll, Corwin–Schultz, Abdi–Ranaldo, EDGE) · range/HL vol (Parkinson, Garman–Klass, Rogers–Satchell, Yang–Zhang) · order-flow toxicity & crowding (VPIN, OFI, CVD, taker-skew) · microstructure invariance (Kyle–Obizhaeva) · capacity/turnover (Days-ADV) · liquidity-cascade / fire-sale risk · jump/tail fragility for ignition (realized jumps, tail-index, Hawkes self-excitation).

Load-bearing constraint: spot-only (principle #8) — funding / open-interest / liquidation-heatmaps are derivatives → catalogued but flagged out-of-scope. Seed catalog: 16 spot-legal / L2 candidates + 3 derivatives-flagged.

Open the Axis-2 Cascade-Free harvest — full grounding scope + live iteration ledger →

3 · How forward-predictiveness surfaces candidate orthogonal features

The engine grades every shipped feature, per live regime, and assigns the highest tier its evidence earns (cheapest test first, early-exit):

BAN — redundant today vs the shipped set WATCH — real information, but regime-sensitive ORTHOGONAL — holds across regimes → a genuine candidate

The point that makes this a discovery tool and not just a scorecard: the campaign proved the tomorrow-verdict is predictable — features orthogonal today persist 94–95% into the next regime, and the flip-vs-hold ranking scores AUC 0.88–0.95. So the ORTHOGONAL tier isn’t a snapshot; it’s a forward filter that surfaces the features worth carrying.

Non-negotiable underneath it all: every test must use a dependence-aware null. On autocorrelated bars, an independence-assuming null false-alarms at 11–57% (it already killed 8 instruments). Without this, the board is a confident liar — so it’s the first thing that has to be certified.

4 · The direction we’re heading — and a correction to sharpen it

You said: “a new way of evaluating orthogonality based on regime invariance, rather than correlation.” You’re right — that’s the core shift. Two refinements so it’s exact:

So “orthogonal” is redefined as necessary-but-not-sufficient: non-redundant and regime-stable earns a feature into the pool — it does not by itself prove tradeable edge. Step ③ is the honest gate between “admitted feature” and “strategy.”

5 · First step — pilot runs to find candidate features

Before any ADR, we do small, honest pilot runs to surface a shortlist:

The pilot’s job is not to be right — it’s to de-risk the design and hand the ADR a concrete, grounded candidate set to reason about.

6 · What the ADR will be (once we’re aligned)

A PROPOSED design ADR — same route as #633 (ground → ADR → Terry refines → implement), nothing ratified on landing. Its scope, in one breath:

It stays a docs-only artifact until you and Terry steer it. This preview exists so we agree the picture above is the right picture first.

Pages: this reader · Axis-2 Cascade-Free harvest (live loop + ledger)

Campaign reader (dashboard twin) · findings/dashboard/probes/regime-invariant-orthogonality-campaign-2026-07-22.html · SSoT: findings/evolution/audits/2026-07-22-regime-invariant-orthogonality-campaign/ · docs-only; deploy to the nasimubd site is a separate gated step. Grounded in: ADR-2026-07-15-LIVE-ORTHOGONALITY-DECLARATION-ENGINE.md · FEATURE-EXPIRY-ROBUSTNESS-ASSESSMENT-2026-07-15.md · CAMPAIGN-GROUNDED-SUMMARY.md · 2026-07-22 rotation-probe head-to-head.