Backtested research example
🗓 Backtest period: 2020-01-01..2026-07-15
Spec ID: spec-sector-momentum-rotation-etf-top50-1767027941_v13 · Generated: 2026-07-10 06:40 UTC
Cluster: Momentum · Sub Cluster: Sector Etf Relative Strength
Monthly rotation strategy that ranks liquid U.S. sector ETFs by 3/6/12-month relative strength versus SPY. It holds the top 3 names equal-weighted and rebalances on the first trading day using next-open execution.
Sector leadership tends to persist over intermediate horizons due to institutional flows, slow-moving macro repricing, earnings-cycle dispersion, and benchmark-relative allocation decisions. Ranking sectors versus SPY attempts to isolate cross-sectional leadership from broad market beta, while using multiple lookbacks reduces dependence on a single formation window.
The ETF implementation is liquid and capacity-friendly, but the edge is still exposed to crowding, factor regime shifts, and abrupt sector reversals.
[code omitted from public view]
| Param | Value | Notes |
|---|---|---|
| Rule type | SECTOR_MOMENTUM |
Cross-sectional sector ETF momentum versus SPY |
| Lookbacks | 63, 126, 252 trading days | Approximately 3/6/12 months |
| Relative strength | ETF total return / SPY total return | Computed separately per lookback |
| Composite score | Mean z-score across lookbacks | Cross-sectional normalization before averaging |
| Selection count | 3 | Holds top-ranked sector ETFs |
| Position sizing | Equal weight | Subject to max position cap |
| Gross leverage | 1.0 | Long-only, fully invested target |
| Max weight per position | 40% | Risk override cap |
| Min positions | 3 | Desired minimum holdings |
| Rebalance frequency | Monthly | First trading day of month |
| Execution | Next open | 1 trading day signal lag |
| Liquidity filter | 63-day ADV >= 250,000 shares | Share-volume filter |
| Price-history requirement | 252 trading days | Drop if missing any lookback |
| Universe | Top 50 U.S. ETFs by capitalization, filtered to sector ETFs | Sector identification via provider metadata/name matching |
| Benchmark | SPY | Used for relative-strength denominator |
| Volatility targeting | False | No vol scaling |
| Stop loss | None | No explicit stop |
| Transaction cost | 10 bps | Plus proportional-to-spread slippage proxy using 20-day spread window |
| Backtest interval | 2020-01-01 to 2026-07-15 | As specified in backtest plan |
| Available data period | 2018-01-01 to 2023-01-01 | Context-provided data range |
| # | Concern | Status |
|---|---|---|
| 1 | Signal timing | Uses a 1-trading-day signal lag and next-open execution, reducing same-close look-ahead risk. |
| 2 | Return lookbacks | Signals are based on trailing 63/126/252-day total returns only; candidates with missing lookback data are dropped. |
| 3 | Universe construction | Sector ETF filter should be checked for point-in-time metadata availability; name/category metadata may be survivorship-biased if sourced current-state. |
| 4 | Liquidity filter | Uses trailing 63-day volume; implementation should ensure the volume window ends before the signal date. |
| 5 | Benchmark data | SPY relative-strength denominator must use the same lagged timestamp convention as ETF prices. |
| 6 | Corporate actions/distributions | Total-return calculations should use adjusted prices or distribution-inclusive series to avoid dividend-related bias. |
The reported backtest is strong on headline performance, with total return of 161.24%, Sharpe of 1.21, Sortino of 1.50, and win rate of 85.71% across 56 trades. Risk is non-trivial: volatility is 20.50% and max drawdown reaches -23.83%, consistent with a concentrated long-only sector rotation profile. The unusually high profit factor of 27.17 is encouraging but should be treated cautiously until universe construction, sample dates, and point-in-time sector ETF membership are independently audited.
| Metric | Value |
|---|---|
| Total Return | 161.24% |
| Sharpe | 1.21 |
| Sortino | 1.50 |
| Calmar | 0.67 |
| Max Drawdown | -23.83% |
| Volatility | 20.50% |
| Win Rate | 85.71% |
| Profit Factor | 27.17 |
| Total Trades | 56 |
| Symbols | 50 (AGG, BIL, BIV, BND, BNDX, BSV, DIA, EFA, GLD, IEFA, +40 more) |
Backtests are historical simulations for research purposes only. They are not investment advice and do not guarantee future performance.