A real result · no account needed
Momentum on AAPL, 2019–2024.
1258 trading days · 676d long · 283d short · 299d flat
This strategy lost badly to doing nothing.
It turned $1 into $1.68. Buying and holding AAPL over the same period turned it into $5.08 — roughly 3.0× better, with no trading and no fees. We lead with this because it is the result the engine actually produced, and because a backtesting tool that only ever shows you winners is not measuring anything.
Ranges are 95% confidence intervals from 1,000 block-bootstrap resamples (blocks averaging 41 bars, chosen from this series' own autocorrelation). They measure how much of this result came from the order the returns arrived in — not whether the strategy works on data it has never seen. Amber marks an interval that still contains the value meaning "no effect". Intervals marked understated are known to be too narrow: measured coverage for volatility was 74% against a nominal 95%.
The gap between the two Sharpe ratios is inside what this much data can tell apart — it is not evidence of an edge.
Costs would have to reach 41 bps — 4.1× what you assumed — before the return reaches zero.
Equity curve
Growth of $1. Ink is the strategy; the dashed line is holding the stock.
ends 1.68 vs 5.08
Drawdown
How far below its previous peak the equity sat, day by day.
worst -42.2%
Annual returns
Strategy against buy-and-hold, year by year.
Monthly returns
| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Year | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 0.0 | 0.0 | 3.3 | 5.6 | 6.7 | -11.3 | 5.0 | -13.2 | 7.2 | 9.4 | 7.8 | 8.7 | 29.3 |
| 2020 | 5.4 | 7.7 | -1.7 | -5.4 | 8.5 | 14.7 | 13.6 | 21.7 | -23.6 | -8.7 | -10.5 | 11.3 | 26.1 |
| 2021 | 0.6 | 3.4 | -1.4 | 2.6 | -3.3 | 2.9 | 6.5 | -1.6 | -2.4 | -1.6 | 8.5 | 7.4 | 22.8 |
| 2022 | -6.3 | -4.8 | 2.2 | -3.7 | -1.9 | 6.2 | 3.7 | 0.7 | 5.0 | -9.8 | -17.0 | 2.5 | -22.9 |
| 2023 | -2.8 | 2.6 | 3.0 | 2.9 | 1.4 | 9.4 | 1.3 | -3.7 | -4.0 | -4.0 | 1.8 | 1.7 | 9.0 |
Values are percent. Hover any cell for the exact figure.
Rolling Sharpe
Trailing 60-day risk-adjusted return. Steady above zero beats one lucky spike.
By market regime
Each day is labelled by how volatile the market was over the previous 21 days, split into thirds for this period: calm below 22% annualised, turbulent above 32%. The same money, sorted by the weather it was made in.
best calm · worst turbulent · spread 4.32
| Regime | Days | Sharpe | Market Sharpe | Contribution | Hit rate | In market |
|---|---|---|---|---|---|---|
| Calmlowest third of days by market volatility | 413 (33%) | 3.45 | 3.70 | 91.9% · 127% of total | 53% | 83% |
| Middlingmiddle third | 412 (33%) | 0.97 | 0.40 | 37.9% · 52% of total | 48% | 77% |
| Turbulenthighest third | 413 (33%) | -0.87 | 0.75 | -57.4% · -79% of total | 41% | 72% |
Which way the market was going
The same days, labelled by the market's move over the previous 60 days: rising or falling when that move is more than 1 standard deviation of its own noise, flat otherwise. A fixed cut, not a third — so flat means flat.
best rising · worst flat · spread 1.92
| Direction | Days | Sharpe | Market Sharpe | Contribution | Hit rate | In market |
|---|---|---|---|---|---|---|
| Fallingmarket down more than one standard deviation over the window | 25 (2%) | 0.22 | -3.42 | 0.5% · 1% of total | 31% | 52% |
| Flatmove inside one standard deviation of its own noise | 730 (61%) | -0.12 | 0.51 | -10.6% · -15% of total | 46% | 78% |
| Risingmarket up more than one standard deviation | 444 (37%) | 1.81 | 2.65 | 79.9% · 114% of total | 51% | 84% |
Volatility × direction
The two labels crossed. Best cell calm & rising (4.17), worst turbulent & flat (-1.43). Cells under 21 days show the count only.
| Sharpe | Falling | Flat | Rising |
|---|---|---|---|
| Calm | —5 d | 2.55168 d | 4.17224 d |
| Middling | —5 d | 1.27272 d | 0.27122 d |
| Turbulent | —15 d | -1.43290 d | 0.9298 d |
Sharpe per regime is computed over the days in that regime, which are not consecutive. Contributions are arithmetic and sum to the arithmetic total. The first 20 days have no volatility label and the first 59 no direction label — the window has not filled yet.
One strategy, one ticker, one period, on its default parameters.
The question that decides whether any of it means anything is whether the result survives on data the parameters were never fitted to. The answers that for this run. A free account runs the backtest on any stock; the checks are part of Pro.