Three-clock momentum tops the harness
what you'll learn · Why combining short / medium / long momentum windows beats picking any single window, even with naive weights — and what the negative short-term coefficient is doing.
Of the 16 arms now in the comparison harness, the best mean Sharpe across 5 seeds (+1.429) came from XsThreeClockMomentumStrategy — a linear combination of 5-, 20-, and 60-bar momentum with default weights (-0.5, +1.0, +0.5). That beats single-window momentum (+1.001) by 0.43 Sharpe and single-window TSMom (+1.269) by 0.16. The result is consistent with the literature: composite-horizon momentum extracts more information than any single window cut.
The 16-arm comparison harness ran the same synthetic data (5 seeds, isotropic vol shocks + 50 bps directional FOMC drift) against every shipped strategy. Final mean-Sharpe ranking, top six:
three_clock_momentum: +1.429, stdev 0.672, min +0.396, max +2.079
ts_momentum: +1.269, stdev 0.779, min +0.634, max +2.141
vol_weighted: +1.054, stdev 0.742, min +0.259, max +2.147
blackout: +1.027, stdev 0.479, min +0.355, max +1.612
damping: +1.014, stdev 0.486, min +0.339, max +1.618
baseline (XsMom): +1.001, stdev 0.581, min +0.173, max +1.656
three_clock_momentum’s composite score is:
score = -0.5 × mom_5 + 1.0 × mom_20 + 0.5 × mom_60
Three lookbacks, three weights. The arm beats baseline (single- window mom_20) by 0.43 Sharpe and the prior top arm (ts_momentum, which adds a chop filter to single-window mom_20) by 0.16.
Why the composite beats the single window
A single-window momentum signal is a single point estimate of a continuous quantity. The 20-bar lookback says “this symbol moved X over 20 bars” — but X is heavily averaged. A symbol that appreciated 5% across the first 15 bars and gave back 2% in the last 5 looks identical to one that rose 3% smoothly.
The three windows together resolve that ambiguity:
| mom_5 | mom_20 | mom_60 | What it says |
|---|---|---|---|
| + | + | + | Sustained uptrend across all horizons |
| − | + | + | Recent pullback in an intact medium-term trend |
| + | + | − | Recent breakout from a longer decline |
| − | − | − | Sustained downtrend |
| + | − | + | Recent bounce in a medium-term decline within long-term uptrend |
| − | + | − | Top-of-trend exhaustion (medium-term up, short-term and long-term down) |
Default weights (-0.5, +1.0, +0.5) say:
- The medium horizon (20-bar) carries the most signal — weight 1.0.
- Sustained trends across the long horizon (60-bar) get a confirmation bonus — weight 0.5.
- Recent strength (5-bar) is partially faded — weight −0.5.
The negative short coefficient is the most interesting choice. It expresses the persistent finding from Jegadeesh & Titman 1993 and later replications: at the daily horizon, short-window momentum shows mean-reversion, not continuation. A symbol that just spiked 5% is more likely to give some back than to spike again tomorrow. The 5-bar mean-reversion + 20-bar trend combo is the practitioner-grade default.
What gets confirmed
The harness result is consistent with three independent findings:
-
Jegadeesh-Titman canonical momentum. Their original 12-month formation period would be 252 bars on daily data — close to our
mom_60. Their finding: medium-to-long-term momentum is real; short-term (≤ 1 month) shows reversal. -
TSMom literature (Moskowitz/Ooi/Pedersen 2012). Their composite signal is roughly equivalent to averaging multiple horizons. They find composite beats any single horizon out-of-sample across asset classes.
-
Practitioner experience. Almost every shipped momentum strategy in industry combines horizons — typically 1-, 3-, 6-, and 12-month at the daily scale. The 5/20/60 triplet is our intra-day equivalent.
What the harness can’t show
-
Whether the synthetic actually has short-term mean-reversion. Our isotropic-shock simulator doesn’t specifically model the short-term overreaction patterns the negative-short-weight is designed to fade. The 3-clock arm may be winning on synthetic for the wrong reason — averaging three windows just adds smoothing, which reduces noise whether or not the directional theory holds.
-
Whether the win generalises to real data. Stale-thesis policy (ADR-0014) says we don’t claim a result until it’s verified on real bars. The harness validates that the strategy code is correct, not that the signal works. Pointing this at the live SP500 + Polygon path would close that gap — out of scope here.
-
Whether the chosen weights are optimal.
(-0.5, +1.0, +0.5)is a sensible default but not a tuned setting. Operators backtesting on real data would optimise these per universe + period; the harness measures the default configuration only.
What it does show
The strategy code is correct (matches the citation contract, participates in the cross-strategy property test, lookback ordering enforced). The composite-horizon hypothesis is at least consistent with the synthetic — the result isn’t random noise above the baseline by a meaningful margin.
The catalog now spans the three-clock surface; operators
running the harness can A/B their tuning by changing the
weights and re-running. The shape-axis of the catalog (TSMom,
spread-filter, three-clock) is starting to look like the
under-explored leverage axis the
strategy-shape-beats-factor-count
note named.
The discipline rule
When adding a multi-window strategy, default to combining windows rather than picking one. Use weights that express a prior over horizon-specific behaviour (short-term reversion, medium-term trend, long-term confirmation is the standard). Let real-data backtests refine the weights.
A corollary: when comparing single-window arms in a harness, treat the multi-window combination as the baseline, not the upper bound. The single windows are useful only as ablations.