Backtested research example
🗓 Backtest period: 2018-01-01..2026-07-15
Spec ID: spec-multitimeframe-momentum-us-stocks-1783167355_v14 · Generated: 2026-07-15 10:17 UTC
Cluster: Momentum · Sub Cluster: Weekly-Daily Trend Alignment
Long-only US large-cap trend-following strategy that buys stocks only when both daily and completed-week moving-average trends are bullish. Positions are ATR-sized, capped per name, and exited on trend deterioration, trailing stop, or maximum holding period.
The strategy attempts to harvest medium-term equity momentum while reducing whipsaw by requiring confirmation across two horizons. Daily trend filters capture nearer-term price persistence, while completed weekly trend filters aim to avoid trades that are only short-lived rebounds inside weaker higher-timeframe regimes.
The rationale is behavioral and structural: investor underreaction, slow institutional rebalancing, and benchmark-driven flows can cause large-cap winners to continue trending. ATR-based sizing and trailing stops are intended to normalize single-name risk and cut exposure when realized price action invalidates the trend.
[code omitted from public view]
| Param | Value | Notes |
|---|---|---|
| Rule type | MULTI_TIMEFRAME_TREND_MOMENTUM | Long-only trend-following rule |
| Universe | Top 20 US stocks by capitalization | Includes AAPL, AMZN, BRK-A/BRK-B, GOOG/GOOGL, MSFT, NVDA, TSLA, etc.; supplied universe also contains very small/irregular tickers that require data-quality review |
| Backtest window | 2018-01-01 to 2023-01-01 data period | Plan references 2018-01-01..2026-07-15, but available data period ends 2023-01-01 |
| Bar / rebalance | Daily bars; rebalance at close | Signals use close/high/low/volume data |
| Daily trend | 20-day SMA > 50-day SMA, close > 20-day SMA, 20-day SMA slope over 5 days > 0 | All daily conditions required |
| Weekly trend | 20-week SMA > 50-week SMA, weekly close > 20-week SMA, 20-week SMA slope over 4 weeks > 0 | Uses completed Friday weeks only |
| Liquidity filter | 20-day average dollar volume >= $10,000,000 | Skip signal if required price or volume data is missing |
| Position sizing | ATR volatility-adjusted | ATR(14), target risk 1% per position, max 10% notional per name |
| Risk exits | 3.0x ATR trailing stop; max holding 126 days | Also exit when daily or weekly trend is no longer bullish |
| Leverage | Max 4.0x | Portfolio-level leverage cap |
| Costs | $0.004/share commission, $1 minimum/order, max commission 1%; 0 bps slippage | Slippage assumption is optimistic for less liquid names |
| Missing data | Skip trade/signal if required data missing | No synthetic execution prices allowed |
| # | Concern | Status |
|---|---|---|
| 1 | Weekly indicator look-ahead | Mitigated by using completed weeks only and last available daily close for Friday week close |
| 2 | Close-to-close signal/execution timing | Needs confirmation that orders generated from close-based indicators are executed after signal formation, not at the same close without delay |
| 3 | Universe survivorship bias | Open concern: top-20 capitalization universe appears fixed from supplied symbols rather than point-in-time membership |
| 4 | Corporate actions and adjusted prices | Needs verification that price series are split/dividend adjusted consistently across close/high/low and ATR inputs |
| 5 | Liquidity and delisting data | Needs review because supplied universe includes unusual tickers; missing or stale data could distort trade counts and exits |
| 6 | Transaction cost realism | Partially modeled via commissions, but slippage is set to 0 bps and may overstate results |
The backtest shows a positive but moderate risk-adjusted profile: total return was 79.69% with Sharpe 0.76, Sortino 0.85, and Calmar 0.48. Maximum drawdown was contained at -15.00% with 12.37% volatility, suggesting the trend filters and ATR sizing helped limit downside, though the 37.06% win rate indicates the strategy relies on larger winners relative to frequent smaller losses. Profit factor of 1.55 across 1,630 trades is directionally encouraging, but robustness depends heavily on resolving universe, timing, and slippage assumptions.
| Metric | Value |
|---|---|
| Total Return | 79.69% |
| Sharpe | 0.76 |
| Sortino | 0.85 |
| Calmar | 0.48 |
| Max Drawdown | -15.00% |
| Volatility | 12.37% |
| Win Rate | 37.06% |
| Profit Factor | 1.55 |
| Total Trades | 1630 |
| Symbols | 20 (AAPL, ACON, AMZN, BETR, BRK-A, BRK-B, GOODO, GOOG, GOOGL, HOLO, +10 more) |
Backtests are historical simulations for research purposes only. They are not investment advice and do not guarantee future performance.