Skip to main content
2026-05-22 · 3 min read · ← 7 · strategy · research · design

Strategy shape beats factor count: TSMom > 4-factor on the same data

what you'll learn · Why a single-factor strategy with a chop filter outperformed a four-factor strategy without one, on the same synthetic data, across 5 seeds.

The 11-arm harness has a four-factor strategy that combines momentum + reversion + skew + kurtosis. It also has a one-factor strategy that just adds a 2% threshold on absolute return. The threshold-gated one-factor wins on mean AND on min Sharpe across seeds. The threshold matters more than three extra factors.

The 11-arm A/B harness ran the same synthetic data (5 seeds, isotropic vol shocks + 50 bps of directional FOMC drift) against strategies ranging from one-factor momentum to four-factor (momentum + reversion + skew + kurtosis) compositions. The expected ordering — based on factor-richness — would have been that four-factor beats three-factor beats two-factor beats one-factor.

The actual ordering:

ts_momentum:        mean +1.269, stdev 0.779, min +0.634
vol_weighted:       mean +1.054, stdev 0.742, min +0.259
blackout:           mean +1.027, stdev 0.479, min +0.355
damping:            mean +1.014, stdev 0.486, min +0.339
baseline (XsMom):   mean +1.001, stdev 0.581, min +0.173
reversal:           mean +0.117, stdev 0.769, min -0.640
drift:              mean -0.117, stdev 0.769, min -1.137
four_factor:        mean -0.054, stdev 1.026, min -1.286
three_factor:       mean -0.218, stdev 0.572, min -0.882
four_factor_tuned:  mean -0.292, stdev 0.391, min -0.593
two_factor:         mean -0.281, stdev 0.681, min -1.141

ts_momentum, with one factor and a 2% absolute threshold, posted the best mean Sharpe AND the best worst-case (its weakest seed was +0.634 — every other arm went negative at least once). The richest factor stack (four_factor) had a NEGATIVE mean across the same seeds.

What ts_momentum does differently

The strategy is structurally simple:

score = log(P_t / P_{t-lookback})
if score > +threshold:    long
if score < -threshold:    short
else:                     flat — no entry

The threshold doesn’t add information. It subtracts trading when the signal is weak. The strategy goes flat in chop — periods where no symbol breaches the threshold — instead of forcing a cross-sectional ranking on noise.

XsMomentumLiveStrategy and all its factor extensions (two_factor, three_factor, four_factor) trade on every tick where they have history. They long the top quantile and short the bottom regardless of whether the spread between top and bottom is meaningful. In a regime where the entire universe returned ±0.5% over the lookback, they still take full gross exposure on the strongest 20% vs the weakest 20% — turning noise into orders.

ts_momentum doesn’t trade that regime.

What this rules out (and doesn’t)

This isn’t an argument that more factors are bad. It’s an argument that the entry rule does more work than the score rule on most signals.

The literature lines up with the result:

  • Moskowitz, Ooi, Pedersen 2012 (“Time Series Momentum”) found per-asset absolute-threshold momentum outperforms cross- sectional momentum across asset classes and decades.
  • Lemperiere et al. 2014 (“Two Centuries of Trend Following”) found the same shape works across two centuries of futures data.

Both papers note the chop-filter effect: TSMom’s selectivity is its edge. Cross-sectional momentum always trades; the question is whether the trades have edge. TSMom only trades when the absolute signal is large enough that the question even applies.

The argument is NOT:

  • “Higher moments don’t work.” On data with real fat-tail clustering, kurtosis adds signal. The synthetic isotropic-shock harness doesn’t have such clustering.
  • “Cross-sectional is worse than time-series.” On data with strong dispersion structure (sectors, factors, beta), the cross-sectional ranking captures relative value. The synthetic uniform-vol harness doesn’t have such structure.
  • “Always use TSMom.” A 2% threshold on a universe with 50 symbols and 0.3% daily vol would catch nothing — the strategy would sit flat forever. Threshold has to match the data.

The argument IS:

When picking a strategy shape, the entry rule (what data shape are you trading?) often matters more than the score rule (how do you rank inside the entries?). The catalog should cover both axes; the 11-arm A/B harness measures both contributions.

The platform’s strategy-design rule

When proposing a new strategy, answer two questions in this order:

  1. What data shape is this strategy looking for? Trending moves above a threshold? Cross-sectional spreads? Mean- reverting deviations? Post-event drift? The answer is the strategy’s entry rule.

  2. How does it pick among the available entries? Quantile rank? Threshold sign? Linear factor combination? Risk-weighted? The answer is the strategy’s score rule.

The catalog’s eleven strategies decompose neatly along these two axes — most variation is on the score axis (cross-sectional ranking, factor composition, vol weighting) but the only shape-axis variant (ts_momentum) is also the empirical winner on the harness. New strategies should default to ASKING the shape-axis question first, because that’s where the harness suggests the most leverage lives.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

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