Dual Momentum 90 252 (Momentum)

Two momentum clocks must agree: long while both the 90-bar and 252-bar trailing returns are positive, and out as soon as either turns negative.

How It Works

  1. Measure two trailing returns each bar: a quarterly one (90 bars back) and a yearly one (252 bars back) — a fast clock and a slow clock for the trend.
  2. Buy only when both are positive: the market is up versus last quarter and versus last year, so the short and long views agree the trend is real.
  3. Sell as soon as either turns negative — one clock disagreeing is enough to step aside. Requiring agreement enters later than a single-window momentum strategy but avoids trades where a short rally fights a longer downtrend, or an old uptrend is already rolling over.

Worked example. Price is 118 today, was 105 ninety bars ago (+12.4%) and 100 a year of bars ago (+18%) — both clocks positive, so the strategy is long. A sell-off drags price to 103: still +3% on the year but −2% on the quarter — the fast clock has flipped, so the position closes without waiting for the yearly trend to fail too.

The Math Behind The Indicators

Everything runs on closing prices of the traded timeframe: P is a close, Pt today's close, and N counts bars — one bar is one candle of that timeframe, so 20 bars on a 1h chart is 20 hours.

Trailing Return (Momentum)
The percentage change of price versus N bars ago — the simplest possible measure of trend. Positive means price is higher than it was back then, negative means lower.
2026-07-17T19:28:13.939341 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Example: If price is 120 today and was 100 ninety bars ago, momentum is (120 / 100 − 1) × 100 = +20% — the market has trended up over the window.

Example Chart

Real Data — Score 48 / 100

Metrics Per Trade

Final Metrics

Scores

Resampled Data — Score 51 / 100

Metrics Per Trade

Final Metrics

Scores