AQAI QuantAI research lab for systematic strategies

Case study · Backtest

FEDFUNDS Low-Rate Gated Time-Series Momentum on Large-Cap US Stocks

MACRO_GATED_TIME_SERIES_MOMENTUM
macromomentuminterest-ratesFEDFUNDSlarge-cap-us-stocksregime-comparison

🗓 Backtest period: 2018-01-01..2023-01-01

Jan 2018Total 56.6%Dec 2022
Max DD -15.1%

Backtest metrics

Sharpe
0.88
Total Return
56.6%
Max Drawdown
-15.1%
CAGR
9.4%
Volatility
12.8%
Beta vs SPY
0.27
Trades
10,662

Strategy Card

FEDFUNDS Low-Rate Gated Time-Series Momentum on Large-Cap US Stocks — strategy card

Spec ID: spec-macro-gated-time-series-momentum-us-stocks-1783195630 · Generated: 2026-09-05 09:43 UTC

Cluster: Momentum · Sub Cluster: Low-Rate Gated Absolute Equity Momentum

One-line description

The strategy holds up to 20 liquid US stocks with positive multi-horizon time-series momentum and bullish moving-average trends, but only when point-in-time FEDFUNDS is at or below 1%. Qualifying stocks are volatility-adjusted, ranked, and equally weighted.

Why this trade exists

Equity trends can persist because information diffuses gradually, investors underreact, and institutional repositioning occurs over time. Requiring positive 3-, 6-, and 12-month returns plus a bullish 50/200-day trend seeks to avoid weak or reversing trends, while dividing the composite score by recent volatility favors smoother momentum.

The macro gate assumes that momentum-bearing equities receive greater support when short-term policy rates are very low. Cheap funding, easier financial conditions, and greater investor risk appetite may strengthen trend persistence, while the FEDFUNDS threshold also removes exposure when monetary conditions are less accommodative.

Algorithm

[code omitted from public view]

Parameters

Param Value Notes
Signal formula 0.4×R63 + 0.4×R126 + 0.2×R252 Multi-horizon absolute momentum
Volatility adjustment Divide by 20-day realized volatility Ranks smoother trends more highly
Trend filters Close > SMA200; SMA50 > SMA200 Required for entry
Return filters R63 > 0; R126 > 0 Required for entry
Minimum history 252 trading days Needed for the longest return window
Macro gate FEDFUNDS <= 1.0% Latest point-in-time observation by observation date
Macro missing-data rule Skip new entries Applies until a qualifying observation is available
Rebalance/execution Daily close Signals are measured at the close and executed market-on-close
Maximum positions 20 Highest-ranked qualifying stocks
Position sizing Equal weight; 10% cap per stock Portfolio may retain cash when too few names qualify
Maximum leverage 4.0x Configured hard ceiling
Liquidity threshold $25 million Minimum 20-day average dollar volume
Universe 100 US stocks sorted by capitalization Supplied symbol list; stock instruments only
Backtest window 2018-01-01 to 2023-01-01 Daily bars; no walk-forward analysis
Commission $0.004/share $1 minimum per order; maximum 1% of order value
Slippage 0 bps No modeled market impact or spread slippage
Missing execution price Skip trade No fill when the real daily close is missing
Required comparisons Low-rate, non-low-rate, and ungated variants Variant-level results were not supplied with the summary

Look-ahead audit

# Concern Status
1 Close-derived returns, averages, and volume are executed at the same close Compliant with the platform's market-on-close convention; no same-day-open execution is specified
2 FEDFUNDS point-in-time filtering Partially controlled: observation_date &lt;= signal_date is enforced, but publication timestamps or vintage availability should be verified
3 Rolling indicator construction Compliant by specification: 20/50/63/126/200/252-day calculations use history through the signal close
4 Universe membership and capitalization ranking Needs verification for survivorship bias and whether membership is reconstructed point in time
5 Corporate-action treatment Not specified; adjusted-price handling should be confirmed for returns and moving averages
6 Missing execution prices Controlled: trades are skipped rather than filled from future or synthetic prices

Caveats / known limitations

Results

From 2018 through the start of 2023, the backtest produced a 56.59% total return with a 0.88 Sharpe ratio, 0.82 Sortino ratio, 12.81% volatility, and a -15.13% maximum drawdown. The 1.75 profit factor and 79.18% win rate are positive, but the 10,662 trades, zero-slippage assumption, short test window, and absence of the required regime-variant results limit confidence that the macro gate adds robust out-of-sample value.

Run diagnostics

Recomputed here from the run's stored daily returns, because every annualized figure in the table above is derived from the LENGTH of that array (years = n / 252). Only total return and max drawdown do not depend on the row count, so when the recomputed and stored values differ by a common factor, those two are the numbers to trust.

Check From the run's own returns Note
Daily-return rows 1,259 1.00x the 1,260 trading days in 2018-01-01..2023-01-01
Distinct dates 1,259 one row per date
Date span 2018-01-02 .. 2022-12-30
Sum of daily returns 56.59% matches the reported total return
Sharpe from these rows 0.88 stored 0.88
Volatility from these rows 12.81% stored 12.81%
Max drawdown from these rows -15.13% stored -15.13%
CAGR from these rows 9.39% stored 9.39%

Backtest metrics snapshot

Metric Value
Total Return 56.59%
Sharpe 0.88
Sortino 0.82
Calmar 0.62
Max Drawdown -15.13%
Volatility 12.81%
Beta vs SPY 0.27
Win Rate 79.18%
Profit Factor 1.75
Total Trades 10662
Symbols 100 (AAPL, ABBV, ABT, ACN, ACON, ADBE, ADP, AMD, AMGN, AMT, +90 more)