Backtest Limits and Troubleshooting
Backtest is designed as a streamlined, high-speed simulation environment. Understanding its technical simplifications ensures you interpret your testing results accurately.
[!CAUTION] Regulatory Disclaimer on Hypothetical & Simulated Performance: Simulated or hypothetical performance results have inherent limitations. Unlike an actual live trading performance record, simulated trades do not represent actual financial transactions and are executed in an idealized zero-spread, zero-commission, zero-slippage environment. Because simulated trades have not actually been routed to live market liquidity providers, the results may under- or over-compensate for the impact of real-world market liquidity, execution latency, and spread widening during volatile news releases. No representation or guarantee is made that any trading strategy will achieve profits or losses similar to those demonstrated in a simulation run. Past simulated performance is never a guarantee of future live performance.
What the simulation simplifies
- Spread : In standard online mode, Bid and Ask prices are equal (Spread = 0), executing trades directly at candle price without spread widening.
- Commissions & Financing Fees : Always zero. Overnight swap charges are not accrued.
- Slippage : Zero slippage. Orders execute at the exact replayed price specified by the fill rules.
- Liquidity & Market Depth : Not modelled. Pending orders fill purely on price touches regardless of order size.
- Tick-level Execution : Prices advance along a deterministic 3-point path from 1-minute historical candles rather than raw tick streams.
- Margin Calls & Stop-Outs : Negative equity will not trigger automated liquidation, allowing you to review the complete price path without premature termination.
Backtest is ideal for testing market hypotheses, price action triggers, and risk management discipline. Because spreads, commissions, and swap fees are zero, a strategy that only breaks even in simulation will likely require optimization to succeed in live trading.
Changing timeframe, symbol, or timezone during a run
- Changing timeframe: The chart aggregates 1-minute bars into the new timeframe around your current simulation point. The run does not restart, and all open positions and orders are preserved.
- Changing symbol: Switches historical datafeed to the newly selected symbol. The active backtest symbol is pinned to the top of the symbol list.
- Changing timezone: Updates time formatting across the toolbar, order tables, and charts without altering UTC data.
Tip: Pause playback before changing timeframes or symbols to allow the chart to rebuild cleanly.
Frequently Asked Questions & Troubleshooting
Why are Step and End greyed out?
The simulation has not started yet. Press Play (or Shift + Space) once to begin playback; this activates the simulation engine and unlocks Step and End.
Why won't the top Backtest button click?
Replay is currently playing. Press Pause on the Replay toolbar first before clicking the top Backtest button to exit.
Why is the Deposit amount field locked?
Once replay has started, the deposit amount is fixed for that session to keep performance statistics consistent. To trade with a different deposit, select a new start point to begin a fresh run. Note: Leverage remains editable at any time during the run.
"No candle there" appears when using Select bar.
You clicked on empty chart space where no historical candle exists. Click directly on the body of a candle on the chart.
Why does replay progress slowly on H4, D1, or W1?
Higher timeframe candles are built from underlying 1-minute bars. A D1 candle requires 1,440 1-minute iterations to complete. The toolbar clock advances continuously to confirm simulation progress. Increase Speed (e.g. to 5x or 10x) or use Step (Shift + →) to advance faster.
What happens if I decline the "Restore Backtest state?" prompt?
Clicking Cancel discards the previous saved session from browser storage and starts a clean, fresh Backtest session.
Where are saved sessions stored?
Sessions are saved in your local browser localStorage. They do not transfer between different browsers or devices, and clearing your browser data removes the saved state.