Run a backtest on /simulate/ and the result screen hands you two dozen terms at once: Profit Factor, OOS Retention, DSR Confidence, a Reason column full of lowercase tags. This page defines every one of them — not textbook definitions, but what each term means in our engine specifically, where it appears on the screen, and the one trap that most often makes people misread it.
Format for every entry: definition → where you see it → the trap. Terms we’ve already covered in depth get a short definition and a link instead of a rerun — the deep dives stay canonical.
Core result metrics
Win Rate
The percentage of simulated trades that closed in profit.
Where you see it: the first row of the results card, labeled “Win Rate”; the interpretation guide chip reads “Win Rate > 50%: Good”.
The trap: the card’s own tooltip says it — high win rate with a low R:R can still lose money. The 50% guide chip is a rule of thumb; the real bar is the Break-even WR shown further down the card, which is computed from your actual average win and loss sizes. A strategy with small wins and big losses needs far more than 50% to break even.
Profit Factor
Gross profit divided by gross loss — above 1.0 means the strategy made more than it lost, after fees.
Where you see it: the results card (“Profit Factor”), strategy rankings, and the Verified bar (full-backtest PF ≥ 1.05). The card tooltip calls >1.5 good and >2.0 excellent.
The trap: PF 999.99 is a sentinel, not a score. The engine caps PF at 999.99 when a run has gross profit but zero gross loss — which almost always means a tiny sample where nothing happened to lose, not a superhuman edge. Conversely, a PF barely above 1.0 on a small sample can flip sign within data noise. Full treatment: Understanding Profit Factor in Backtesting.
Total Return
Net profit and loss over the test period, as a percentage of starting capital, after fees.
Where you see it: the results card (“Total Return”) and the equity curve tab.
The trap: headline presets size every trade at a fixed $60 with no compounding, so the total is a sum of per-trade outcomes on fresh margin — not what a single account would have compounded to, and (at high leverage especially) not proof one account would have survived the sequence.
Max Drawdown
The largest peak-to-trough decline of the equity curve, expressed as a percentage of the peak.
Where you see it: the results card (“Max Drawdown”), the drawdown chart tab, and the guide chip “Max Drawdown < 20%: Low risk”.
The trap: scope. A single strategy’s MDD and a portfolio-wide MDD are different numbers that get quoted interchangeably — always check what the label covers. How we compute it, and why thin samples understate it: How to Read Sharpe, Sortino, and Max Drawdown.
Trade Count
The number of completed round-trip trades in the simulation.
Where you see it: “N trades simulated” beneath the headline metrics; “Trades” in the validation tables.
The trap: two different sample bars live on two different surfaces. The simulator flags results under 30 trades as exploratory (see Small sample warning below); the strategy ranking page flags entries under 100 trades with a “Low sample” badge. Neither threshold implies the other — a 60-trade result passes the simulator banner and still wears the ranking badge.
Risk-adjusted metrics
Sharpe
Return per unit of total volatility: mean daily return divided by the standard deviation of daily returns, annualized with √365.
Where you see it: the “Risk-Adjusted” row of the results card, labeled “Sharpe”.
The trap: how the daily-return series is built (zero-filling, window width) moves the number more than the formula does. Full treatment, including the three traps that inflate it: How to Read Sharpe, Sortino, and Max Drawdown.
Sortino
Like Sharpe, but the denominator only counts downside volatility — target downside deviation over all days, not just losing days.
Where you see it: next to Sharpe on the results card, labeled “Sortino”.
The trap: dividing by the count of down-days instead of all days (a common shortcut elsewhere) inflates Sortino exactly when strategies rarely lose. Details in the same deep dive.
Calmar
Annualized return divided by max drawdown — return per unit of worst-case pain.
Where you see it: next to Sharpe and Sortino on the results card, labeled “Calmar”; the formula is published on /methodology/.
The trap: annualization explodes on short windows. A 30-day +10% run annualized as CAGR becomes +219% per year; against a 3% MDD that prints Calmar 73 — a meaningless number. That’s why our engine follows the GIPS convention and does not annualize windows under 1 year: for short tests, the window’s raw return is the numerator. Two more scope notes: annualization follows the equity mode (CAGR when compounding, arithmetic scaling for the default fixed-notional mode), and the ratio is computed on your full backtest sample — not the 36-month rolling window of the original definition. Related guard: if the strategy’s trading span covers fewer than 5 days, Sharpe and Sortino report 0.0 rather than annualizing noise.
The rest of the card, in one pass
Every remaining metric on the results card, with its own tooltip definition and the reading to watch:
| Term | What it measures | Watch out |
|---|---|---|
| Avg Win / Avg Loss | Average percentage gain on winners / loss on losers | Means, not medians — one outlier trade can drag either |
| R:R Ratio | Average win divided by average loss | High R:R with low win rate can still lose — pair with Break-even WR |
| Max Consec. Losses | Longest streak of consecutive losing trades | A historical minimum, not a ceiling — live streaks can run longer |
| Break-even WR | Minimum win rate needed to break even at your avg win/loss sizes | The real bar for the Win Rate above it |
| Margin | How far the actual win rate sits above the break-even win rate | Thin margins vanish inside data noise on small samples |
| Expectancy | Expected profit per trade: WR × AvgWin + (1−WR) × AvgLoss | Positive expectancy on 20 trades is a guess, not an edge |
| Recovery Factor | Total return / max drawdown (> 3.0 excellent, > 1.5 acceptable per the card tooltip) | Not annualized — long windows inflate it |
| Payoff Ratio | Average win / average loss (> 1.0 = wins bigger than losses) | Same caveat as R:R |
| VaR 95% | Daily maximum expected loss at 95% confidence | Says nothing about the worst 5% of days |
| CVaR 95% | Expected Shortfall — the average loss beyond VaR | The number that describes those worst days |
| Jensen’s α | Risk-adjusted excess return vs BTC | Benchmark-relative: positive α in a crash can still mean losing money |
| vs BTC Hold | The strategy’s return against just holding BTC | The bar every crypto strategy must actually clear |
Validation terms
Out-of-Sample (OOS)
Testing on a slice of data that was hidden while the strategy was built — the basic check that it works beyond the data it was tuned on.
Where you see it: the Validation tab (“Out-of-Sample Validation”), with the split shown as “OOS Split: N%”, the timeline labeled “Training (IS)” and “Validation (OOS)”, and side-by-side IS/OOS tables. On a Verified strategy’s dossier it is Gate 2: the last portion of data is hidden during any tuning, and the bar is OOS PF ≥ 1.05, in-sample PF ≥ 1.0, n ≥ 30, low overfit signal.
The trap: OOS is only “unseen” relative to disclosed tuning. If you re-run validation, peek at the OOS result, adjust parameters, and repeat, the OOS period quietly becomes part of your training data — and the label keeps saying “out-of-sample”.
OOS Retention
The ratio of average per-trade return in the OOS period to average per-trade return in the IS period — 100% means no degradation on unseen data.
Where you see it: the Validation tab, labeled “OOS Retention”, with a percentage and a bar.
The trap: an edge case reads as good news. When both periods are negative — or the IS period made nothing — the ratio reports 1.0, because degradation can’t be measured. A losing strategy can therefore show 100% retention. Always read the raw IS and OOS tables next to the ratio.
Overfit Risk
A three-level verdict derived from OOS Retention: LOW at retention ≥ 0.7, MEDIUM at ≥ 0.4, HIGH below that.
Where you see it: the Validation tab, shown as “Low — Safe”, “Medium — Caution”, or “High — Danger”.
The trap: it grades return degradation only. A strategy can score LOW on a handful of OOS trades — which is why the Verified bar separately demands n ≥ 30 in the OOS period. LOW with a thin OOS sample is a shrug, not a pass.
Walk-Forward
Sequential-window validation: the backtest is cut into consecutive time windows and the strategy must hold up in each one, not just on average.
Where you see it: two places with different jobs. The results card shows a “Walk-Forward” consistency score — ≥ 0.85 reads “Stable”, ≥ 0.70 “Moderate”, below that “Overfit risk”. A Verified strategy’s dossier shows Gate 3: 3 sequential windows, each required to hold PF ≥ 1.0 with n ≥ 30, published as a per-window table.
The trap: the consistency score is a summary, and summaries hide windows. One strong window can carry a weak one inside an acceptable-looking average — the dossier publishes each window’s PF and trade count precisely so you can read the table instead of the badge.
Monte Carlo
Robustness check by resampling: the engine redraws your trade sequence with replacement 1,000 times (fixed seed 42 — reruns reproduce) and reports the distribution of outcomes instead of the single realized one.
Where you see it: the Validation tab (“Monte Carlo Simulation”): mean and median return, a 5th–95th percentile band, return bands labeled Pessimistic (5th) / Median (50th) / Optimistic (95th), “Worst MDD (95th)” — the 95th percentile of simulated drawdowns — and Win Probability, the share of resampled runs that finished positive.
The trap: resampling reshuffles your own trades. It can stress the ordering of what happened, but it cannot produce outcomes your sample never contained — a regime the backtest never saw is invisible to it. And below 5 trades the engine returns zeros rather than dressing noise in percentiles.
DSR Confidence
The probability that the optimizer grid winner’s Sharpe survives multiple-testing correction — that it beats the best result luck alone would produce across that many tries.
Where you see it: the “Overfitting Detection” block after running the SL/TP optimizer, labeled “DSR Confidence”.
The trap: it only counts disclosed tries — the grid cells actually run, not the ideas you abandoned before the grid. Full treatment, including how to read the sensitivity readout: the Sharpe deep dive.
Small sample warning
An amber banner the backend attaches when a result has more than zero but fewer than 30 trades: the result “sits within the data-noise band” and is exploratory only.
Where you see it: above the results, titled “Small sample — not statistically reliable”; on /strategies/ranking/, separately, entries under 100 trades carry a “Low sample” badge.
The trap: the inverse readings. Zero trades does not produce this warning — it produces a stronger one: “no trades” means the strategy produced zero signals, so there is no performance to judge — that is not a 0%, low-risk result. And passing the 30-trade banner does not clear the 100-trade ranking bar.
Cost and execution terms
Trading Fee
The exchange fee charged per fill: 0.05% taker per side, 0.10% round-trip — the OKX USDT-SWAP default for VIP 0.
Where you see it: the fee breakdown on the results card (“Trading Fee”, “Funding Fee”, “Total Cost”) and the line “Fees consume X% of returns”. All headline metrics are already net of fees.
The trap: the “Fees consume” line is the one to read. A strategy that trades often with a thin per-trade edge can be profitable gross and dead net — and because our results are already net, a mediocre PF here often is the fee drag, not the signal failing.
Funding Fee
The periodic payment perpetual futures exchange between longs and shorts — charged in our engine at real settlement events using actual historical rates, not a flat approximation.
Where you see it: the “Funding Fee” line in the results card’s fee breakdown.
The trap: the sign flips with the market — the folklore that “shorts always collect funding” is measurably wrong, and shorts can pay. Symbols without rate history run funding-free and are counted as not-modeled rather than filled with an invented constant. Why the common approximations distort results, with measured numbers: Why Most Crypto Backtests Get Funding Fees Wrong.
Slippage
The gap between the price a simulation assumes and the price a real order would fill at — modeled per coin by liquidity tier — 0.05% for Top-50, 0.10% for Top-200, 0.20% for everything else, charged on entry and exit.
Where you see it: on /methodology/ under “Slippage”, and in the simulator’s “How it works” notes.
The trap: the tier is assigned by a coin’s market-cap rank today, then applied across the whole backtest window. A coin that sits in the Top-50 now but was tiny in 2023 gets the cheap 0.05% tier on its 2023 trades too — understating what those fills would really have cost, which flatters the result. The methodology page lists this point-in-time bias under “What We Don’t Model”. Tiers also do not vary by hour of day, so a large order into a thin book can still exceed even the 0.20% tier.
Leverage
The position multiplier: headline presets use $60 per trade at 5x, i.e. $300 notional.
Where you see it: the “Leverage” selector in trading settings; the settings warn that leverage above 10x significantly increases liquidation risk.
The trap: the results total sums per-trade outcomes, each on fresh fixed margin. At high leverage that is not the path one account would survive — a real account hitting the same losing streak can be gone before the winning trades in the total ever happen.
Liquidation
The forced close of a leveraged position when remaining margin can no longer cover the exchange’s maintenance requirement.
Where you see it: as an exit tag in the trade table’s Reason column, and behind the leverage warning in settings.
The trap: the mental-math formula is optimistic. Estimating liquidation as “entry ± 1/leverage” ignores maintenance margin and the fee buffer — against OKX tier-1 maintenance margins (measured from the public position-tiers API: BTC 0.4%, DOGE 1.0%), the maintenance-margin model triggers 1.8–6.2% earlier at 5x (BTC/alt range), 8.6% earlier at 20x, and 44.7% earlier at 100x. Our engine models the maintenance-margin version, with a conservative 1% fallback for symbols without tier data — so simulated liquidations fire earlier than naive math expects, which is the direction that keeps results honest.
Stop Loss / Take Profit
The per-trade exit brackets: Stop Loss caps the loss on a trade, Take Profit locks in the target.
Where you see it: the “Stop Loss” and “Take Profit” inputs in the simulator panels, and as sl / tp tags in the Reason column.
The trap: intra-bar ambiguity is resolved against you, on purpose. TP and SL are checked against each bar’s high and low — and if both are touched within the same bar, the engine books the stop loss, never the optimistic fill. Signal exits are evaluated only at bar close, after intra-bar TP/SL. If our numbers look lower than another backtester’s, this rule is often why.
Trailing Stop
An exit method where the stop level follows price as the trade moves into profit, locking in gains instead of targeting a fixed level.
Where you see it: the “Exit method” toggle in the strategy builder, labeled “Trailing stop”.
The trap: in trailing mode the input fields change meaning — SL becomes the initial stop and the TP field becomes the trail distance, not a profit target. The same two numbers drive a completely different exit.
Reason (exit tags)
The engine tags every simulated trade with how it closed: tp, sl, liquidation, timeout, signal, or trailing_stop.
Where you see it: the “Reason” column of the trade table.
The trap: read the distribution, not just the PnL. A strategy whose profits arrive mostly via timeout (the max-holding-period exit) is really a time-based exit strategy wearing an indicator’s name — and one full of liquidation tags is telling you the leverage, not the signal, is the story.
Status badges and verification
VERIFIED
The strategy passed the full promotion battery on the live engine: full-backtest PF ≥ 1.05, plus out-of-sample, plus 3-window walk-forward.
Where you see it: the status chip on strategy pages and the “Verified Strategy” badge with “OOS-validated” next to it.
The trap: the badge’s own fine print is the definition — it is a reproducible backtest result, not a live-deploy verdict. Verified means the battery passed on historical data with our fee and fill assumptions; it is not a promise about next month.
TESTING
The strategy is still inside the validation pipeline — results exist but the battery hasn’t been passed.
Where you see it: the “TESTING” status chip on strategy pages.
The trap: testing numbers move. A strategy card in TESTING can look better than a VERIFIED one precisely because it hasn’t yet met the gates that would have trimmed it.
RETIRED
The strategy was tested, missed the profitability bar, and was killed — and the result is published anyway.
Where you see it: the “RETIRED” status chip, with the kill date on the strategy page.
The trap: survivorship in reverse. Killed strategies are data, not embarrassment — if you only read VERIFIED pages you are sampling the survivors, which is exactly the bias the published graveyard exists to correct.
Live Track
A different proof than the backtest bar: the strategy is running on our own funds right now, and the page carries that live record.
Where you see it: the “Live Track” badge on strategy pages, with the note “our own funds, running now — a live record, not the preset backtest bar”.
The trap: don’t merge the two proofs. Live Track and VERIFIED answer different questions (does it hold up live vs. did it reproduce historically) — a strategy can hold one without the other.
Verification Dossier
The published evidence behind a Verified badge: every gate the exact configuration passed, with the measured numbers.
Where you see it: the “Verification Dossier — why this badge exists” section on Verified strategy pages: measured config (SL/TP, top-N, timeframe, leverage, fee), Gate 1 (full 2-year backtest, PF ≥ 1.05), Gate 2 (OOS hold-out), Gate 3 (walk-forward table), each with its measurement date.
The trap: the dossier is falsifiable on purpose — the same page tells you how to reproduce it. Load the preset in the simulator: same engine, same fees, same data. If you can’t reproduce a number, that’s a bug report we want, not a rounding story.
Run the screen you just learned to read
Every term above is on the result screen right now — run a preset on the PRUVIQ simulator, open the Validation tab, and read the card with the traps in mind. It’s free and requires no signup.