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.5%Dec 2022
Max DD -15.1%

Backtest metrics

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

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-25 10:12 UTC

Cluster: Momentum · Sub Cluster: Low-Rate Gated Stock Momentum

One-line description

Buys up to 20 liquid US stocks with strong absolute momentum when FEDFUNDS is at or below 1%. Exits positions when momentum weakens, price breaks its long-term trend, or the rate gate closes.

Why this trade exists

Price trends may persist as investors incorporate information gradually. Low policy rates may support risk-taking and equity trends; the FEDFUNDS gate tests whether restricting exposure to that environment improves this momentum strategy. Volatility-adjusted ranking favors stronger returns relative to recent price variability.

Algorithm

[code omitted from public view]

Parameters

Param Value Notes
Universe 100 specified US stock symbols Large-cap-oriented list; specification selects by capitalization.
Backtest window 2018-01-01..2023-01-01 Daily bars; rebalance at close.
Rate gate FEDFUNDS <= 1.0 Latest observation with observation_date <= signal_date; skip new entries if unavailable.
Momentum score 0.4 × return_63d + 0.4 × return_126d + 0.2 × return_252d Divide by 20-day realized volatility.
Trend and entry filters Close > SMA_200; SMA_50 > SMA_200; positive 63- and 126-day returns Minimum 252 days of price history.
Liquidity 20-day average dollar volume >= $25,000,000 Applied to eligible stocks.
Holdings and sizing At most 20; equal weight; 10% position cap Configured maximum leverage: 4.0; this does not establish that leverage was used.
Exits Negative 63-day return, close < SMA_200, or FEDFUNDS > 1.0 Existing positions also rebalance by rank.
Commissions $0.0040 per share, minimum $1.00 per order, capped at 1.00% of trade value Charged per fill by the results module; all metrics are net of them
Slippage 0 bps — not applied Not an omission — MOC (market-on-close) fills at the auction print the backtest uses
Costs not modelled short borrow fees / rebate, margin financing on leverage, market impact, exchange/regulatory/clearing pass-through fees, taxes Excluded deliberately, not unknown

Look-ahead audit

# Concern Status
1 Price lookbacks and moving averages use only information available by the signal close ✓ Required by the specified rolling rules; confirm in the full implementation.
2 FEDFUNDS point-in-time selection ⚠ Observation date is constrained to signal date or earlier; publication-time availability still requires verification.
3 Same-day signal and execution ✓ Signals and MOC execution are at the close, not at that day's open.
4 Historical universe membership ⚠ Verify capitalization selection and symbol eligibility as of each date to exclude survivorship bias.
5 Transaction costs ✓ commissions $0.0040/share (min $1.00/order); slippage 0 bps — not applied

Caveats / known limitations

Results

The commission-net backtest returned 56.53%, with a 0.88 Sharpe ratio and −15.12% maximum drawdown. Win rate was 79.20% and profit factor was 1.75 across 10,661 trades. These aggregate figures do not establish that the FEDFUNDS gate outperformed an ungated momentum variant.

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.53% 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.12% stored -15.12%
Lowest the book stood -0.20% low-water mark, in units of starting capital
CAGR from these rows 9.38% stored 9.38%

Backtest metrics snapshot

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