You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
That tester/live gap is usually a mix of execution and data assumptions rather than a broken idea. I would compare three things first: spread at entry, slippage on exits, and whether the tick history matches the broker session you trade on. If the live account only breaks when spread widens or fills slip, the edge may be too sensitive to real costs. Have you logged the first 20 to 50 live fills against the tester fills to see where the divergence starts?
definately recomend monte carlo testing its so easy to over fit backfit strategies
What exactly is a fill?
A successful execution of a trade that returns filled status (result) from the trade server.
Getting a filled status is just the technical baseline. The real challenge is handling what happens immediately after that fill when the spread widens or slippage hits during high volatility. If your logic only checks for a filled result without accounting for latency and execution variance your backtest will never match your live account.
The strategy that I am currently developing performs very well in the strategy tester, but when I do forward testing it fails.
How can I shorteh the gap between strategy tester data and forward testing?
The key is to accept that most strategies will fail, and the goal is to find the few that are genuinely robust. Keep testing, keep filtering, and you will eventually find the ones that work in real market conditions
- Stop modifications that ignore SYMBOL_TRADE_STOPS_LEVEL and SYMBOL_TRADE_FREEZE_LEVEL, or that resend the same stop every tick. Live, these are rejected as invalid stops, so your trailing stop simply does not move.
- Modifying a stop while the session is closed (metals and indices have a daily break). Rejected live, ignored in the tester.
- Sending an order without checking OrderCalcMargin against free margin - live you get a rejection loop; in the tester it just fills.