Can Scalping Strategies Be Backtested Honestly?

10 min readQuantParadox research

Every backtesting assumption that a swing trader can wave away is decisive for a scalper. The same tester, the same code, and a completely different relationship with the truth.

The short answer

Scalping strategies can be backtested honestly only with tick-level data, per-session spread modelling and explicit latency assumptions, because at small targets the transaction cost is a large fraction of the move being captured and dominates the result.

Why is scalping harder to test?

Because transaction cost is roughly fixed per trade while the target shrinks, so the fraction of each move consumed by costs rises as the horizon falls — and at scalping distances it becomes the dominant term.

The arithmetic is stark. A swing trade targeting 200 pips with a 1-pip spread gives away 0.5% of the move. A scalp targeting 5 pips with the same spread gives away 20%. The strategy has to be four times better per unit of risk simply to arrive at the same place.

That is before slippage, which for a market order is a second cost of the same order of magnitude. A scalping strategy modelled without slippage is not being tested optimistically; it is being tested in a market that does not exist.

It also means small errors in the cost model change the verdict rather than the decimal. A backtest assuming 0.6 pips when the real average was 1.1 has misstated a fifth of the edge on every trade.

What data does a scalping backtest actually need?

Tick data with real bid and ask, not minute bars with a fixed spread assumption — because a minute bar cannot say where inside the minute the price went, and a fixed spread cannot represent a spread that moves.

The intrabar problem is the more serious of the two. A one-minute bar with a 6-pip range contains an unknown path, and a scalp with a 4-pip stop and a 5-pip target sits entirely inside it. Which was hit first is unknowable from the bar, and the tester's default assumption decides the trade.

Real bid/ask ticks solve both problems at once: they give the path, and they give the actual spread at the moment of each fill rather than an average of a period during which it varied by a factor of five.

The practical requirement that follows is unglamorous — obtaining and validating multi-year tick data for the instruments traded, then checking it for gaps, because a tick history with silent holes produces a backtest that skipped the fastest minutes.

How should spread be modelled?

Per session and per condition, because the spread that matters is the one present when the strategy trades, and a single average is the wrong number wherever the strategy is not uniformly distributed across the day.

Spot forex spreads follow a strong daily shape: tightest during the London–New York overlap, widest at the daily rollover and around scheduled releases. A strategy trading only the overlap is penalised by an all-day average; one trading the Asian session is flattered by it.

The rollover hour deserves specific attention. Spreads there routinely widen by a large multiple for a few minutes, and a strategy with any trades in that window and a flat spread assumption has been credited with fills at a price nobody was quoting.

The honest approach is to sample your own broker's spread by hour over several weeks and feed that profile to the tester. It takes an afternoon and it replaces the single most load-bearing guess in the whole exercise.

What about latency?

Latency is a cost measured in milliseconds that becomes a cost measured in pips, and for a strategy whose target is a handful of pips it belongs in the model rather than in a footnote.

The chain is longer than most people account for: the bar closes, the platform computes, the order is sent, the broker receives, the price is checked, the fill returns. Tens to hundreds of milliseconds, during which the price the signal referenced may no longer be available.

The effect is not symmetric, which is what makes it a cost rather than noise. Prices move away from you more reliably than toward you at the moment a signal fires, because the signal fired in response to movement that is still in progress.

A defensible model adds a fixed adverse offset to every fill, sized from your own measured round-trip time and the instrument's typical movement over that interval. It is an estimate, and an estimate stated explicitly is worth far more than a zero left implicit.

Is scalping worth backtesting at all?

It is worth backtesting precisely because the cost sensitivity is so high — a scalping strategy is unusually easy to REJECT quickly, which is the outcome a backtest is best at producing.

Run the same rules at three cost levels: your broker's advertised spread, your measured average spread, and a pessimistic case. If the strategy only survives the first, the answer has arrived cheaply, and it is a real answer rather than a discouraging one.

The frequency also helps in one respect. Scalping strategies generate trades quickly, so a statistically meaningful sample accumulates in weeks rather than years — the sample-size problem that plagues low-frequency systems is the one thing that is easier here.

The recommendation that follows is not to avoid the style. It is to treat the cost model as the primary object of study rather than as a setting, because for this horizon the cost model is most of the result.

Questions people actually ask

What spread should I assume for a scalping backtest?

Your own broker's, measured by hour of day over several weeks, rather than the advertised average. Advertised figures are typically the tightest observed under good conditions, and a scalping result is sensitive enough to the difference that using the advertised number can turn a losing system into a winning one on paper.

Can I scalp with a standard retail account?

Execution quality, spread structure and any restriction on minimum holding time all vary considerably between account types and brokers, and they matter far more at this horizon than at any other. The relevant checks are the measured spread during your trading window, the observed slippage on market orders, and whether the broker imposes any rule on rapid entries — all of which are measurable before committing.

Is one-minute data enough for a scalping backtest?

Not when the stop and the target both fall inside a single minute's range, which for scalping distances is most of the time. The bar cannot say which was reached first, so the tester's default assumption decides a large share of the trades. Tick data resolves it; without tick data, the honest fallback is to book the loss whenever the order is ambiguous and treat the result as a lower bound.

The only backtest that settles it is yours.

Build a strategy from a sentence, paste your own Python, or import your live trade history and have it graded. Five full backtests free, no card, and we'll tell you plainly when the result is indistinguishable from luck.

We publish research and tooling, not trading advice, and we make no claim about future returns. Everything above describes how to test an idea — not a reason to trade one.