Most backtests are built to make a strategy look good, not to find out whether it works. You already believe in the idea, so you scroll through the chart, spot the winners, quietly forgive the losers, and finish the afternoon convinced you have found something. That is not testing. That is decorating a decision you already made. A proper backtest does the opposite job. It is there to talk you out of ideas that only survive because you are being generous with them. If your process cannot kill a strategy, it cannot validate one either. So before you run anything, accept that the useful outcome might be "this does not work," and set the whole thing up so that answer can actually surface. What backtesting is good for (and what it is not) Backtesting is good for a small number of honest questions. Does this setup appear often enough to matter? When it appears, does price tend to do the thing you claim? Roughly what win rate and average result should you expect, and how ugly do the losing runs get? Those are answerable on historical data, and answering them is worth real effort. Backtesting is bad at promising you a future return. Markets change regime, spreads widen around news, and the exact edge you measured on 2019 to 2022 EURUSD may not survive into a different rate environment. So treat the output as a distribution of outcomes and a sanity check, not a forecast. The number you should care about most is not the total profit. It is whether the pattern held up across different years and pairs, or whether it lived and died inside one lucky stretch. If you want the fuller comparison of where each method earns its keep, forward testing versus backtesting covers why you eventually need both. Write the rules down before you touch a chart The single biggest reason backtests lie is that the rules are still fuzzy while you test. If "strong trend" and "good entry" live only in your head, you will unconsciously define them differently on winners and losers. Hindsight makes everyone a genius. So write the strategy as if you were handing it to a stranger who has to follow it with no judgement of their own. Be specific about: Entry trigger. The exact condition. Not "break of structure" but which level, which candle close, which confirmation. Stop placement. A fixed rule (below the swing, X pips, one ATR), decided in advance, not moved once the trade is open. Exit. Fixed target, trailing rule, or time-based. Ambiguity here quietly manufactures your win rate. Filters. Sessions, pairs, news blackouts, direction bias. Every filter you add is also a decision you will need to justify later. The test of a good rule set is simple. Two people running it over the same chart should log almost the same trades. If they would not, you are not testing a strategy, you are testing your mood. Bar by bar, not eyes on the whole chart Here is the mechanical part people skip. You cannot backtest honestly while looking at the completed chart, because you already know what happened next. The candle to the right of your entry is a spoiler. The fix is to replay the chart one candle at a time, making each decision with only the information you would have had at that moment. Hide the future, decide, then reveal the next candle. It feels slow and slightly annoying, which is the point. That friction is the thing standing between you and a fantasy equity curve. You do not need to code this. You can drag a screen cover across a chart, or use a bar replay tool. TradeSave+ has a bar replay backtester built for exactly this: you click through historical candles, place entries, stops and targets on the chart, and it logs each trade into a journal automatically so the stats build themselves. If you would rather see the no-code route in full, how to backtest a trading strategy without code walks through it. How many trades before you believe it A strategy that went ten for twelve tells you almost nothing. Small samples are mostly noise wearing a nice suit. You need enough trades that a handful of lucky wins cannot carry the whole result, and enough losing sequences to see how the strategy behaves when it is wrong repeatedly (because it will be). As a working floor, aim for at least a few hundred trades before you trust the numbers, spread across different market conditions rather than clustered in one trending year. If a setup is rare, that is not a reason to lower the bar. It means you gather across more pairs and more history, or you accept that you simply cannot know yet. The sample size matters far more than the headline profit at this stage. The trap that ruins most backtests Overfitting is what happens when you keep tweaking the rules until the historical curve looks beautiful. Add a session filter, exclude Mondays, skip trades below a certain size, and suddenly the drawdown vanishes. It feels like progress. It is usually the opposite. Every filter you bolt on to fix a past loss is a rule tuned to history that has no reason to help in the future. The more knobs you turn, the more you are memorising the data instead of finding a pattern within it. A strategy with three clear rules that works across many pairs is far more trustworthy than one with nine conditions that only shines on the exact history you optimised against. The defence is discipline. Decide the rules first, test once, and treat any change as a brand new hypothesis that needs its own fresh data. If you want to see exactly how curve-fitting sneaks in, overfitting in backtesting lays out the warning signs. Account for the costs you would actually pay A backtest that ignores costs is fiction. Real trades pay the spread, sometimes commission, and occasionally slippage when price gaps through your level. On a scalping strategy those costs can quietly eat the entire edge, so a curve that looks great gross can be flat or negative net. Bake it in from the start. Assume you got filled at a slightly worse price than the perfect one on the chart. Widen the spread around high-impact news rather than pretending you traded the mid. If the strategy only works when you assume flawless execution, it does not work. Read the whole distribution, not just the total Total profit is the least interesting output. What actually tells you whether you can trade the thing is the shape of the results. Look at the maximum drawdown and ask honestly whether you would keep following the rules through a run that deep. Look at the spread of outcomes, not just the average, because an edge built on two enormous winners is fragile. This is where a journal earns its place. When every backtested trade is logged with its entry, exit, R multiple and tags, you can slice the data and see which conditions actually carry the edge and which quietly drain it. The metrics that make a backtest legible are the same ones that make live trading legible: expectancy, profit factor, win rate and drawdown read together, never in isolation. Then forward test before you size up A clean backtest earns a strategy one thing: a place in live forward testing, on a demo account or tiny size. Forward testing removes the last cushion of hindsight, because now you are deciding in real time with real spreads and no ability to peek. Plenty of strategies that looked immaculate on history fall apart the moment the next candle is genuinely unknown. Run it forward for a meaningful stretch, compare the live results against what the backtest predicted, and only scale up when the two agree. If the forward numbers are much worse than the backtest, you did not find an edge. You found an artefact of how you tested, and better to learn that on demo than on a funded account. The short version Backtesting done properly is unglamorous. You write rigid rules, you click through candles without cheating, you gather a real sample, you resist the urge to over-tune, you subtract costs, and you read the drawdown as carefully as the profit. Do that and the backtest starts doing its real job, which is protecting your capital from strategies that were only ever going to work in hindsight.
How to Backtest a Forex Strategy Properly (Without Fooling Yourself)
A backtest exists to talk you out of bad ideas, not to confirm the ones you already like. Here is how to run one that tells the truth.
Most backtests are built to make a strategy look good, not to find out whether it works. You already believe in the idea, so you scroll through the chart, spot the winners, quietly forgive the losers, and finish the afternoon convinced you have found something. That is not testing. That is decorating a decision you already made. A proper backtest does the opposite job. It is there to talk you out of ideas that only survive because you are being generous with them. If your process cannot kill a strategy, it cannot validate one either. So before you run anything, accept that the useful outcome might be "this does not work," and set the whole thing up so that answer can actually surface. What backtesting is good for (and what it is not) Backtesting is good for a small number of honest questions. Does this setup appear often enough to matter? When it appears, does price tend to do the thing you claim? Roughly what win rate and average result should you expect, and how ugly do the losing runs get? Those are answerable on historical data, and answering them is worth real effort. Backtesting is bad at promising you a future return. Markets change regime, spreads widen around news, and the exact edge you measured on 2019 to 2022 EURUSD may not survive into a different rate environment. So treat the output as a distribution of outcomes and a sanity check, not a forecast. The number you should care about most is not the total profit. It is whether the pattern held up across different years and pairs, or whether it lived and died inside one lucky stretch. If you want the fuller comparison of where each method earns its keep, forward testing versus backtesting covers why you eventually need both. Write the rules down before you touch a chart The single biggest reason backtests lie is that the rules are still fuzzy while you test. If "strong trend" and "good entry" live only in your head, you will unconsciously define them differently on winners and losers. Hindsight makes everyone a genius. So write the strategy as if you were handing it to a stranger who has to follow it with no judgement of their own. Be specific about: Entry trigger. The exact condition. Not "break of structure" but which level, which candle close, which confirmation. Stop placement. A fixed rule (below the swing, X pips, one ATR), decided in advance, not moved once the trade is open. Exit. Fixed target, trailing rule, or time-based. Ambiguity here quietly manufactures your win rate. Filters. Sessions, pairs, news blackouts, direction bias. Every filter you add is also a decision you will need to justify later. The test of a good rule set is simple. Two people running it over the same chart should log almost the same trades. If they would not, you are not testing a strategy, you are testing your mood. Bar by bar, not eyes on the whole chart Here is the mechanical part people skip. You cannot backtest honestly while looking at the completed chart, because you already know what happened next. The candle to the right of your entry is a spoiler. The fix is to replay the chart one candle at a time, making each decision with only the information you would have had at that moment. Hide the future, decide, then reveal the next candle. It feels slow and slightly annoying, which is the point. That friction is the thing standing between you and a fantasy equity curve. You do not need to code this. You can drag a screen cover across a chart, or use a bar replay tool. TradeSave+ has a bar replay backtester built for exactly this: you click through historical candles, place entries, stops and targets on the chart, and it logs each trade into a journal automatically so the stats build themselves. If you would rather see the no-code route in full, how to backtest a trading strategy without code walks through it. How many trades before you believe it A strategy that went ten for twelve tells you almost nothing. Small samples are mostly noise wearing a nice suit. You need enough trades that a handful of lucky wins cannot carry the whole result, and enough losing sequences to see how the strategy behaves when it is wrong repeatedly (because it will be). As a working floor, aim for at least a few hundred trades before you trust the numbers, spread across different market conditions rather than clustered in one trending year. If a setup is rare, that is not a reason to lower the bar. It means you gather across more pairs and more history, or you accept that you simply cannot know yet. The sample size matters far more than the headline profit at this stage. The trap that ruins most backtests Overfitting is what happens when you keep tweaking the rules until the historical curve looks beautiful. Add a session filter, exclude Mondays, skip trades below a certain size, and suddenly the drawdown vanishes. It feels like progress. It is usually the opposite. Every filter you bolt on to fix a past loss is a rule tuned to history that has no reason to help in the future. The more knobs you turn, the more you are memorising the data instead of finding a pattern within it. A strategy with three clear rules that works across many pairs is far more trustworthy than one with nine conditions that only shines on the exact history you optimised against. The defence is discipline. Decide the rules first, test once, and treat any change as a brand new hypothesis that needs its own fresh data. If you want to see exactly how curve-fitting sneaks in, overfitting in backtesting lays out the warning signs. Account for the costs you would actually pay A backtest that ignores costs is fiction. Real trades pay the spread, sometimes commission, and occasionally slippage when price gaps through your level. On a scalping strategy those costs can quietly eat the entire edge, so a curve that looks great gross can be flat or negative net. Bake it in from the start. Assume you got filled at a slightly worse price than the perfect one on the chart. Widen the spread around high-impact news rather than pretending you traded the mid. If the strategy only works when you assume flawless execution, it does not work. Read the whole distribution, not just the total Total profit is the least interesting output. What actually tells you whether you can trade the thing is the shape of the results. Look at the maximum drawdown and ask honestly whether you would keep following the rules through a run that deep. Look at the spread of outcomes, not just the average, because an edge built on two enormous winners is fragile. This is where a journal earns its place. When every backtested trade is logged with its entry, exit, R multiple and tags, you can slice the data and see which conditions actually carry the edge and which quietly drain it. The metrics that make a backtest legible are the same ones that make live trading legible: expectancy, profit factor, win rate and drawdown read together, never in isolation. Then forward test before you size up A clean backtest earns a strategy one thing: a place in live forward testing, on a demo account or tiny size. Forward testing removes the last cushion of hindsight, because now you are deciding in real time with real spreads and no ability to peek. Plenty of strategies that looked immaculate on history fall apart the moment the next candle is genuinely unknown. Run it forward for a meaningful stretch, compare the live results against what the backtest predicted, and only scale up when the two agree. If the forward numbers are much worse than the backtest, you did not find an edge. You found an artefact of how you tested, and better to learn that on demo than on a funded account. The short version Backtesting done properly is unglamorous. You write rigid rules, you click through candles without cheating, you gather a real sample, you resist the urge to over-tune, you subtract costs, and you read the drawdown as carefully as the profit. Do that and the backtest starts doing its real job, which is protecting your capital from strategies that were only ever going to work in hindsight.