Skip to content
Transparency

How we compute strategy metrics

The win rates, average R-multiples, hold times, and exit-reason mixes you see across the site come from a single nightly run over five years of daily history. Here's the exact recipe — and the places it falls short of reality.

The pipeline

We run the same TypeScript detectors that power live screening against five years of daily OHLCV history for every symbol in our universe (~2,000 US stocks). Signal logic is identical to production — no parallel "backtest version" of any strategy.

  • Entries are simulated at the next-day open after a BUY signal fires (no lookahead).
  • Exits are realized: the simulator walks forward bar-by-bar until the strategy's stop, target, or maxHoldDays elapses.
  • Reported P&L is the difference between simulated exit price and simulated entry price.
  • MAE / MFE / time-to-T1 are recorded per simulated outcome and rolled up per cell.

Aggregates are recomputed nightly. Each surface that consumes them shows an "as of {date}" badge so you can tell when the numbers were last refreshed.

Known limitations

Survivorship bias

Our universe is today's listing. Stocks that delisted in the past five years are absent. Reported win rates are higher than what someone living through that period would have observed. We can't eliminate this bias without a point-in-time universe dataset — we don't currently have one. When you read the numbers, assume the true historical win rate is several percentage points lower.

5-year window

Strategies tested in only one regime — for example, the 2020 bull or the 2022 bear — won't reflect the other. A strategy that looks excellent over five years may have done so by sitting through exactly one favorable regime. Future iterations may extend the window to ten years once we trust the v1 numbers.

Sample-too-thin cells

When fewer than five historical signals fire on a (strategy, symbol) pair, we flag the cell and show "limited data" instead of a misleading win rate. The raw count is still surfaced so you can see why we're holding back.

RS rank reconstruction

We rebuild the relative-strength percentile cross-sectionally per day across the universe alive on that day. This is more honest than the single-symbol RS approximation used by the Pro+ on-demand backtest tool, which over-fires in weak markets and under-fires in strong ones. The pre-computed aggregates are the source of truth; the on-demand tool's headline numbers are an approximation.

Regime approximation

Live screening uses a five-state regime model (trend, ranging, high-volatility, transitioning). The historical run uses a simplified two-state approximation — SPY above or below its 200-day SMA — because the five-state inputs (breadth, VIX series) are harder to reconstruct cleanly across five years. Strategies gated on "TRENDING_UP" or "TRENDING_DOWN" map cleanly; the rarer regimes do not.

No slippage, no fees, no costs

Reported P&L is the raw price difference between simulated entry and exit. The simulator does not model spread, commissions, borrow costs, gap risk, or market impact. Real outcomes are worse than the reported numbers — close the gap by knowing your own brokerage's cost structure.

Single universe snapshot

The universe used to drive cross-sectional RS is the universe alive on each historical date — IPOs that hadn't listed yet are excluded from that date's ranking. Universe membership changes (additions, removals) are not reconstructed retroactively; today's universe is the closest approximation we have to what was tradeable five years ago.

What this isn't

These aggregates are screening transparency, not personalized recommendations. The numbers describe how a setup has historically resolved in simulation — they say nothing about whether the setup is right for your account, your risk tolerance, your time horizon, or the regime you'll meet tomorrow. EasySwing.trading is a screening and analysis tool, not an investment advisor.

Two surfaces talk about strategy performance on the site:

  • The pre-computed historical aggregates documented on this page (universe-wide, nightly refresh).
  • The Pro+ on-demand single-symbol backtest tool, which carries its own methodology disclaimer in its response.

Both surfaces are honest about what they approximate. Numbers will not match exactly across them.

View the raw aggregates

The complete per-strategy and per-cell payload is served publicly as JSON:

GET /api/strategy-metrics

Includes the computed_at timestamp, per-strategy totals, regime breakdowns, exit-reason distributions, MAE/MFE, and per-(strategy, symbol) cells with up to three example simulated outcomes each.

Disclaimer: Simulated historical results are hypothetical. Past performance, whether actual or simulated, is not indicative of future results. EasySwing.trading is a screening and analysis tool — not an investment advisor. See our Risk Disclaimer for full details.