Skip to main content
2026-05-22 · 3 min read · ← 1 · research · harness · dual-signal · leaderboard

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.584
  • three_clock_portfolio_vol: +0.581
  • three_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.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

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