One standard.
Every strategy.
Every strategy on this site runs through the same engine under the same rules. Nothing gets special settings, and no strategy gets tweaked to make its result look better. Here is exactly what those rules are.
if the rules change, every result gets re-run — no exceptions
The house rules
Every test starts on 2005-01-03 and runs to the latest close. One ticker keeps every result comparable.
A strategy is either fully in SPY or fully in cash. No shorting, no margin, no position sizing tricks.
A rule can only use prices that existed when it fired. Using today’s close to buy at today’s open is the most common backtest bug, and the engine makes it impossible.
Applied when buying and when selling, the same for every strategy. Strategies that trade a lot pay for it, as they would in real life.
If you held SPY at the close before the ex-date, you get the dividend. Still in the market, it buys more SPY at that day’s close; already out, it stays as cash. Holding SPY gets the same treatment, which is worth roughly 1.5–2% a year.
A strategy sitting in cash would really earn interest, so it does here too, using the previous day’s published rate. This is more honest, and it helps strategies that spend a lot of time out of the market.
Same start date, same costs, same dividends, same everything. A strategy only “works” if it beats doing nothing.
Results from these years are shown separately. A real edge should still show up on data that wasn’t used to judge it.
The verdicts
Suggested by the numbers, confirmed once a month by a person. Verdicts don’t flip with every new day of data.
A better risk-adjusted return (Sharpe ratio) than holding SPY, both before and after the held-out cutoff.
Wins on one count and loses on another. Usually: a smoother ride, but less money at the end.
Less money and a worse risk-adjusted return than holding SPY.
The Sharpe ratio is return above T-bills divided by how bumpy the ride was. Higher is better. Holding SPY since 2005 scores around 0.5.
Check our math
we'd rather be checked than trusted
The engine is a few hundred lines of TypeScript written for exactly these rules. The same code runs every page on this site, so a number on one page always matches the same number anywhere else.
Every night, after the close, an automatic checker:
- Re-runs standard strategies through two independent open-source backtesting libraries and fails if the results disagree beyond rounding.
- Checks every indicator (RSI, moving averages, MACD, Bollinger Bands) against an established technical-analysis library.
- Checks the data itself: no missing or extra trading days, no impossible price jumps, every quarterly dividend present.
- Compares tonight’s results for past years with the saved results. If history changed and nobody changed the engine or data, something crept in.
If any check fails, nothing new gets published until it’s fixed. The engine’s source code will be public at launch.
Results can differ by hundredths of a percent between data providers, mostly from how each one records the opening price. That’s too small to flip a verdict.
What a backtest can’t tell you
Every number here is about the past. Markets change, and a rule that worked for 20 years can stop.
Frequent trading creates short-term gains, taxed at your income rate. Holding defers taxes. Results here are before tax.
A −55% drop is a number on this page. Living through it is different. Most people don’t stick with a strategy through its worst year.
We test the famous version and a grid of nearby settings. Try enough variations and one will look great by luck alone, which is why we show the grid.
Fine print
Not investment advice. Everything here is simulated and for education. Nothing on this site is a recommendation to buy or sell anything, and none of it is personalized to you.
Data. Price and dividend data will come from a licensed provider, named here before any results are published. Interest rates come from the Federal Reserve’s FRED database (3-month Treasury bill, series DTB3).
Affiliate links. Some links may earn us a commission. They never affect a test or a verdict, and nobody can pay for one.