Perfect correlation explains the interference
what you'll learn · Why composite-interferes outcomes correspond to pairwise correlation of 1.0 between parent and composite, and how the correlation matrix is the cheapest pre-test for composite-stack-or-interfere predictions.
The composite `three_clock_portfolio_vol` underperformed both parents in PR #740. The pairwise correlation analysis (10 seeds) shows why: three_clock_momentum and three_clock_portfolio_vol correlate at exactly +1.00 across seeds. The composite IS the parent — a vol-gate added on top of a momentum signal that's already vol-gated doesn't catch anything new.
PR #740 shipped a composite arm (three_clock_portfolio_vol)
combining the top-mean per-symbol score arm (three_clock_momentum)
with the best cross-symbol intervention (portfolio_vol_gate). The
hypothesis: different signals, different intervention points →
should stack.
The composite UNDERPERFORMED both parents on both modes. The research note honestly admitted the result and suggested “verify with pairwise correlation.”
PR #708’s --pairwise flag on the analysis script runs that
verification. Here’s the matrix (10 seeds, --fomc-drift-bps 50):
three_clock_ three_clock_ portfolio_
momentum portfolio_vol vol_gate
three_clock_momentum +1.00 +1.00 (lower)
three_clock_portfolio_vol +1.00 (lower)
portfolio_vol_gate +1.00
three_clock_momentum and three_clock_portfolio_vol
correlate at +1.00 across all 10 seeds. Not 0.95. Not 0.99.
Exactly 1.00.
What this means
The composite IS the parent. On this synthetic, the
portfolio_vol_gate overlay on top of three_clock_momentum
adds zero new signal — the per-seed sharpe sequence of the
composite is identical (up to floating-point precision) to the
sequence of the score-only parent.
Mechanically: the universe vol median rarely crosses the 1.2
threshold on the default synthetic, so portfolio_scale = 1.0
most of the time. When the threshold IS crossed, both arms scale
proportionally, so their relative ranking on a Sharpe basis
doesn’t change. Hence +1.00.
Why the original pairwise rule held
PR #710’s rule:
High correlation (over 0.8) → composing likely interferes. Low correlation (under 0.3) → composing likely stacks.
three_clock_momentum and three_clock_portfolio_vol at +1.00
is in the “almost certainly interferes” zone. The rule is doing
its job — operators could have predicted the interfere result
BEFORE running PR #740 just by computing the would-be composite’s
correlation with one of its parents.
Except they couldn’t — the composite has to exist as code to compute its per-seed sharpe sequence. The cheap pre-test the rule promised doesn’t actually skip the composite-arm code; it just predicts the result before running it.
The deeper observation
The matrix reveals something else useful: most “different” strategies on this synthetic are highly correlated with baseline across seeds.
baseline vs spread_filter +1.00 (gate dormant)
baseline vs blackout +1.00 (events tiny fraction)
baseline vs damping +1.00 (damping mild)
baseline vs spread_filter_tuned +0.96
baseline vs vol_regime_filter +0.88
baseline vs vol_weighted +0.86
baseline vs three_clock_momentum +0.79
baseline vs three_clock_vol_regime +0.75 (most-decorrelated)
three_clock_vol_regime is the most decorrelated from baseline
at +0.75. Even at the bottom of the matrix, +0.75 isn’t far
from baseline’s behaviour — these strategies look more like
baseline-with-noise than baseline-with-different-signal.
The implication: the synthetic doesn’t expose enough heterogeneous alpha sources for the strategies to differentiate. Real markets — with more diverse drivers (sector rotation, factor exposure, regime change, microstructure) — would likely produce more decorrelated arm sets. That’s the next experiment.
What this rules out
-
Not “the pairwise rule is wrong.” The rule predicts “composite interferes” for parent-pairs at +0.8+ correlation. The composite’s correlation with its parent at +1.00 is the highest-correlation case → most-confident interference prediction. The rule held.
-
Not “portfolio_vol_gate doesn’t work.” It outperforms the per-symbol vol variants AND has lower stdev than baseline. Useful for operators with bounded-stdev constraints. Just doesn’t STACK with three_clock_momentum on this synthetic.
-
Not generalisable to real markets. Real-market arm correlations are lower; composites might stack more easily there. The “almost all arms correlate +0.85 with baseline” finding is a feature of this single-signal synthetic.
The discipline rule (refined)
When proposing a new composite arm, compute the would-be composite’s correlation with each parent BEFORE deciding whether to ship. If either correlation is over 0.95, the composite IS the parent — composing doesn’t add value. If both correlations are under 0.5, the composite is a new signal — worth shipping.
A corollary: the correlation matrix lets you SKIP composite
arms that the matrix predicts will interfere. The 23-arm
harness has 2 composite arms (three_clock_vol_regime,
three_clock_portfolio_vol); a future operator can use this
matrix to decide which composite to add next without shipping
exploratory code.
Next experiment
The most-decorrelated arm pair on this synthetic:
three_clock_vol_regime vs vol_weighted at +0.72. Or:
three_clock_momentum vs vol_weighted at +0.71.
A composite of those two parents would have the lowest expected correlation — the highest stack probability the matrix can predict. Whether the stack actually materialises is a future experiment.