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:
-
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.
-
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.