Skip to main content
← writing
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.

deskgd findgf strategiesgs featuresge promotionsgp apiga botgb writinggw

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