For years I have been trading (semi-automatically) using a simple script in Excel. Having focused solely on stocks since 2001, I decided to start looking into futures in early 2017. Excel is not exactly the best program for automated trading, so I decided to use one of the many platforms out there: Amibroker, Metastock, Tradestation, Multicharts or Ninjatrader etc. All these platforms are both for backtesting and automation. Tradestation is a bit different, though, because it is also a broker. All others are stand alone platforms.
After some considerations I opted for Amibroker (AB). The reasons I picked Amibroker was due to these factors:
- Amibroker Formula Language had the most similarities to Metastock, a platform I used many years ago. Thus, easier for me to learn.
- I had a local friend already using AB (and he was positive about AB).
- A lightning fast optimization feature.
- Easy to test strategies on a portfolio level.
- Fully customizeable in terms of backtesting and trading.
- Pretty cheap, about 450 USD for a lifetime license, albeit upgrades only possible during the first 24 months after purchase.
- Can connect to different brokers via a plugin. I use Interactive Brokers.
- I talked with another trader using Tradestation, but for me the AB code looked much more intuitive and easier to grasp.
AB is a two-man company based in Poland. The whole platform is written by Dr. Tomasz Janeczko. Another Doctor, Marcin Górzyński, is the other man in the team. Because of this limited manpower, all official support is via an open forum. These two guys have a rather eccentric way of answering some of the simpler questions in this forum, but all in all support is reasonable good. There are also a very big user base in India. That is good, if you need help in coding you can get people from there quite cheap compared to the West. I hired an Indian guy to help me write a better script for automated trading and so far this script has worked flawlessly.
I still had one hesitation, though, with AB: I see a lot of people using AB for backtesting, but I found rather few people using it as a platform for live trading. Why was that? I will get back to that later in the article.
Before I started I had absolutely no knowledge of coding/programming except for some simple Excel code (but I assume that can hardly be called coding). I started in May 2017 and have worked some 2-4 hours per day learning and writing strategies. Since September 2017 I have been running some 30-50 strategies live, both stocks and futures in the US and Europe.
During this period I also discovered some negative things with AB. The biggest problem for me is the fact that the platform is fully customizable. That means there are no templates and nothing to start with. Of course, you can always find code on blogs/forum etc, but it takes time. Customization is very good if you are an experienced programmer and gives you tremendous “leverage”, but for me with no prior experience it demanded a lot of hours to learn.
The biggest hurdle is to make a good and solid infrastructure for live trading. You need to partially rewrite the backtester code to make it reliable for live trading, and you also need to write correct code so your strategies do not send multiple orders. Even more, code must keep track of which strategy has which position and which size. A lot of things can go wrong with incorrect code. Everything is documented in the support files, but you still need to connect all the bolts. Imagine how losses can build up by sending multiple/incorrect orders in Silver futures….. In Tradestation, for example, this is much easier: when you have backtested an idea you simply check off for live trading and all is sorted (Tradestation is also a broker where you can place trades). I suspect this is the reason AB seems to be mostly used as a backtester tool rather than a trading platform.
Another disadvantage is that you need to spend a lot of time managing quotes. Futures expire often, and that means extra work in linking the correct contracts to the relevant strategy. In Tradestation this is all taken care of more or less automatically.
A third disadvantage is that you can only run one database (where you store your live data) per session/instance. For example, if you want to run US futures and European futures simultaneously, it is recommended to run two instances of AB from different directories (if timeframes are different, and they usually are). Of course, you can run many instances of AB, but it complicates.
But all in all I’m quite happy with AB and don’t regret it. When you get better at coding, I believe AB is a more powerful tool than most of the others platform because of literally no limits in what you can code. I have run between 30 to 50 different strategies live since september 2017, all in different timeframes and markets, with no major hiccups. I use a virtual private server (VPS) and let it run all day.
So far so good.
(I have no affiliation with Amibroker whatsoever.)