Why backtesting perpetual futures is different
Most backtesting frameworks were built for equities or spot crypto. Perpetual futures introduce three complications that most retail backtests get wrong:
- 1.Exit logic— in a standard backtest, a "win" is often recorded if price ever touched the target, even if the stop was hit first on the same candle. In perpetual futures with tight stops and volatile candles, this inflates win rate dramatically.
- 2.Look-ahead bias— using the high and low of a candle to determine which triggered first (stop or target) assumes you know the intracandle path, which you do not in real trading. The honest approach: if the candle's range covers both stop and target, record it as a loss (stop-before-TP = loss, always).
- 3.Funding rate costs — holding a leveraged position costs funding every 8 hours. Most backtests ignore this. It matters, especially in sustained trends where funding rates run high.
Why funding costs change the math → How Perpetual Futures Funding Rates Work
The look-ahead bias we found
During development of the Vault Protocol backtest, we discovered that standard exit logic was inflating our win rate from 63% to 81%.
The bug: the initial implementation checked whether the first target was ever touched within a candle's range. If a candle's low hit the stop and its high hit the target, it was counted as a win. But in real trading at that moment, the stop would have triggered first — the position would have closed at a loss.
The fix: strict stop-before-TP logic. If the candle range covers both the stop and the target, it is recorded as a loss. Always. No exceptions.
The result: win rate dropped from 81% to 63%. We publish both numbers and explain exactly why, because the 63% is the number that reflects what would actually happen in your account.
This is why most platforms show 80%+ win rates. It is not because their system is better — it is because they are measuring differently.
The data sources
- ·Crypto — CryptoDataDownload Binance hourly CSVs aggregated to 4H candles.
- ·Equities — Databento cached candles for the backtest, Yahoo Finance for the live scanner.
- ·Window — 24 months, June 2024 to June 2026.
- ·Universe — 11 assets: BTC, ETH, SOL, BNB, AVAX, XRP, DOGE, SHIB, AMZN, TSLA, AMD.
Data quality checks run before any signal detection:
- ·Timestamp parsing verification — found and fixed a nanosecond/microsecond mixed format in the crypto CSVs.
- ·Stale candle detection — drop candles older than 8 hours for crypto, with a weekend-aware threshold for equities.
- ·Minimum candle count gate — 30 candles required before signal detection runs.
The three production filters
After the base backtest, three filters were validated walk-forward and added to the production system:
- ·Filter 1 — Weekend suppression. Signals detected on Saturday or Sunday UTC are suppressed. Walk-forward validation: +3.28pp in-sample, +5.79pp out-of-sample. ROBUST.
- ·Filter 2 — BTC/BNB short-setup suppression. One specific setup type on BTC and BNB underperforms and is suppressed. Walk-forward validation: +2.22pp in-sample, +3.39pp out-of-sample. ROBUST.
- ·Filter 3 — Extreme fear short suppression.Crypto short signals fired when the Fear & Greed Index was at or below 15 had an 18.2% historical win rate. Suppressed entirely.
What the filtered track record looks like through drawdowns → How to Survive a Losing Streak
Monte Carlo validation
A single backtest sequence proves very little — the specific order of wins and losses could be lucky. Monte Carlo simulation with bootstrap resampling generates 10,000 alternative sequences from the same trade population and shows the distribution of outcomes.
Results at 5x leverage and 10% position size:
- ·Median path — +1,031% ($10K → $113,145)
- ·10th percentile (conservative) — +612%
- ·90th percentile (optimistic) — +1,668%
- ·Probability of profit — 100% across all 10,000 paths
Bootstrap resampling (not simple shuffling) preserves the true distribution of trade outcomes. Simple shuffling treats all sequences as equally likely; bootstrap resampling draws with replacement from the actual trade population, producing a more realistic path distribution.
What we don't claim
This is a backtest. It shows what would have happened if the system had been running over the past 24 months with these exact rules. It does not guarantee future performance.
The market changes. The edge may be smaller in the next 24 months, or larger. The honest answer is we don't know — which is why we publish the full methodology, the exact numbers, the bugs we found and fixed, and the live track record as it develops.
What this category actually is → What Is a Perpetual Futures Intelligence Platform?
New to perps? Start here → What Are Perpetual Futures?
See the full backtest results → chartsmeancash.com/performance