Backtest 317 evaluates a long-only, daily-bar systematic strategy on a broad universe of 4,176 US-listed equities from 1 March 2016 to 30 April 2026 (≈ 10 years 2 months). Over that window the strategy compounds to a CAGR of 30.4% versus the S&P 500 total-return benchmark at 13.8%, with a max drawdown of -17.70% against the benchmark’s -33.92% — while holding positions only 78% of the time.

This is a historical backtest, not a live track record and not a trading signal. Past performance is not indicative of future results. Content is published for informational and educational purposes only — see the closing notes and our community page for the full disclaimer.

Headline numbers

MetricStrategyBenchmark (SPX TR)
Period2016-03-01 → 2026-04-30
CAGR30.41%13.80%
Cumulative return+1,394%+273%
Max drawdown-17.70%-33.92%
Longest DD (days)448745
Volatility (annualised)20.30%17.93%
Sharpe0.780.10
Sortino1.350.14
Calmar1.720.41
Time in market78%100%
Gross exposure (avg)36%
Beta to SPX0.20
Trades818
Win rate53.30%
Risk / reward1.75
Skew+3.33-0.38
Kurtosis57.2516.21
QuantStats KPI snapshot over the matched window. The report sets the risk-free rate high (13.6%), which compresses the absolute Sharpe figure; an RF-flat internal computation gives a Sharpe of 0.81, Sortino 1.02 and Calmar 1.69 over the same window.

Universe & period

The universe is the US-equities zone — 4,176 US-listed stocks, daily bars, denominated in USD. This is a much wider cross-section than our world major-index studies, which changes the character of the strategy: with thousands of candidates the entry logic can be selective, and average gross exposure sits around 36% with the book in the market only 78% of the time. The simulation warms up indicators from 2014-12-19 and starts compounding from 2016-03-01 with $100,000 of initial capital, ending 2026-04-30.

Strategy in plain English

  • Long-only, no shorts, no leverage.
  • Entry: a MACD-variant trigger (internally macdv3b).
  • Exit: a composite of a moving-average rule and a VIX-based filter (internally ma0a + vix0b), combined with a 14% trailing stop.
  • Sizing: volatility-targeted at the portfolio level, position cap 20%, sector cap 33%, max 10 new entries per bar.
  • Cooldown: a freeze of 2 bars after each exit to avoid immediate re-entries.
  • Regime awareness: a 252-bar percentile-based regime filter. Over the test window bars classify as ~78% trend, ~8% range, ~15% bear (see our follow-up null-result study on whether this filter actually improves backtest outcomes) — the strategy is permitted in all three but sizes down outside trend.

Equity curve

Backtest 317 — cumulative returns vs SPX benchmark (linear scale)
Cumulative returns vs SPX. Linear scale.
Backtest 317 — cumulative returns, log scale
Same curve, log scale — early compounding is easier to read.

Annual returns

YearSPXStrategyMultiplierWon
201615.87%5.22%0.33
201719.42%-1.06%-0.05
2018-6.24%10.46%-1.68+
201928.88%36.71%1.27+
202016.26%67.92%4.18+
202126.89%51.28%1.91+
2022-19.44%4.12%-0.21+
202324.23%23.05%0.95
202423.31%53.72%2.30+
202516.39%49.37%3.01+
2026*5.31%27.19%5.12+
Calendar-year returns vs SPX. The strategy beats the benchmark in 8 of 11 years; 2022 (SPX -19.44% / Strategy +4.12%) is the standout. Note the weak spots too: 2017 was a small loss (-1.06%) while SPX returned +19.42%, and 2016 lagged badly. *2026 is a partial year through 30 April.
Backtest 317 — end-of-year returns vs benchmark
EOY returns — strategy bars vs benchmark. The dashed line marks the strategy’s average annual return.

Drawdown analysis

The deepest drawdown sits at -17.70% (Jan–Jun 2021), deeper than our world-index strategies but still roughly half the benchmark’s -33.92% peak-to-trough. The longest underwater stretch ran 448 days through the 2021–2023 chop. All of the worst-ten drawdowns had recovered before the end of the sample — there is no open drawdown in this record.

