Skip to main content

why your backtest, optimizer, and live results don't match

the real reasons backtest, optimizer, and live numbers differ — data sources, lookback, session alignment, and costs — plus how to reproduce them.

Written by Brad

three places your numbers can diverge

if a strategy looks great in a backtest but feels different live — or the edgeful optimizer and TradingView's strategy report disagree, or your indicator levels don't line up with the report page — you're not doing anything wrong. these are different tools measuring the same idea in slightly different ways.

there are three comparisons that trip people up:

  • backtest (TradingView's strategy report) vs your live broker fills

  • the edgeful algo optimizer vs TradingView's strategy report

  • your TradingView indicator levels vs the edgeful report page

let's go through each, then the checklist to reproduce a number you're trying to match.

why backtest doesn't equal live

a backtest shows you what the chart would have done at clean prices. your broker shows you what the market actually did — with a real contract, real fills, and real slippage. a few reasons they drift apart:

contract and data source

TradingView charts a continuous contract by default (like NQ1!) — a synthetic series that splices expiring contracts together. your broker trades the actual front-month (like NQM2026). those are slightly different prices, and the gap widens around rollover. backtest on the continuous contract, trade the front-month live — and expect small differences.

bar-close timing vs the fill

TradingView strategies fire on bar close — the moment a candle completes. your broker fills on the next tick after it receives the webhook, which we see at around 300ms on average. price can move in that window, so your live entry is often a tick or two off the backtested entry. that's not a bug — it's the time it takes to send and fill an order.

stop-loss slippage

in the strategy report, a stop fills at the exact stop price — always. live, when the stop price trades, edgeful sends a market order to close, and a market order fills at the best available price (a few ticks worse on a fast move). on winners that slippage averages out; on losers it always hurts — so live exits usually look slightly worse than the backtest.

the strategy report isn't a simulator

it's a replay at clean prices. it doesn't model the send-to-fill delay, market orders walking the book, spreads widening around news, or broker-side rejections. treat a headline like "73% win rate, $4,200 net" as the chart's version of the trade — not a forecast. the gap to live is usually a few percent, not a rewrite.

why the optimizer doesn't equal TradingView

the edgeful algo optimizer and TradingView's strategy report run the same logic but report it differently. three things explain most of the gap:

  1. commissions — the optimizer reports gross P&L. it doesn't subtract commissions. at $5 per round-trip across 200 trades, that's $1,000 the optimizer doesn't show. subtract it yourself before comparing

  2. contract rollovers — TradingView's continuous contract splices rollovers one way; the optimizer handles them on its own schedule. around roll dates, the two can show different fills

  3. decimal precision — a few 4-decimal instruments get rounded to 2 decimals in the optimizer, which nudges fills slightly

to get them close: match the ticker symbol, date range, chart timeframe, session times, weekdays-to-use, and every algo setting — then account for commissions manually. if net P&L is within ~15-20% after commissions, that's a normal match.

why your indicator levels don't match the report

this one is almost always session and timezone, not a data problem. the report page and your TradingView indicator have to be anchored to the same session, or they're measuring different things.

three things to line up:

  • session — the report's session dropdown (NY, London, Asian) has to match the session your indicator is set to

  • timezone — the indicator's timezone has to match the session's anchor. NY is 9:30 AM - 4:00 PM America/New_York; London is 8:00 AM - 4:00 PM Europe/London. a mismatched timezone is the single most common reason levels look off

  • variant — for futures, forex, and crypto, use the "by session" variants (gap fill by session, previous day's range by session, pivot points by session). the standard versions use the calendar-day close, which is for stocks and ETFs

if all three match and the data still looks off, it's usually just a refresh — see the TradingView indicators access article.

why the same backtest changes over time

run the same backtest in January, then again in March, and the January result will have moved. that's expected — re-running pulls in the new February and March data, so the tested period is longer than it was. the lookback window is the result, so two backtests over different date ranges will never be identical.

this is also why a single short backtest isn't reliable. a setup that shows up over the last month might vanish over 6 months — look for numbers that hold across 3-month, 6-month, and 1-year lookbacks, and aim for at least 30-50 trades before you trust a result.

how to reproduce a number you're chasing

whenever two tools disagree, line these up one at a time until they match:

  1. symbol / contract — same continuous-vs-front-month choice on both sides

  2. date range — exact same start and end dates

  3. chart timeframe — same candle (1m, 5m, 15m)

  4. session and timezone — same window and same anchor (e.g. NY, 09:30 - 16:00 ET)

  5. weekdays and every algo setting — same filters, stops, targets, and direction

  6. costs — subtract commissions and expect a little slippage on stops

work through them in order and the numbers will converge — usually to within a few percent.

when to reach out

most gaps are explained by the points above. open an in-app chat if you see something outside that:

  • a broker trade TradingView never alerted on (or an alert that never reached the broker)

  • a fill more than a few seconds after the alert fired

  • slippage way outside normal — double-digit ticks on a quiet bar

  • optimizer vs TradingView net P&L still off by far more than ~15-20% after commissions, or the trade counts differ materially

include the trade date, ticker and contract month, a TradingView screenshot, and the matching broker statement line so the team can trace it.

related articles

Did this answer your question?