Ultimate Tools for Backtesting Trading Strategies
Ultimate Tools for Backtesting Trading Strategies
Backtesting is the art and science of appraising the performance of a trading or investing strategy by simulating its performance using historical data. You can get a sense of how it performed in the past and its stability and volatility. However, as you may have heard countless times, great backtested performance does not guarantee great future performance. Nevertheless, a not so desirable backtested performance is often a valid reason to drop a particular trading strategy and move on to the next.
Free Backtesting Tools for the Non-Programmer
There really is no “one size fits all” backtesting tool out there that can backtest virtually any strategy under the sun without the user knowing some programming. If you’re serious about trading, then I urge you to learn enough programming to be able to backtest. But if you’d like to quickly get the results from backtesting some rather simple strategies involving passive investing or basic indicators like moving average crossovers, then a tool will definitely save you some time. Here are the tools I use if I need to run a quick backtest:
#1: ETF Replay
ETFReplay.com is a Freemium service that allows you to backtest a variety of different ETF-based investment strategies. A lot of the advanced features and strategies they offer require a subscription but one of the most useful FREE features is the ability to backtest an ETF portfolio of up to 5 components. You can’t rebalance but if you need to quickly compute the equity curve of, say, the performance of a 60/40 portfolio of SPY and TLT between 2008 and 2011, you can do that easily here. This is an excellent tool for helping you backtest asset allocations for the passive portion of your trading portfolio.
#2: StockBackTest
StockBackTest allows you to backtest strategies involving crossovers of Moving Averages and Bollinger Bands. This is one of the few services that allows you to backtest simple technical indicators like these but the catch is that you can only pick from their list of stocks (which consists of mostly S&P500 securities and the most liquid ETFs.)
#3: Portfolio Visualizer
Portfolio Visualizer is one of the newer and more sophisticated free backtesters that doesn’t require you to be a programmer. It allows you to backtest passive asset allocations as well as predefined tactical strategies like Gary Antonacci’s Dual Momentum. They’ve also got one of the best Monte Carlo retirement simulators I’ve seen.
Free Backtesting Tools for the Programmer
For quick backtests of custom strategies, I recommend just downloading some historical data and testing it in Excel or another spreadsheet first. More sophisticated trading strategies will call for GNU R or GNU Octave, both of which have specialized packages for backtesting. If these still don’t cut it for the complexity of your strategy, then you’ve got two robust yet free options available below:
#1: Quantopian (RECOMMENDED)
Quantopian has minute by minute data on all US stocks traded since 2002 which allows you to backtest intraday strategies without being subjected to survivorship bias. You’ll need knowledge of Python to their backtester. If you’re starting from scratch and are serious about learning to backtest your strategies, THIS is the platform I’d recommend concentrating on learning!
#2: MI Backtester
Jamie Gritton’s MI Backtester is one of the older programmable backtesters available. One of the coolest features of this tool is the ability to backtest stock screens. You might be able to pull up a stock screen like the following: profitable companies with a P/E in the bottom 10% of the US market and a price momentum in the top 10% of the market and get the current picks but you may be wondering how such a screen would have performed historically. The MI Backtester, while a bit slow, will allow you to test the historical performance of such investment strategies based on a combination of fundamentals and technicals.
Did I miss any other Free Backtesters?
If you have any other free backtesters that you use on a regular basis that I’ve not mentioned, please let me know in the comments below!