Backtest 317 — worst 5 drawdown periods
Equity curve with the worst five drawdown windows shaded.
Backtest 317 — underwater (drawdown) plot
Underwater plot — time spent below previous peak.
StartedRecoveredDrawdownDays
2021-01-282021-06-01-17.70%125
2024-07-172024-11-08-14.92%115
2024-11-122025-02-14-11.92%95
2021-11-042023-01-25-11.18%448
2020-02-212020-11-19-10.20%273
2023-08-012023-12-13-9.93%135
2025-02-202025-07-15-9.83%146
2023-02-032023-05-05-9.76%92
2021-06-252021-09-07-9.68%75
2016-05-032016-12-07-8.75%219
Worst 10 drawdowns by depth.

Rolling metrics

Backtest 317 — 6-month rolling volatility
6-month rolling volatility (annualised) — the strategy runs a couple of points above SPX on average, consistent with a concentrated, outlier-driven book.
Backtest 317 — 6-month rolling Sharpe
6-month rolling Sharpe — swings above and below the long-run average rather than a single persistent regime.
Backtest 317 — 6-month rolling beta vs SPX
Rolling beta vs SPX — low on average (full-sample beta 0.20) as net exposure stays modest.

Return distribution

Two distribution stats deserve a flag: skew of +3.33 and kurtosis of 57.25. That is a heavily right-tailed, fat-tailed profile — a relatively small number of very large up-days carry a disproportionate share of the compounding. Positive skew is the friendly direction (the surprises are mostly to the upside), but extreme kurtosis is also a fragility signal: results that lean on a handful of outliers are more sensitive to whether those specific days survive different cost, slippage and universe assumptions. Read the headline CAGR with that in mind.

Backtest 317 — monthly returns heatmap
Monthly returns heatmap. The outsized months carry the compounding; flat-to-negative months are common.
Backtest 317 — distribution of monthly returns
Distribution of monthly returns versus SPX — note the long right tail.
Backtest 317 — return quantiles
Return quantiles across daily, weekly, monthly, quarterly and yearly horizons.

Caveats & reading guide

  • This is a backtest, not a live track record. Trades are simulated on historical daily bars; real-world execution would face additional slippage, partial fills, and venue-specific frictions.
  • Outlier-driven distribution. Skew +3.33 and kurtosis 57.25 mean a handful of large up-days do a lot of the work. That is exactly the kind of profile that can degrade under different cost or universe assumptions — treat the CAGR as fragile, not bankable.
  • Breadth and liquidity. A 4,176-name US universe includes small and less-liquid stocks. Real fills on the thinner names would be worse than the bar-level model assumes; a liquidity-filtered re-run would be a fairer test.
  • Survivorship. The universe is built from current and historical listings; while care is taken to include delisted names, residual survivorship bias cannot be ruled out.
  • Risk-free rate. The QuantStats report uses a high annual RF (13.6%, inherited from a working assumption), which mechanically suppresses the printed Sharpe. An RF-flat internal calculation reports Sharpe 0.81, Sortino 1.02 and Calmar 1.69 over the same window.
  • Costs. Transaction costs, a value-traded borrow-fee model (0.8%) and a 1.5% margin spread are modelled at the bar level; the strategy turns over ~80 trades per year on average (818 total).
  • Out-of-sample. Parameter selection used the early portion of the window; results from 2020 onward give a more honest read of out-of-sample behaviour. The weak 2016–2017 stretch (including a -1.06% year against a +19% market) is part of the honest picture. Hard cutoff: the strategy’s rules and parameters were frozen on 3 July 2025, so all performance after that date is genuine out-of-sample / forward-tracked data — unseen at selection time, with no hindsight possible.

Discuss this backtest

We share backtest research, methodology notes and discussion on our free community channels — Telegram, Discord, X. Full details and the bilingual disclaimer on the community page.

KreamEdge publishes systematic strategy backtests and market analytics for informational and educational purposes only — not personalised investment advice. Past performance is not indicative of future results.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *