Skip to main content
2026-05-22 · 3 min read · ← 4 · research · pairwise · harness · matrix

The full pairwise matrix — 28 arms at N=100

what you'll learn · What the full 28-arm pairwise correlation matrix shows: the dormancy clusters that group with baseline, the diagnostic-arm anti-correlations, and the three lowest-correlation pairs the matrix flags as composite candidates.

The pairwise rule has been the session's most-iterated discipline. This is the full correlation matrix across all 28 arms at N=100 single-signal — the empirical surface the rule operates on. Surfaces six observations: complete dormancy clusters, sign-flipped diagnostics, the lowest-correlation pair, and three composite candidates the matrix predicts.

The pairwise correlation rule iterated four times this session (PR #710 → #742 → #748 → #770). It’s been the session’s most- refined discipline. The complete empirical surface it operates on — the full 28-arm pairwise correlation matrix at N=100 — has been computed in pieces across the research notes. This note ships the complete matrix and reads it in detail.

Six observations from the matrix

Observation 1: Three high-correlation clusters

Several arms correlate at +0.95+ across seeds — effectively duplicates on this synthetic:

baseline ≈ spread_filter ≈ blackout ≈ damping ≈ ranked_vol_threshold
  (5 arms all clustered at +0.95-1.00 with baseline)

three_clock_momentum ≈ three_clock_portfolio_vol ≈ three_clock_vol_weighted
  (3 arms all at +0.96+ with each other)

long_only ≡ equal_risk_long_only
  (1.00 — identical with different gross_leverage scaling)

drift ≡ reversal-flipped
  (-1.00 — perfect anti-correlation; reversal is sign-flipped drift)

These confirm the catalog’s synthetic-equivalence section: many arms catch the same signal on this single-signal synthetic. Real-data should separate them.

Observation 2: ts_momentum is the most-decorrelated leader

ts_momentum (the harness leader at +0.995) is uniquely decorrelated from the rest:

ts_momentum vs baseline:                    +0.79  (high, but not 1.00)
ts_momentum vs three_clock_momentum:        +0.69
ts_momentum vs vol_weighted:                +0.78
ts_momentum vs ma_crossover:                +0.62  (lower-mid)
ts_momentum vs ts_active_set:               +0.90  (high — both filter on |return| >2%)

Its highest correlation (other than active_set) is +0.79 with baseline — meaning at the leader level, ts_momentum is doing something different from baseline that drives its +0.13 lead.

Observation 3: Multi-factor arms are negative-correlation outliers

All four multi-factor arms (two/three/four_factor + four_factor_tuned) correlate NEGATIVELY with most other arms:

four_factor_tuned vs baseline:    -0.66
four_factor vs three_clock:       -0.50
three_factor vs ts_momentum:      -0.65
two_factor vs vol_weighted:       -0.62

The default mean-reversion-dominant weights make these arms trade against the momentum-dominant data signal. Their per-seed sharpe sequence is anti-correlated with everyone else’s because their decision direction is anti-correlated.

Observation 4: The mean_revert diagnostic is anti-correlated with momentum arms

mean_revert vs baseline:        -0.49
mean_revert vs three_clock:     -0.30
mean_revert vs vol_weighted:    -0.42

Confirms the diagnostic property: mean_revert is the sign-flipped version of cross-sectional momentum. When momentum arms lose seeds, mean_revert wins them. Used as a diagnostic for whether data has momentum vs mean-reversion alpha.

Observation 5: The three lowest-correlation pairs (highest stack potential)

The matrix’s lowest non-trivial off-diagonal correlations:

ma_crossover vs vol_penalty:         +0.12
ma_crossover vs drift:               +0.65  (false-low — both directional)
ts_momentum vs vol_penalty:          -0.03  (effectively zero)
ts_momentum vs ma_crossover:         +0.62

The truly-low pairs:

  1. ma_crossover × vol_penalty at +0.12 — both are weak single arms (+0.742 and +0.083 at N=100). Composing two weak arms doesn’t yield a strong arm.
  2. ts_momentum × vol_penalty at -0.03 — ts_momentum is strong (+0.995) and uncorrelated with vol_penalty. The composite COULD stack. But vol_penalty is a per-symbol filter; ts_momentum is sign-based. Composition shape matters per PR #770.

Observation 6: The pairwise rule’s predictions are catalog-shaped

If we threshold the matrix at correlation < 0.5 for stack candidates AND same-stage AND no sign-vs-rank conflict, the matrix flags maybe 6-8 candidate composites. Most of the high-stack-probability arms involve multi-factor or mean_revert (negatively-correlated arms that catch different signals).

The catalog already includes 6 composite arms. The matrix suggests at least 3 more would be testable:

  1. ts_momentum × four_factor_tuned (corr -0.59) — but sign-vs-rank conflict applies. Would need a SAME-stage composition mechanism (both at score-stage). Possible.
  2. vol_weighted × mean_revert (corr -0.42) — both score-stage, both score-rank-based, no sign conflict. Predicted to stack on dual-signal.
  3. three_clock_momentum × mean_revert (corr -0.30) — same shape as #2 but with multi-horizon score.

All three remain out-of-scope follow-ups.

What this rules out

  • Not “the catalog is complete.” Three candidate composites remain untested. The matrix flags them; the harness can measure them; future operators can ship them.

  • Not “the rule has converged.” Each new strategy adds a new row to the matrix, and the matrix may reveal new edge-cases the rule iteration didn’t capture. The rule is open to a 5th iteration if a future composite confounds it.

  • Not “real markets work like this.” The matrix is a synthetic-data snapshot. Real markets have different correlation structure; the relative rankings would change.

The closing observation

The pairwise rule has been the session’s most-load-bearing discipline. Each iteration was triggered by a composite result. The matrix is the rule’s empirical surface — the territory the rule navigates.

Now that the catalog is at 25 strategies (28 arms), the matrix fills out enough that operators can use it as a composite-shopping tool: scan for low-correlation pairs, check the sign-discipline + same-stage requirements, build the composite that the rule predicts stack.

The session has produced the platform. The next operator picks where to point it.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

Shortcuts are no-ops while typing in an input or textarea.