Why Live And Backtest Results Differ
A backtest checks whether saved rules were viable on historical market data. Live execution runs the same strategy logic against a moving exchange, current balances, network timing, order acknowledgements, and real fills. The two views should be compared, but they should not be expected to match candle for candle.
What this is
This article explains why a completed backtest can differ from demo, testnet, or live results in SteadyEdge.
When to use it
Use this article if:
- a bot passed a backtest but behaves differently after launch
- Analytics and the Backtest report show different numbers
- you need to decide whether a difference is normal or a warning sign
- a report contains warnings about TradingView signals, funding, open interest, candles, or all-coins sampling
Before you start
Important current product behavior:
- backtests use mainnet historical market data even when your trading account is demo or testnet
- backtests currently use native_intrabar execution; software_polling backtest mode is not implemented
- TradingView webhook signals are not historically replayed in backtests and can be ignored with a warning
- funding-rate and open-interest filters depend on available historical snapshots
- Analytics shows recorded bot positions, while Backtest shows a historical simulation result
Step by step
Step 1: Compare the data source first
Backtests replay stored historical candles and market snapshots. Live execution reads current exchange state and submits real orders through the execution runtime.
This means demo, testnet, and live can differ because:
- exchange liquidity changes after the historical period
- testnet or demo books may not behave like mainnet
- the current symbol rules, min notional, precision, or leverage limits can differ from old market conditions
- funding and open-interest history can be incomplete for the selected period
Step 2: Check execution assumptions
Backtest fills are modeled from candles. Live fills depend on order type, exchange acknowledgement, trigger timing, slippage, and whether a marketable order actually reaches the exchange in time.
The gap is most visible around:
- fast candles and wick-based entries or exits
- tight stop-loss or trailing-stop logic
- funding-window entries
- all-coins scans where many symbols compete for attention
- orders that depend on external exchange state
Step 3: Read warnings before judging the result
Warning banners are not decoration. They explain where the replay removed or degraded part of the strategy context.
For example:
- signal_tradingview_ignored means webhook signal rules were removed from historical replay
- funding warnings mean funding rules or schedule context could not be fully reconstructed
- open-interest warnings mean the OI filter may not have been applied for every needed timeframe
- all-coins sampling means the run used a subset to control runtime and data volume
Step 4: Keep Analytics and Backtest separate
Backtest reports live in Backtest . Analytics lives in Analytics and reads recorded positions and fills.
Use Backtest to evaluate historical viability. Use Analytics to audit what actually happened after launch.
Step 5: Treat differences as investigation signals
A small difference can be normal. A repeated pattern needs investigation.
Look for:
- live losses clustering at the same time of day
- many live exits happening faster than the historical average
- fees or funding dominating total PnL
- live entries that occur without the expected filter context
- a strategy that relied on a warning-heavy backtest
What you should see
After comparing both views, you should be able to state:
- which historical period was tested
- which live or recorded period you are comparing against
- whether warnings affected the report
- whether the difference comes from data, execution, fees, timing, or strategy behavior
Common mistakes
- treating a backtest as a guarantee of live profit
- ignoring warning banners
- comparing Analytics and Backtest over different date ranges
- using testnet behavior as proof of mainnet liquidity
- launching after one strong backtest without checking drawdown, distribution, and trade timing
Related articles
- How To Read Backtest Report
- Trade Journal And Export
- Equity Curve
- Run Backtest