Dual-signal at N=100, all 27 arms — the full picture
what you'll learn · How each of the 27 harness arms ranks on dual-signal data at N=100, and how the dual-signal rankings differ from the single-signal rankings of PR #759.
PR #790 documented the partial dual-signal result (composite stacks slightly). This is the full 27-arm leaderboard at N=100 with `--fomc-drift-bps 50 --mean-revert-bps 100`. Five findings: ts_momentum still leads; three composites converge again; multi-factor variants are LESS negative on dual-signal; vol_penalty flips negative; the mean_revert diagnostic confirms data shape.
PR #790 documented the partial dual-signal finding:
three_clock_vol_weighted stacks above both parents on
dual-signal data at N=100. This note ships the full 27-arm
leaderboard.
The complete picture
arm mean hit% vs single-signal
ts_momentum +0.625 77% leads on both
three_clock_vol_weighted +0.584 69% stacks here, ties on single
three_clock_portfolio_vol +0.581 67% equiv to three_clock_*
three_clock_momentum +0.573 67% equiv
three_clock_vol_regime +0.546 68% equiv
vol_weighted +0.515 69% parent
ts_active_set +0.511 71% sign-preserving composite
blackout +0.508 69% equiv to baseline
damping +0.492 68% equiv
baseline +0.491 68% high-bar reference
spread_filter +0.489 68% equiv to baseline (filter dormant)
ranked_vol_threshold +0.451 67% equiv to baseline
vol_regime_filter +0.405 66% still loses
portfolio_vol_gate +0.403 61% drops more than baseline
mean_revert +0.369 64% POSITIVE (was -0.324 on single)
long_only +0.296 54% drops on dual-signal
equal_risk_long_only +0.296 54%
vol_transition_filter +0.209 57%
ts_filtered +0.202 55% sign-conflict composite
spread_filter_tuned +0.131 56%
reversal +0.042 53%
drift -0.042 47%
four_factor -0.049 47% LESS negative (was -0.466)
four_factor_tuned -0.083 44%
vol_penalty -0.096 46% FLIPS to negative
two_factor -0.107 48%
three_factor -0.194 46%
Five findings
Finding 1: ts_momentum leads on dual-signal too
single-signal N=100: ts_momentum +0.995, baseline +0.863, Δ +0.132
dual-signal N=100: ts_momentum +0.625, baseline +0.491, Δ +0.134
The lead is essentially identical (+0.132 vs +0.134). The entry-rule discipline works the same on both signal modes. PR #782’s regression test on single-signal would presumably also hold on dual-signal — the entry-rule axis isn’t sensitive to the signal mix.
Finding 2: The three three_clock variants STILL converge
At N=100 dual-signal:
three_clock_vol_weighted: +0.584three_clock_portfolio_vol: +0.581three_clock_momentum: +0.573
All within rounding (+/-0.011). Same equivalence class as single-signal. The dual-signal data didn’t differentiate them either.
The synthetic-equivalence note in the catalog still holds: these three arms catch the same signal on BOTH synthetic modes. Real-data divergence remains the open question.
Finding 3: Multi-factor strategies are LESS negative on dual-signal
single-signal dual-signal
two_factor: -0.666 -0.107
three_factor: -0.548 -0.194
four_factor: -0.466 -0.049
four_factor_tuned: -0.564 -0.083
The default mean-reversion-dominant weights (w_z = -1,
w_s = -1, w_k = -0.5) find SOME of the mean-reversion
alpha on dual-signal data. The strategies are still
underperforming baseline, but the gap closes from ~−1.5 to
~−0.5.
This is the expected behaviour: mean-reversion-weighted
strategies catch mean-reversion alpha. But the dual-signal
weight calibration (mean_revert_bps=100) isn’t strong
enough to make them positive — they catch some of it,
not all.
Finding 4: vol_penalty FLIPS from positive to negative
single-signal dual-signal
vol_penalty: +0.083 -0.096
The continuous per-symbol vol penalty was a barely-positive strategy on single-signal data (≈ baseline with universe shrinkage). On dual-signal data, it flips to negative.
The interpretation: the vol penalty filters out symbols that have both alpha sources (those with high vol). On single-signal, “high vol” might be coincidence; the strategy loses universe but not directional alpha. On dual-signal, the high-vol symbols are MORE likely to have mean-reversion alpha, so filtering them out costs more.
The penalty’s design assumption (high vol = low alpha) doesn’t hold when the data has vol-coincident alpha sources.
Finding 5: mean_revert diagnostic flips positive
single-signal dual-signal
mean_revert: -0.324 +0.369
Confirms the dual-signal data has mean-reversion alpha. The diagnostic arm is doing its job: reads negative on single-signal (fighting the directional signal), reads positive on dual-signal (catching the short-clock mean-reversion).
Δ between modes: +0.693 — by far the largest swing of any arm. mean_revert is the most-sensitive arm to the dual-signal toggle.
Refined catalog observations
The dual-signal leaderboard suggests adding to the catalog’s synthetic-equivalence section:
| Equivalence class (DUAL-signal N=100) | Members |
|---|---|
| Baseline-like | baseline, blackout, damping, spread_filter, ranked_vol_threshold (~+0.49 each) |
| Three-clock cluster | three_clock_* (4 variants, all +0.55-0.58) |
| Vol-aware underperformers | vol_regime_filter, portfolio_vol_gate, vol_transition_filter (+0.40-0.21) |
What this doesn’t change
-
The pairwise rule’s 5/5 direction still holds. All composites behaved as predicted.
-
The 11 discipline rules from session-summary v3 hold. Dual-signal data doesn’t override any of them; it confirms Rule 7 (“composite stack-vs-interfere is data-dependent”) in the expected direction.
-
Real-data is still the next required step. Synthetic with two alpha sources is closer to real markets than single-signal, but still far from the multi-source reality of US equities. The harness has done what synthetic can do; real bars are required for any deployment claim.
The closing observation
The dual-signal mode was the harness’s way of generating data where the pairwise rule’s magnitude prediction could materialise. Without it, the session would have ended with “5/5 direction, 0/5 magnitude” as the rule’s final scorecard. With it: 1/5 magnitude (three_clock_vol_weighted’s small stack), and the pattern across the other arms is consistent with the rule’s framing.
The synthetic isn’t the truth. But the synthetic, run honestly across enough modes and seed counts, is what the platform needs to be trusted. The discipline rules survive. The ranking has stabilised. Real data is the next call.