AI QuantAll research examples

Backtested research example

Time-Series Momentum w/ Trend Filter + Volatility/Drawdown Crash Protection (US Stocks)

TSM_TREND_CRASH_PROTECTED
momentumtime-series-momentumtrend-followingtrend-filtercrash-protectionvol-targetingatr-stopweekly-rebalanceus-stocksdaily

🗓 Backtest period: 2020-01-01..2025-10-08

StartTotal 79.4%End
Max DD -22.9%

Backtest metrics

Sharpe
0.73
Total Return
65.5%
Max Drawdown
-25.5%
CAGR
9.2%
Volatility
15.6%
Trades
3,977

Strategy Card

Time-Series Momentum w/ Trend Filter + Volatility/Drawdown Crash Protection (US Stocks) — strategy card

Spec ID: spec-tsm-trendfilter-crashprotected-us-stocks-1772186900 · Generated: 2026-05-18 10:18 UTC

One-line description

Long-only weekly time-series momentum strategy on the 50 largest US stocks, selecting names with positive multi-horizon momentum, a 200-day trend filter, and sufficient ADX trend strength. Portfolio risk is moderated with inverse-vol weighting, volatility targeting, ATR trailing stops, SPY regime filters, and drawdown de-leveraging.

Why this trade exists

Time-series momentum and trend-following attempt to capture the empirical tendency for assets with positive recent returns and established uptrends to continue outperforming over intermediate horizons. The strategy combines stock-level continuation signals with a broad-market risk-on filter, reflecting the view that single-name momentum is more reliable when the market proxy is also above its long-term trend.

Crash protection is included because equity momentum can suffer during volatility spikes, sharp reversals, and correlated selloffs. Volatility targeting, inverse-volatility sizing, ATR stops, and portfolio drawdown de-leveraging are intended to reduce exposure when realized risk or losses rise, while still allowing participation during persistent equity trends.

Algorithm

[code omitted from public view]

Parameters

Param Value Notes
Universe Top 50 US stocks by capitalization Static symbol list supplied in spec; includes AAPL, MSFT, NVDA, AMZN, etc.
Side Long only No short positions.
Bar size 1 day Daily OHLCV inputs.
Backtest window 2020-01-01 to 2025-10-08 Includes COVID crash, 2022 bear market, and 2023-2025 rally period.
Rebalance frequency Weekly Uses last trading day of each week.
Entry signal Majority vote, at least 3 of 4 votes Votes: close > 200D SMA; 21D return > 0; 63D return > 0; 126D return > 0.
Trend strength filter ADX(14) >= 18 Filters weaker or choppier trends.
Ranking 126D return, descending Selects strongest eligible names.
Max positions 15 Concentrated large-cap momentum basket.
Weighting Inverse volatility Uses 20D realized volatility.
Per-name cap 10% Applied during portfolio construction.
Volatility target 12% annualized Always applied, based on 20D realized vol.
Vol scale bounds 0.25 to 1.5 Limits de-risking and re-risking from vol targeting.
Max leverage 4.0 Portfolio-level leverage ceiling.
ATR stop 3.0 * ATR(14) trailing from highest close since entry Exit on close breach, executed next open.
Market risk-on filter SPY close > SPY 200D SMA Required for new risk-on entries.
Volatility regime filter SPY RV20 / RV252 <= 1.5 De-risks when short-term market vol is elevated.
Drawdown control 63D drawdown trigger at 12% Risk scale multiplied by 0.5 for at least 10 trading days.
Drawdown reset SPY above 200D SMA for 5 consecutive bars Restores normal risk scale after condition is met.
Execution Signal at close, market order at next open Partial fills allowed.
Costs Not specified / null Backtest metrics should be interpreted as before explicit commissions, borrow, tax, and slippage assumptions unless the engine applied defaults outside the spec.

Look-ahead audit

# Concern Status
1 Indicator timing Signals are defined using close data and trades occur at the next open, reducing same-bar look-ahead risk.
2 Rolling windows SMA, returns, ADX, ATR, and realized volatility use historical rolling windows with full-window minimums.
3 Universe construction Universe is described as top 50 by capitalization; if selected using future information or survivorship-biased constituents, results may be overstated.
4 Corporate actions Requires split- and dividend-adjusted prices for return and trend calculations; adjustment methodology should be verified.
5 Execution assumptions Next-open market fills may be optimistic around gaps, halts, high volatility, or large rebalance trades.
6 Risk-control state Drawdown triggers, trailing stops, and highest-close-since-entry must be updated only with information available at or before each decision time.

Caveats / known limitations

Results

The backtest produced a positive total return of 65.52% over 2020-01-01 to 2025-10-08, with moderate risk-adjusted performance: Sharpe 0.73, Sortino 0.87, and Calmar 0.36. The realized volatility was 15.63% and maximum drawdown reached -25.54%, indicating that the crash-protection layer reduced but did not eliminate substantial equity drawdown risk. Win rate was 64.93% with profit factor 1.35 across 3,977 trades, suggesting a broadly profitable but turnover-heavy implementation whose live viability depends heavily on realistic execution costs and point-in-time universe handling.

Backtest metrics snapshot

Metric Value
Total Return 65.52%
Sharpe 0.73
Sortino 0.87
Calmar 0.36
Max Drawdown -25.54%
Volatility 15.63%
Win Rate 64.93%
Profit Factor 1.35
Total Trades 3977
Symbols 50 (AAPL, ABBV, ABT, ACN, ADBE, AMD, AMZN, AVGO, AXP, BAC, +40 more)

Backtests are historical simulations for research purposes only. They are not investment advice and do not guarantee future performance.