Backtesting is an integral part of trading system development. Unless you backtest your system on historical data there is no way you can confidently predict its future performance. For beginners, backtesting might sound complex but technology has made it easier and faster. In this article, our chief technologist Prateek Jain would share his thoughts on the Best tool for Backtesting your Trading Systems.
My Favourite Backtesting Tools
Out of 175~ trading systems that I have developed so far, at least 150 of them were backtested using Amibroker.
And for the rest of the systems, I used Python (zipline module).
Below are the factors based on which I determine whether to use Amibroker or Python:
- If the system involves portfolio backtesting with dynamic position sizing and stop-loss, then Amibroker is the best choice.
- For strategies involving complex statistical computations like correlations or standard deviations, I prefer Python.
Inherently, both Amibroker and Python are capable to perform any kind of backtesting, however, Amibroker stands out due to several out of the box features using which you can avoid reinventing the wheel.
Python, on the other hand, is a very powerful programming language that allows you to build customized backtesting logic as per your need. However, you need to code everything from scratch. If you are a programming freak, and already know how to code in Python, then go for it without any second thought.
Why Amibroker is the best tool for Backtesting?
One thing that stands out Amibroker from all other backtesting tools is its speed of execution. You can literally backtest any complex strategy on years of data within few seconds. There is no other tool that is faster than Amibroker in terms of backtesting.
I am also a big fan of the descriptive backtesting report from Amibroker that lets you visualize the performance of your system with ease.
See the below report of my recent Stop Loss Hunter System.
And after the backtesting is complete it also plots the equity curve and profit table through which you can see how the system performed over time:
The obvious question is – whether the past performance speaks about how the system will perform in the future?
To answer this dilemma, Amibroker allows you to execute Monte Carlo simulation and Walk forward testing on your trading system for testing the robustness of your system in all market conditions.
Monte Carlo simulation, adds randomness to the data or rules, and re-test the system for several iterations. This is done to mimic the actual market behavior which may not be as ideal as it looks from the historical data
And Walk forward optimization divides your historical data into two sets – In sample and Out of sample. Initial backtesting and optimization are performed on in-sample data, while it should be validated on out-of-sample data. If the results look profitable in both the data sets, then the system is considered to be trustworthy.
Below is the screenshot from Amibroker software that lets you do all these in just a few clicks:
It might look complicated at a glance but it’s very easy and intuitive even for people from a non-programming background.
I think I have given several reasons that prove Amibroker is the best tool for Backtesting. It is an all-in-one package with unmatched features and an error-free interface.
If you are a beginner and looking to start building and backtesting trading systems, then go for Amibroker. You will surely get up to speed within a month. And even if you are a professional trader, give Amibroker a try over your current backtesting tool.
Python would always remain my second choice, especially for systems involving quantitative analysis.
Learn more about Amibroker in the below article: