You can backtest for free in four ways: manually scrolling a chart and logging each trade, in a spreadsheet, with a charting platform's built-in strategy tester, or with free open-source Python libraries. Whichever you use, define precise rules first, test on enough trades, include costs, and keep some data aside to check the result.
You do not need paid software to find out whether a strategy has ever worked. You do need rules that are precise enough to test, enough trades to mean something, and honesty about the traps. Here are four free ways to backtest, and the mistakes that make backtests lie.
For the basics, see what is backtesting and how to backtest a trading strategy.
Step 0: write precise rules
A backtest is only as good as its rules. Before testing, write down:
- Market and timeframe.
- Entry rule: exactly what must happen to enter.
- Stop-loss: where it goes.
- Exit or target rule.
- Position size: risk per trade as a percentage.
If you have to use judgement ("looks like a strong candle"), the rule is not precise enough for a clean test.
Four free methods
| Method | Effort | Good for | Weakness |
|---|---|---|---|
| Manual (chart scroll) | Low tools, high time | Learning, discretionary setups | Easy to cheat by looking ahead |
| Spreadsheet | Medium | Simple rules, daily data | Slow, limited |
| Platform strategy tester | Low | Rule-based indicator strategies | Free tiers have limits; platform quirks |
| Python (open source) | High | Large tests, custom logic | Needs coding; data quality is your job |
1. Manual backtesting
Open a chart, hide everything to the right of your starting point, and move forward one bar at a time. Take or skip trades by your rules, and log each one: date, entry, stop, exit, result in R (multiples of the risk). It is slow, but you build chart experience. The risk is peeking at what happens next, which biases results.
2. Spreadsheet
Download daily data and use formulas to flag signals, such as a moving average crossing. Then calculate returns by hand or with formulas. It works for simple rules and teaches you the mechanics, but intraday or multi-leg strategies get messy fast.
3. A charting platform's strategy tester
Many charting platforms let you code or load a strategy and show a report: trades, win rate, profit factor, drawdown. The free tiers usually limit history, the number of indicators or the data. See how to backtest in TradingView for free.
4. Python with open-source libraries
Free libraries exist for backtesting and data handling, and you can pull free historical data from several sources. You get full control and can test thousands of trades, but you must handle data cleaning and avoid coding mistakes that quietly cheat. Check each data source's terms of use and its quality, since free data can have gaps, errors or adjustments you do not expect.
Compare Backtest vs Live, Trade by Trade
Log backtest and live trades side by side in TRADZY and see where the edge holds up.
Log Your Backtest Free →The biases that fake good results
- Lookahead bias: using information that was not available at the time, such as a daily high to decide a morning entry.
- Overfitting: tuning parameters until the past looks perfect. The strategy then fails on new data.
- Survivorship bias: testing only on stocks that still exist, ignoring those that went bankrupt or delisted.
- Ignoring costs: spreads, commissions and slippage can turn a profitable test into a loser. See slippage in trading.
- Too few trades: 20 trades prove nothing. Aim for at least 100 where possible, across different market conditions.
- Cherry-picked periods: a test that covers only a bull market tells you little about a crash.
How to make a test more honest
- Split your data. Build the rules on one period, then test on a separate period you did not use.
- Add realistic costs to every trade.
- Test several markets or years, not just the one that looks best.
- Keep parameters few and round. Fewer settings means less room to overfit.
- Forward test. Trade the rules on a demo account for a few weeks. See paper trading.
What to record
| Metric | What it tells you |
|---|---|
| Number of trades | Whether the sample is big enough |
| Win rate and average win and loss | The shape of your results |
| Expectancy | Average result per trade. See trading expectancy |
| Profit factor | Gross profit divided by gross loss. See profit factor |
| Maximum drawdown | The worst fall, and whether you could stand it. See max drawdown |
Record the results in a journal and compare them with your live trades later. See how to journal your trades.
What a good backtest does not prove
A strong backtest means a rule would have worked on past data. It does not guarantee it will work next month. Markets change, and many backtested strategies lose their edge on live trading. Treat a good result as a reason to test further, not as proof.
FAQ
Can I backtest a strategy for free?
Yes. You can test manually, in a spreadsheet, with a charting platform's strategy tester, or with free open-source Python libraries.
What is the best free backtesting method for beginners?
Manual backtesting with a trade log is the simplest to start with. A platform's strategy tester is good once your rules are precise.
How many trades do I need for a reliable backtest?
As many as you can, ideally at least 100 across different market conditions. Fewer than about 30 is rarely meaningful.
Why do backtests fail in live trading?
Common causes are overfitting, lookahead bias, ignoring costs and slippage, and changing market conditions.
Is free data good enough for backtesting?
It can be for learning and daily-data strategies, but check for gaps, errors and survivorship bias, and confirm the source's terms of use.
Put This Into Practice
- Log backtest trades with the same fields as live ones
- Compare win rate, average R and expectancy side by side
- Go live only when the numbers hold
Start Free in TRADZY →
Educational content, not financial advice. Trading involves substantial risk of loss.