This project summarizes many backtests at once — equity indices and listed options on US index ETFs — in a common risk–return frame. Instead of cherry-picking one market or one lucky strategy, each chart averages metrics across a broad library so you can compare rules on a level playing field.
A second layer is a controlled teaching experiment: the same basket of simple strategies is rerun on one index (^GSPC, five years of daily data) with different stop-loss and take-profit settings. Every bar and line in that lab is an unweighted average across the basket, so you can see how exit rules move typical Sharpe, return, and drawdown — not an optimized portfolio.
**Equity indices:** 71 textbook-style strategies backtested across 20 global index symbols. Scatter dots and path charts use cross-index means — each strategy’s Sharpe and max drawdown are averaged across all index runs before plotting.
**Options on ETFs:** 54 options structures on SPY, QQQ, IWM, and DIA with rolling 45-DTE entries (~19 cycles, Aug 2024 – Mar 2026). Metrics are averaged per strategy across the four underlyings. Trades can exit on a simulated 5% stop-loss or 10% take-profit on the underlying ETF path, or at planned 45-DTE expiry if neither fires.
**Stop / target lab:** Fixed strategy set, single symbol, grid of stop-loss (0–7%) and take-profit (0–15%) combinations. Outputs include scenario bars, one-dimensional sweeps, and per-strategy SL×TP surfaces.
The **Sharpe vs maximum drawdown** scatter places every strategy in risk–return space using cross-index averages. Dots toward the upper-left (high Sharpe, shallow drawdown) are attractive on paper; the cloud shape tells you how much dispersion exists across rules.
The **cross-index average paths** panel lets you pick any strategy from a dropdown sorted by average Sharpe. Normalized equity and drawdown curves are averaged across all 20 index backtests — the same averaging basis as the scatter, so the two views stay consistent.
Options charts use the same risk-managed exits throughout: underlying stop-loss, take-profit, or 45-DTE expiry. Stored exit mix is typically ~47% expiry, ~37% stop-loss, ~16% take-profit when risk controls are enabled.
**Sharpe vs drawdown** scatter — one dot per strategy, colored by total return, averaged across SPY/QQQ/IWM/DIA.
**Win rate & avg return** dual bar charts — win rate (0–100%) and average return per trade (can be negative; axis zooms to the middle 90% so outliers do not flatten the view).
**Exit reason distribution** — counts how trades closed (stop, target, expiry).
**MAE vs MFE** — per-trade worst unrealized loss vs best unrealized profit before exit, colored by realized P&L.
The interactive lab fixes 71 strategies on ^GSPC and varies only exit rules. Read **scenario comparison** bars as baseline vs stop-only vs target-only vs combined settings. **Stop-loss sweeps** hold take-profit off; **take-profit sweeps** hold stop-loss off.
Compare Sharpe lines with drawdown bars for the same sweep — tighter stops do not automatically produce shallower average drawdown because churn can create new drawdown episodes. Use the **per-strategy surface** table and curves to see how one rule behaves when basket averages hide heterogeneity.
Each scatter dot is one strategy averaged across all index backtests. Use the dropdown on the paths chart to pick any strategy and see that same cross-index mean as equity and drawdown over time.
54 options strategies on SPY, QQQ, IWM, and DIA (metrics averaged per strategy). Stacked vertical bar charts show win rate and avg return per trade separately (see chart caption). Bar and scatter colors use strategy category (Income, Directional, Spread, Volatility, Neutral, Hedge). All four charts use the same simulated exits on the underlying ETF (stop, target, or 45-DTE expiry).
Experiment design: fix 71 textbook-style strategies, one price series (^GSPC, 5y of daily data), then change only the stop-loss and/or take-profit rule. Every plotted value is an unweighted average across those strategies — a classroom-friendly summary, not an optimized portfolio. Last computed: 8 Jun 2026, 12:37.
Important: Sharpe (no units), return (%), and drawdown (%) share one vertical axis for compact display — compare blue bars to blue bars across scenarios, green to green, red to red. Do not compare blue height to green height as if they were the same quantity.
Y-axis: simple average of each strategy's Sharpe at that stop. X-axis: stop width as a percent below entry (for example 5 means exit if price drops 5% below where you bought).
Y-axis: same averaging idea as the stop chart. X-axis: target as a percent above entry — a 10 means lock gains if price rises 10% above entry, under the rules of the simulator.
Shorter bars mean a shallower average drawdown in this basket. Averages are unweighted — each strategy counts the same, which is fine for teaching but not the same as a dollar-weighted book.
Read next to the take-profit vs Sharpe line: a target that lifts Sharpe might still change how deep the typical path dips.
Select a strategy to inspect its individual response surface instead of only basket averages. The table shows Sharpe by stop-loss (rows) and take-profit (columns), and the two curves isolate one dimension at a time for that selected strategy.