The Intuition

Time Series Momentum (TSMOM) is the simplest and most robust form of trend-following: if an asset's trailing return over the past 12 months (minus the most recent month to avoid short-term reversal) is positive, go long; if negative, go short. It asks one question — is this asset trending up or down? — and bets the trend continues.

Moskowitz, Ooi, and Pedersen (2012) documented TSMOM across 58 futures markets — equity, currency, commodity, and bond — over 25 years, finding statistically significant positive Sharpe ratios in almost every market and every time period, including through 2008 when the strategy produced exceptional returns (+76% in their diversified futures portfolio) as risk assets trended sharply downward.

The economic explanation involves several mechanisms: (1) Slow incorporation of information — prices underreact to news initially, then drift toward the fair value, creating trends. (2) Liquidity provision pricing — trend-followers are paid for providing liquidity during market dislocations by riding the trend. (3) Herding and behavioural biases — investors extrapolate recent returns, amplifying initial moves. (4) Risk-based channels — momentum premia may compensate for exposure to macroeconomic disaster risk.

Key assumptions: (1) Trend persistence over intermediate horizons (1–12 months). (2) The 12-month lookback captures meaningful economic regime trends (inflation cycles, growth cycles, risk-on/risk-off). (3) The asset is sufficiently liquid that trading costs do not eliminate the edge. TSMOM on individual equities has higher turnover and thus higher transaction cost drag than on futures.

The strategy's primary failure mode is trend reversals — sudden sharp reversals in asset prices (as seen in 2009, 2016, and 2022) create large drawdowns. This is why institutional trend-followers combine TSMOM across many uncorrelated asset classes: the diversification smooths out the reversals that hit any single market. Standalone single-asset TSMOM has a high hit ratio but fat-tailed losses.

The Math

Read this as a compact model summary: what the signal sees, what it ignores, and where fragility can creep in.

r(t, h)   = Close(t) / Close(t - h) - 1

Signal(t) = +1  if r(t, h) > 0
          = -1  if r(t, h) < 0

Parameters

ParameterTypeDefaultDescription
lookback_months int 12 Momentum lookback period in months

Source Code

def run(ticker: str, start: str, end: str, **params) -> dict:
    lookback_months = int(params.get("lookback_months", 12))
    lookback_days = lookback_months * 21  # ~21 trading days per month
    df = fetch_ohlcv(ticker, start, end)

    past_return = df["Close"].pct_change(lookback_days)
    pos = pd.Series(0.0, index=df.index)
    pos[past_return > 0] = 1.0
    pos[past_return < 0] = -1.0

    return run_backtest(df, pos, ticker=ticker, start=start, end=end,
                        strategy=METADATA["slug"], params={"lookback_months": lookback_months})

Further Reading

  • Moskowitz, T., Ooi, Y. & Pedersen, L. (2012). Time Series Momentum. Journal of Financial Economics, 104(2), 228–250.
  • Hurst, B., Ooi, Y. & Pedersen, L. (2017). A Century of Evidence on Trend-Following Investing. AQR Working Paper.
  • Asness, C., Moskowitz, T. & Pedersen, L. (2013). Value and Momentum Everywhere. Journal of Finance, 68(3), 929–985.

When It Works / When It Fails

Works
  • Trending markets with positive serial autocorrelation
  • Cross-asset portfolios — commodity and currency trend-following
  • Multi-month lookback periods on broad indices
Fails
  • Mean-reverting instruments where prior returns predict reversal
  • Negative-autocorrelation markets (e.g. short-horizon equities)
  • Volatile regimes without persistent trend direction

Regime Fit

Bull / Calm or Normal vol
Best conditions at 1.0 long. Return sign is cleanest and most persistent here.
Bull / Stressed vol
Scaled to 0.75 long. Momentum signal valid but vol-adjusted sizing applies.
Transition / any vol
0.0–0.35. Return sign flips frequently; no reliable autocorrelation structure.
Bear side
Mirrors Bull profile on short scale. Negative lookback returns drive short positions.

Compared to Alternatives

vs Donchian
TSMOM uses period return sign; Donchian uses N-day price extremes. TSMOM is smoother with fewer round-trips; Donchian is more reactive at breakout points.
vs MA Crossover
TSMOM directly compares current price to a past price; MA Crossover compares smoothed averages. Results are similar on broad indices but construction differs.
vs Dual Momentum
Dual Momentum adds a relative momentum filter vs the market; TSMOM uses absolute return sign only. Dual Momentum is more selective with fewer active signals.
Run This Strategy →