A screen backtest re-forms an equal-weight basket of the top names at every rebalance date, holds it to the next date, and chains the period returns into an equity curve that starts at 100. Every number on the result is computed from that list of period returns , net of trading costs, and the benchmark's returns over the same periods. With periods per year (52 weekly, 12 monthly, 4 quarterly, 1 annual), this section gives each formula as the engine computes it and how to read it.
Total return and price return
A stock's return over a period is its price change plus the cash dividends with an ex-date inside the period:
Total return (the default) includes ; price return leaves it out. Over a decade the difference is large: at a 2% dividend yield it is roughly 2 points a year, which compounds to about 22% more ending wealth over ten years. A value or dividend strategy tested on price returns is understated; compared with a total-return index it looks worse than it was. Prices and dividends are put on the same split-adjusted basis, and dividends are reinvested at the next rebalance through the equal-weight reset.
Cumulative return and CAGR
is the length of the test in calendar years, from the first rebalance date to the end of the last period. CAGR is the constant annual rate that would have produced the same ending value; it is the number to compare between tests of different lengths.
100 grows to 180 over 6.5 years. Total return 80%; CAGR = 1.81/6.5 − 1 = 9.5% a year. The arithmetic average of the yearly returns would be higher, because volatility drags compounding down: +50% then −50% averages 0% but leaves you with 75.
Volatility
The sample standard deviation of period returns, annualised by the square root of the number of periods per year. A broad US equity index has run at roughly 15 to 20% a year. Volatility treats a large gain as as much "risk" as a large loss, which is why the ratios below come in two flavours.
Sharpe ratio
Return above the risk-free rate per unit of volatility. is the 3-month Treasury bill yield as known on the first rebalance date (or 0, and the result says which). Above 1 over a long test is very good for a long-only stock strategy; the US market itself has averaged around 0.4 to 0.5.
Monthly returns averaging 1% with a standard deviation of 4%, risk-free 3% a year: (0.01 − 0.0025) / 0.04 × √12 = 0.65.
Sortino ratio
The same numerator divided by the downside deviation: only periods below the risk-free rate count as risk, and every period is in the average (gains contribute zero). A strategy whose volatility comes from big up months has a Sortino well above its Sharpe.
Quarterly returns 6%, −4%, 3%, 7%, risk-free 0. Mean 3%. Downside deviation = √((0 + 0.04² + 0 + 0) / 4) = 2%, so Sortino = 0.03 / 0.02 × √4 = 3.0. The sample standard deviation is 4.97%, so Sharpe = 0.03 / 0.0497 × 2 = 1.21.
Maximum drawdown and its dates
The deepest fall of the equity curve from a previous high, with three dates: the peak, the trough and the first date the curve was back at the peak (empty if it never recovered). Drawdown is the statistic people actually live through: a 50% drawdown needs a 100% gain to recover, and most people abandon a strategy somewhere in the middle of its worst drawdown. Calmar = CAGR / |MaxDD|.
The curve goes 100 → 130 → 91 → 120 → 135. The drawdown from the peak of 130 to 91 is −30%; the curve recovers at 135, the first value at or above 130.
Beta and alpha
An ordinary least-squares regression of the strategy's excess returns on the benchmark's. Beta is the sensitivity to the market: 1.2 means the strategy moved 1.2% for each 1% of the benchmark, on average. Alpha is the annualised intercept, the return not explained by that exposure. A strategy that beat the market with a beta of 1.4 in a bull market may have no alpha at all: it simply held more market. Needs at least three periods with a benchmark return.
Tracking error and information ratio
Tracking error is how far the strategy wanders from its benchmark; the information ratio is the average excess return per unit of it. An IR of 0.5 sustained over many years is excellent. Tracking error also tells you how long you may have to wait: see reading a live strategy for the arithmetic of underperforming years.
Hit rate, best and worst, up and down markets
Hit rate is the share of periods with a positive return. Best and worst period are what they say. Up-market and down-market excess average the strategy's excess return over the periods when the benchmark rose, and when it fell: a defensive strategy shows a negative up-market and a positive down-market excess.
Turnover and cost drag
Turnover per period is the share of the previous basket that was sold. 25% quarterly turnover means one name in four is replaced every quarter, about 100% a year. Costs are charged only on names entering and leaving the basket. The result reports the total and average cost drag (the sum and mean of per-period costs) and the annual cost drag:
If the annual cost drag is a large fraction of the excess return, the strategy's edge lives in names that are expensive to trade. See transaction costs.
Choosing the benchmark
The default is SPY, priced from the store with the same return type. It answers "would an index fund have done better?". For an equal-weight screen it is not a fair yardstick of skill: the S&P 500 is weighted by market cap, while an equal-weight basket of the same stocks holds more small companies, and small and mid caps have long stretches of beating or trailing the giants regardless of any stock picking. The equal-weight universe benchmark holds every stock in your universe at equal weight over the same periods. Beating it means the rules picked better stocks than picking at random from the same pool; beating SPY may only mean the pool did well. Run both: the first is the question you care about as an investor, the second the one that tells you whether the rules add anything.
Rolling backtests: a distribution, not one path
One backtest is one path through history, and its result depends on the start date: a test that starts at a market low looks better than the same rules started at a high. A rolling backtest starts a window on every step date (say, every month), buys the equal-weight top names and holds them for a fixed horizon (say, a quarter), net of an entry and an exit cost, then reports the distribution of window returns and of the excess over the benchmark: mean, median, 10th, 25th, 75th and 90th percentiles, the share of windows that beat the benchmark, and the best and worst window. Windows overlap on purpose and nothing is compounded.
Read the spread, not the mean. A strategy that beats the benchmark in 55% of windows with a fat right tail is a different proposition from one that beats it in 75% with a thin left tail, even at the same mean. A median excess near zero with a positive mean means a few windows did all the work.
The vintage stamp
Every result records when each date's snapshot was built, the latest price date, the latest filing date, the latest ingestion time and the engine version. The guarantee: the same definition on the same vintage returns the same numbers. Past snapshots are never rebuilt automatically, so anything that could change a past result (a late filing, a restatement, a corrected split) arrives through ingestion and moves at least one stamp. If a rerun gives different numbers, the stamp says what changed.
Go deeper
- articleInvestopedia: Compound annual growth rate (CAGR)
- articleInvestopedia: Sharpe ratio
- articleInvestopedia: Sortino ratio
- articleInvestopedia: Maximum drawdown
- articleInvestopedia: Information ratio
- paperBailey and López de Prado: The Deflated Sharpe Ratio · Correcting a Sharpe ratio for the number of strategies tried and for fat tails.